jquery-confirm
Advanced tools
Comparing version
{ | ||
"name": "jquery-confirm2", | ||
"version": "3.3.2", | ||
"version": "3.3.3", | ||
"homepage": "https://github.com/craftpip/jquery-confirm", | ||
@@ -5,0 +5,0 @@ "authors": [ |
/*! | ||
* jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/) | ||
* jquery-confirm v3.3.3 (http://craftpip.github.io/jquery-confirm/) | ||
* Author: Boniface Pereira | ||
@@ -7,5 +7,5 @@ * Website: www.craftpip.com | ||
* | ||
* Copyright 2013-2017 jquery-confirm | ||
* Copyright 2013-2018 jquery-confirm | ||
* Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) | ||
*/ | ||
if(typeof jQuery==="undefined"){throw new Error("jquery-confirm requires jQuery");}var jconfirm,Jconfirm;(function($,window){$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons=="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length==0){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons==false);if(typeof options.buttons!="object"){options.buttons={};}if(Object.keys(options.buttons).length==0&&putDefaultButtons){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons==false);if(typeof options.buttons!="object"){options.buttons={};}if(Object.keys(options.buttons).length==0&&putDefaultButtons){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon=="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return jconfirm(options);};jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},jconfirm.pluginDefaults);if(jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new Jconfirm(pluginOptions);jconfirm.instances.push(instance);return instance;};Jconfirm=function(options){$.extend(this,options);this._init();};Jconfirm.prototype={_init:function(){var that=this;if(!jconfirm.instances.length){jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}});this._watchContent();if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){that.$contentPane.css({height:contentHeight}).scrollTop(0);prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total<wh){that.$contentPane.addClass("no-scroll");}else{that.$contentPane.removeClass("no-scroll");}}},this.watchInterval);},_overflowClass:"jconfirm-overflow",_hilightAnimating:false,highlight:function(){this.hiLightModal();},hiLightModal:function(){var that=this;if(this._hilightAnimating){return;}that.$body.addClass("hilight");var duration=parseFloat(that.$body.css("animation-duration"))||2;this._hilightAnimating=true;setTimeout(function(){that._hilightAnimating=false;that.$body.removeClass("hilight");},duration*1000);},_bindEvents:function(){var that=this;this.boxClicked=false;this.$scrollPane.click(function(e){if(!that.boxClicked){var buttonName=false;var shouldClose=false;var str;if(typeof that.backgroundDismiss=="function"){str=that.backgroundDismiss();}else{str=that.backgroundDismiss;}if(typeof str=="string"&&typeof that.buttons[str]!="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str=="undefined"||!!(str)==true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse=="undefined")||!!(btnResponse);}if(shouldClose){that.close();}else{that.hiLightModal();}}that.boxClicked=false;});this.$jconfirmBox.click(function(e){that.boxClicked=true;});var isKeyDown=false;$(window).on("jcKeyDown."+that._id,function(e){if(!isKeyDown){isKeyDown=true;}});$(window).on("keyup."+that._id,function(e){if(isKeyDown){that.reactOnKey(e);isKeyDown=false;}});$(window).on("resize."+this._id,function(){that._updateContentMaxHeight();setTimeout(function(){that.resetDrag();},100);});},_cubic_bezier:"0.36, 0.55, 0.19",_getCSS:function(speed,bounce){return{"-webkit-transition-duration":speed/1000+"s","transition-duration":speed/1000+"s","-webkit-transition-timing-function":"cubic-bezier("+this._cubic_bezier+", "+bounce+")","transition-timing-function":"cubic-bezier("+this._cubic_bezier+", "+bounce+")"};},_setButtons:function(){var that=this;var total_buttons=0;if(typeof this.buttons!=="object"){this.buttons={};}$.each(this.buttons,function(key,button){total_buttons+=1;if(typeof button==="function"){that.buttons[key]=button={action:button};}that.buttons[key].text=button.text||key;that.buttons[key].btnClass=button.btnClass||"btn-default";that.buttons[key].action=button.action||function(){};that.buttons[key].keys=button.keys||[];that.buttons[key].isHidden=button.isHidden||false;that.buttons[key].isDisabled=button.isDisabled||false;$.each(that.buttons[key].keys,function(i,a){that.buttons[key].keys[i]=a.toLowerCase();});var button_element=$('<button type="button" class="btn"></button>').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='<i class="'+this.closeIconClass+'"></i>';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon=="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str=="string"&&typeof that.buttons[str]!="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str=="undefined"||!!(str)==true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse=="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string=="string"){this.title=string;}else{if(typeof string=="function"){if(typeof string.promise=="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response=="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass=="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response=="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'<i class="'+this.icon+'"></i>':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content=="function"){var res=this.content.apply(this);if(typeof res=="string"){this.content=res;}else{if(typeof res=="object"&&typeof res.always=="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded=="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content=="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded=="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$('<span class="countdown"> ('+seconds+")</span>").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!=-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=jconfirm.instances;var i=jconfirm.instances.length-1;for(i;i>=0;i--){if(jconfirm.instances[i]._id===that._id){jconfirm.instances.splice(i,1);}}if(!jconfirm.instances.length){if(that.scrollToPreviousElement&&jconfirm.lastFocused&&jconfirm.lastFocused.length&&$.contains(document,jconfirm.lastFocused[0])){var $lf=jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;jconfirm.lastClicked=false;}else{if(jconfirm.lastClicked&&this.animateFromElement===true){el=jconfirm.lastClicked;jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.css("display")==="";},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};jconfirm.instances=[];jconfirm.lastFocused=false;jconfirm.pluginDefaults={template:'<div class="jconfirm"><div class="jconfirm-bg jconfirm-bg-h"></div><div class="jconfirm-scrollpane"><div class="jconfirm-row"><div class="jconfirm-cell"><div class="jconfirm-holder"><div class="jc-bs3-container"><div class="jc-bs3-row"><div class="jconfirm-box-container jconfirm-animated"><div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1"><div class="jconfirm-closeIcon">×</div><div class="jconfirm-title-c"><span class="jconfirm-icon-c"></span><span class="jconfirm-title"></span></div><div class="jconfirm-content-pane"><div class="jconfirm-content"></div></div><div class="jconfirm-buttons"></div><div class="jconfirm-clear"></div></div></div></div></div></div></div></div></div></div>',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});jconfirm.lastClicked=false;$(document).on("mousedown","button, a",function(){jconfirm.lastClicked=$(this);});})(jQuery,window); | ||
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery","window"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery,window);return jQuery;};}else{factory(jQuery,window);}}}(function($,window){var jconfirm,Jconfirm;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},jconfirm.pluginDefaults.defaultButtons,(jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return jconfirm(options);};jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},jconfirm.pluginDefaults);if(jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new Jconfirm(pluginOptions);jconfirm.instances.push(instance);return instance;};Jconfirm=function(options){$.extend(this,options);this._init();};Jconfirm.prototype={_init:function(){var that=this;if(!jconfirm.instances.length){jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total<wh){that.$contentPane.addClass("no-scroll");}else{that.$contentPane.removeClass("no-scroll");}}},this.watchInterval);},_overflowClass:"jconfirm-overflow",_hilightAnimating:false,highlight:function(){this.hiLightModal();},hiLightModal:function(){var that=this;if(this._hilightAnimating){return;}that.$body.addClass("hilight");var duration=parseFloat(that.$body.css("animation-duration"))||2;this._hilightAnimating=true;setTimeout(function(){that._hilightAnimating=false;that.$body.removeClass("hilight");},duration*1000);},_bindEvents:function(){var that=this;this.boxClicked=false;this.$scrollPane.click(function(e){if(!that.boxClicked){var buttonName=false;var shouldClose=false;var str;if(typeof that.backgroundDismiss==="function"){str=that.backgroundDismiss();}else{str=that.backgroundDismiss;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}else{that.hiLightModal();}}that.boxClicked=false;});this.$jconfirmBox.click(function(e){that.boxClicked=true;});var isKeyDown=false;$(window).on("jcKeyDown."+that._id,function(e){if(!isKeyDown){isKeyDown=true;}});$(window).on("keyup."+that._id,function(e){if(isKeyDown){that.reactOnKey(e);isKeyDown=false;}});$(window).on("resize."+this._id,function(){that._updateContentMaxHeight();setTimeout(function(){that.resetDrag();},100);});},_cubic_bezier:"0.36, 0.55, 0.19",_getCSS:function(speed,bounce){return{"-webkit-transition-duration":speed/1000+"s","transition-duration":speed/1000+"s","-webkit-transition-timing-function":"cubic-bezier("+this._cubic_bezier+", "+bounce+")","transition-timing-function":"cubic-bezier("+this._cubic_bezier+", "+bounce+")"};},_setButtons:function(){var that=this;var total_buttons=0;if(typeof this.buttons!=="object"){this.buttons={};}$.each(this.buttons,function(key,button){total_buttons+=1;if(typeof button==="function"){that.buttons[key]=button={action:button};}that.buttons[key].text=button.text||key;that.buttons[key].btnClass=button.btnClass||"btn-default";that.buttons[key].action=button.action||function(){};that.buttons[key].keys=button.keys||[];that.buttons[key].isHidden=button.isHidden||false;that.buttons[key].isDisabled=button.isDisabled||false;$.each(that.buttons[key].keys,function(i,a){that.buttons[key].keys[i]=a.toLowerCase();});var button_element=$('<button type="button" class="btn"></button>').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='<i class="'+this.closeIconClass+'"></i>';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'<i class="'+this.icon+'"></i>':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$('<span class="countdown"> ('+seconds+")</span>").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=jconfirm.instances;var i=jconfirm.instances.length-1;for(i;i>=0;i--){if(jconfirm.instances[i]._id===that._id){jconfirm.instances.splice(i,1);}}if(!jconfirm.instances.length){if(that.scrollToPreviousElement&&jconfirm.lastFocused&&jconfirm.lastFocused.length&&$.contains(document,jconfirm.lastFocused[0])){var $lf=jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;jconfirm.lastClicked=false;}else{if(jconfirm.lastClicked&&this.animateFromElement===true){el=jconfirm.lastClicked;jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};jconfirm.instances=[];jconfirm.lastFocused=false;jconfirm.pluginDefaults={template:'<div class="jconfirm"><div class="jconfirm-bg jconfirm-bg-h"></div><div class="jconfirm-scrollpane"><div class="jconfirm-row"><div class="jconfirm-cell"><div class="jconfirm-holder"><div class="jc-bs3-container"><div class="jc-bs3-row"><div class="jconfirm-box-container jconfirm-animated"><div class="jconfirm-box" role="dialog" aria-labelledby="labelled" tabindex="-1"><div class="jconfirm-closeIcon">×</div><div class="jconfirm-title-c"><span class="jconfirm-icon-c"></span><span class="jconfirm-title"></span></div><div class="jconfirm-content-pane"><div class="jconfirm-content"></div></div><div class="jconfirm-buttons"></div><div class="jconfirm-clear"></div></div></div></div></div></div></div></div></div></div>',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});jconfirm.lastClicked=false;$(document).on("mousedown","button, a",function(){jconfirm.lastClicked=$(this);});})); |
/*! | ||
* jquery-confirm v3.3.2 (http://craftpip.github.io/jquery-confirm/) | ||
* jquery-confirm v3.3.3 (http://craftpip.github.io/jquery-confirm/) | ||
* Author: Boniface Pereira | ||
@@ -7,17 +7,44 @@ * Website: www.craftpip.com | ||
* | ||
* Copyright 2013-2017 jquery-confirm | ||
* Copyright 2013-2018 jquery-confirm | ||
* Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) | ||
*/ | ||
if (typeof jQuery === 'undefined') { | ||
throw new Error('jquery-confirm requires jQuery'); | ||
} | ||
var jconfirm, Jconfirm; | ||
(function ($, window) { | ||
/** | ||
* UMD (Universal Module Definition) to support CommonJS, AMD and browser | ||
* Thanks to https://github.com/umdjs/umd | ||
*/ | ||
(function(factory){ | ||
if(typeof define === 'function' && define.amd){ | ||
// AMD. Register as an anonymous module. | ||
define(['jquery', 'window'], factory); | ||
}else if(typeof module === 'object' && module.exports){ | ||
// Node/CommonJS | ||
module.exports = function(root, jQuery){ | ||
if(jQuery === undefined){ | ||
// require('jQuery') returns a factory that requires window to | ||
// build a jQuery instance, we normalize how we use modules | ||
// that require this pattern but the window provided is a noop | ||
// if it's defined (how jquery works) | ||
if(typeof window !== 'undefined'){ | ||
jQuery = require('jquery'); | ||
} | ||
else{ | ||
jQuery = require('jquery')(root); | ||
} | ||
} | ||
factory(jQuery, window); | ||
return jQuery; | ||
}; | ||
}else{ | ||
// Browser globals | ||
factory(jQuery, window); | ||
} | ||
}(function($, window){ | ||
"use strict"; | ||
var jconfirm, Jconfirm; | ||
$.fn.confirm = function (options, option2) { | ||
if (typeof options === 'undefined') options = {}; | ||
if (typeof options === 'string') { | ||
$.fn.confirm = function(options, option2){ | ||
if(typeof options === 'undefined') options = {}; | ||
if(typeof options === 'string'){ | ||
options = { | ||
@@ -31,5 +58,5 @@ content: options, | ||
*/ | ||
$(this).each(function () { | ||
$(this).each(function(){ | ||
var $this = $(this); | ||
if ($this.attr('jc-attached')) { | ||
if($this.attr('jc-attached')){ | ||
console.warn('jConfirm has already been attached to this element ', $this[0]); | ||
@@ -39,18 +66,18 @@ return; | ||
$this.on('click', function (e) { | ||
$this.on('click', function(e){ | ||
e.preventDefault(); | ||
var jcOption = $.extend({}, options); | ||
if ($this.attr('data-title')) | ||
if($this.attr('data-title')) | ||
jcOption['title'] = $this.attr('data-title'); | ||
if ($this.attr('data-content')) | ||
if($this.attr('data-content')) | ||
jcOption['content'] = $this.attr('data-content'); | ||
if (typeof jcOption['buttons'] == 'undefined') | ||
if(typeof jcOption['buttons'] === 'undefined') | ||
jcOption['buttons'] = {}; | ||
jcOption['$target'] = $this; | ||
if ($this.attr('href') && Object.keys(jcOption['buttons']).length == 0) { | ||
if($this.attr('href') && Object.keys(jcOption['buttons']).length === 0){ | ||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {}); | ||
var firstBtn = Object.keys(buttons)[0]; | ||
jcOption['buttons'] = buttons; | ||
jcOption.buttons[firstBtn].action = function () { | ||
jcOption.buttons[firstBtn].action = function(){ | ||
location.href = $this.attr('href'); | ||
@@ -67,5 +94,5 @@ }; | ||
}; | ||
$.confirm = function (options, option2) { | ||
if (typeof options === 'undefined') options = {}; | ||
if (typeof options === 'string') { | ||
$.confirm = function(options, option2){ | ||
if(typeof options === 'undefined') options = {}; | ||
if(typeof options === 'string'){ | ||
options = { | ||
@@ -77,8 +104,8 @@ content: options, | ||
var putDefaultButtons = !(options['buttons'] == false); | ||
var putDefaultButtons = !(options['buttons'] === false); | ||
if (typeof options['buttons'] != 'object') | ||
if(typeof options['buttons'] !== 'object') | ||
options['buttons'] = {}; | ||
if (Object.keys(options['buttons']).length == 0 && putDefaultButtons) { | ||
if(Object.keys(options['buttons']).length === 0 && putDefaultButtons){ | ||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {}); | ||
@@ -93,5 +120,5 @@ options['buttons'] = buttons; | ||
}; | ||
$.alert = function (options, option2) { | ||
if (typeof options === 'undefined') options = {}; | ||
if (typeof options === 'string') { | ||
$.alert = function(options, option2){ | ||
if(typeof options === 'undefined') options = {}; | ||
if(typeof options === 'string'){ | ||
options = { | ||
@@ -103,8 +130,8 @@ content: options, | ||
var putDefaultButtons = !(options['buttons'] == false); | ||
var putDefaultButtons = !(options['buttons'] === false); | ||
if (typeof options.buttons != 'object') | ||
if(typeof options.buttons !== 'object') | ||
options.buttons = {}; | ||
if (Object.keys(options['buttons']).length == 0 && putDefaultButtons) { | ||
if(Object.keys(options['buttons']).length === 0 && putDefaultButtons){ | ||
var buttons = $.extend(true, {}, jconfirm.pluginDefaults.defaultButtons, (jconfirm.defaults || {}).defaultButtons || {}); | ||
@@ -119,9 +146,9 @@ var firstBtn = Object.keys(buttons)[0]; | ||
}; | ||
$.dialog = function (options, option2) { | ||
if (typeof options === 'undefined') options = {}; | ||
if (typeof options === 'string') { | ||
$.dialog = function(options, option2){ | ||
if(typeof options === 'undefined') options = {}; | ||
if(typeof options === 'string'){ | ||
options = { | ||
content: options, | ||
title: (option2) ? option2 : false, | ||
closeIcon: function () { | ||
closeIcon: function(){ | ||
// Just close the modal | ||
@@ -134,5 +161,5 @@ } | ||
if (typeof options['closeIcon'] == 'undefined') { | ||
if(typeof options['closeIcon'] === 'undefined'){ | ||
// Dialog must have a closeIcon. | ||
options['closeIcon'] = function () { | ||
options['closeIcon'] = function(){ | ||
} | ||
@@ -147,4 +174,4 @@ } | ||
jconfirm = function (options) { | ||
if (typeof options === 'undefined') options = {}; | ||
jconfirm = function(options){ | ||
if(typeof options === 'undefined') options = {}; | ||
/* | ||
@@ -154,3 +181,3 @@ * initial function for calling. | ||
var pluginOptions = $.extend(true, {}, jconfirm.pluginDefaults); | ||
if (jconfirm.defaults) { | ||
if(jconfirm.defaults){ | ||
pluginOptions = $.extend(true, pluginOptions, jconfirm.defaults); | ||
@@ -167,3 +194,3 @@ } | ||
}; | ||
Jconfirm = function (options) { | ||
Jconfirm = function(options){ | ||
/* | ||
@@ -177,6 +204,6 @@ * constructor function Jconfirm, | ||
Jconfirm.prototype = { | ||
_init: function () { | ||
_init: function(){ | ||
var that = this; | ||
if (!jconfirm.instances.length) | ||
if(!jconfirm.instances.length) | ||
jconfirm.lastFocused = $('body').find(':focus'); | ||
@@ -190,4 +217,4 @@ | ||
if (!this.lazyOpen) { | ||
setTimeout(function () { | ||
if(!this.lazyOpen){ | ||
setTimeout(function(){ | ||
that.open(); | ||
@@ -197,3 +224,3 @@ }, 0); | ||
}, | ||
_buildHTML: function () { | ||
_buildHTML: function(){ | ||
var that = this; | ||
@@ -215,6 +242,6 @@ | ||
if (this.typeAnimated) | ||
if(this.typeAnimated) | ||
template.find('.jconfirm-box').addClass('jconfirm-type-animated'); | ||
if (this.useBootstrap) { | ||
if(this.useBootstrap){ | ||
template.find('.jc-bs3-row').addClass(this.bootstrapClasses.row); | ||
@@ -225,11 +252,11 @@ template.find('.jc-bs3-row').addClass('justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center'); | ||
if (this.containerFluid) | ||
if(this.containerFluid) | ||
template.find('.jc-bs3-container').addClass(this.bootstrapClasses.containerFluid); | ||
else | ||
template.find('.jc-bs3-container').addClass(this.bootstrapClasses.container); | ||
} else { | ||
}else{ | ||
template.find('.jconfirm-box').css('width', this.boxWidth); | ||
} | ||
if (this.titleClass) | ||
if(this.titleClass) | ||
template.find('.jconfirm-title-c').addClass(this.titleClass); | ||
@@ -241,5 +268,5 @@ | ||
template.find('.jconfirm-content').attr('id', ariaLabel); | ||
if (this.bgOpacity !== null) | ||
if(this.bgOpacity !== null) | ||
template.find('.jconfirm-bg').css('opacity', this.bgOpacity); | ||
if (this.rtl) | ||
if(this.rtl) | ||
template.addClass('jconfirm-rtl'); | ||
@@ -278,8 +305,8 @@ | ||
if (this.isAjax) | ||
if(this.isAjax) | ||
this.showLoading(false); | ||
$.when(this._contentReady, this._modalReady).then(function () { | ||
if (that.isAjaxLoading) | ||
setTimeout(function () { | ||
$.when(this._contentReady, this._modalReady).then(function(){ | ||
if(that.isAjaxLoading) | ||
setTimeout(function(){ | ||
that.isAjaxLoading = false; | ||
@@ -289,10 +316,10 @@ that.setContent(); | ||
that.setIcon(); | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.hideLoading(false); | ||
that._updateContentMaxHeight(); | ||
}, 100); | ||
if (typeof that.onContentReady === 'function') | ||
if(typeof that.onContentReady === 'function') | ||
that.onContentReady(); | ||
}, 50); | ||
else { | ||
else{ | ||
// that.setContent(); | ||
@@ -302,3 +329,3 @@ that._updateContentMaxHeight(); | ||
that.setIcon(); | ||
if (typeof that.onContentReady === 'function') | ||
if(typeof that.onContentReady === 'function') | ||
that.onContentReady(); | ||
@@ -308,8 +335,8 @@ } | ||
// start countdown after content has loaded. | ||
if (that.autoClose) | ||
if(that.autoClose) | ||
that._startCountDown(); | ||
}).then(function(){ | ||
that._watchContent(); | ||
}); | ||
this._watchContent(); | ||
if (this.animation === 'none') { | ||
@@ -327,6 +354,6 @@ this.animationSpeed = 1; | ||
typeParsed: '', | ||
_parseType: function (type) { | ||
_parseType: function(type){ | ||
this.typeParsed = this._typePrefix + type; | ||
}, | ||
setType: function (type) { | ||
setType: function(type){ | ||
var oldClass = this.typeParsed; | ||
@@ -338,7 +365,7 @@ this._parseType(type); | ||
_themePrefix: 'jconfirm-', | ||
setTheme: function (theme) { | ||
setTheme: function(theme){ | ||
var previous = this.theme; | ||
this.theme = theme || this.theme; | ||
this._parseTheme(this.theme); | ||
if (previous) | ||
if(previous) | ||
this.$el.removeClass(previous); | ||
@@ -348,7 +375,7 @@ this.$el.addClass(this.themeParsed); | ||
}, | ||
_parseTheme: function (theme) { | ||
_parseTheme: function(theme){ | ||
var that = this; | ||
theme = theme.split(','); | ||
$.each(theme, function (k, a) { | ||
if (a.indexOf(that._themePrefix) === -1) | ||
$.each(theme, function(k, a){ | ||
if(a.indexOf(that._themePrefix) === -1) | ||
theme[k] = that._themePrefix + $.trim(a); | ||
@@ -360,7 +387,7 @@ }); | ||
_bgDismissPrefix: 'jconfirm-hilight-', | ||
_parseBgDismissAnimation: function (bgDismissAnimation) { | ||
_parseBgDismissAnimation: function(bgDismissAnimation){ | ||
var animation = bgDismissAnimation.split(','); | ||
var that = this; | ||
$.each(animation, function (k, a) { | ||
if (a.indexOf(that._bgDismissPrefix) === -1) | ||
$.each(animation, function(k, a){ | ||
if(a.indexOf(that._bgDismissPrefix) === -1) | ||
animation[k] = that._bgDismissPrefix + $.trim(a); | ||
@@ -373,16 +400,16 @@ }); | ||
_animationPrefix: 'jconfirm-animation-', | ||
setAnimation: function (animation) { | ||
setAnimation: function(animation){ | ||
this.animation = animation || this.animation; | ||
this._parseAnimation(this.animation, 'o'); | ||
}, | ||
_parseAnimation: function (animation, which) { | ||
_parseAnimation: function(animation, which){ | ||
which = which || 'o'; // parse what animation and store where. open or close? | ||
var animations = animation.split(','); | ||
var that = this; | ||
$.each(animations, function (k, a) { | ||
if (a.indexOf(that._animationPrefix) === -1) | ||
$.each(animations, function(k, a){ | ||
if(a.indexOf(that._animationPrefix) === -1) | ||
animations[k] = that._animationPrefix + $.trim(a); | ||
}); | ||
var a_string = animations.join(' ').toLowerCase(); | ||
if (which === 'o') | ||
if(which === 'o') | ||
this.animationParsed = a_string; | ||
@@ -394,7 +421,7 @@ else | ||
}, | ||
setCloseAnimation: function (closeAnimation) { | ||
setCloseAnimation: function(closeAnimation){ | ||
this.closeAnimation = closeAnimation || this.closeAnimation; | ||
this._parseAnimation(this.closeAnimation, 'c'); | ||
}, | ||
setAnimationSpeed: function (speed) { | ||
setAnimationSpeed: function(speed){ | ||
this.animationSpeed = speed || this.animationSpeed; | ||
@@ -404,4 +431,4 @@ // this.$body.css(this._getCSS(this.animationSpeed, this.animationBounce)); | ||
columnClassParsed: '', | ||
setColumnClass: function (colClass) { | ||
if (!this.useBootstrap) { | ||
setColumnClass: function(colClass){ | ||
if(!this.useBootstrap){ | ||
console.warn("cannot set columnClass, useBootstrap is set to false"); | ||
@@ -414,3 +441,3 @@ return; | ||
}, | ||
_updateContentMaxHeight: function () { | ||
_updateContentMaxHeight: function(){ | ||
var height = $(window).height() - (this.$jconfirmBox.outerHeight() - this.$contentPane.outerHeight()) - (this.offsetTop + this.offsetBottom); | ||
@@ -421,4 +448,4 @@ this.$contentPane.css({ | ||
}, | ||
setBoxWidth: function (width) { | ||
if (this.useBootstrap) { | ||
setBoxWidth: function(width){ | ||
if(this.useBootstrap){ | ||
console.warn("cannot set boxWidth, useBootstrap is set to true"); | ||
@@ -430,6 +457,6 @@ return; | ||
}, | ||
_parseColumnClass: function (colClass) { | ||
_parseColumnClass: function(colClass){ | ||
colClass = colClass.toLowerCase(); | ||
var p; | ||
switch (colClass) { | ||
switch(colClass){ | ||
case 'xl': | ||
@@ -460,3 +487,3 @@ case 'xlarge': | ||
}, | ||
initDraggable: function () { | ||
initDraggable: function(){ | ||
var that = this; | ||
@@ -466,4 +493,4 @@ var $t = this.$titleContainer; | ||
this.resetDrag(); | ||
if (this.draggable) { | ||
$t.on('mousedown', function (e) { | ||
if(this.draggable){ | ||
$t.on('mousedown', function(e){ | ||
$t.addClass('jconfirm-hand'); | ||
@@ -474,4 +501,4 @@ that.mouseX = e.clientX; | ||
}); | ||
$(window).on('mousemove.' + this._id, function (e) { | ||
if (that.isDrag) { | ||
$(window).on('mousemove.' + this._id, function(e){ | ||
if(that.isDrag){ | ||
that.movingX = e.clientX - that.mouseX + that.initialX; | ||
@@ -483,5 +510,5 @@ that.movingY = e.clientY - that.mouseY + that.initialY; | ||
$(window).on('mouseup.' + this._id, function () { | ||
$(window).on('mouseup.' + this._id, function(){ | ||
$t.removeClass('jconfirm-hand'); | ||
if (that.isDrag) { | ||
if(that.isDrag){ | ||
that.isDrag = false; | ||
@@ -494,3 +521,3 @@ that.initialX = that.movingX; | ||
}, | ||
resetDrag: function () { | ||
resetDrag: function(){ | ||
this.isDrag = false; | ||
@@ -505,4 +532,4 @@ this.initialX = 0; | ||
}, | ||
setDrag: function () { | ||
if (!this.draggable) | ||
setDrag: function(){ | ||
if(!this.draggable) | ||
return; | ||
@@ -517,4 +544,4 @@ | ||
var dragUpdate = 1; | ||
if (that.movingX % dragUpdate === 0 || that.movingY % dragUpdate === 0) { | ||
if (that.dragWindowBorder) { | ||
if(that.movingX % dragUpdate === 0 || that.movingY % dragUpdate === 0){ | ||
if(that.dragWindowBorder){ | ||
var leftDistance = (windowWidth / 2) - boxWidth / 2; | ||
@@ -525,11 +552,11 @@ var topDistance = (windowHeight / 2) - boxHeight / 2; | ||
if (leftDistance + that.movingX < 0) { | ||
if(leftDistance + that.movingX < 0){ | ||
that.movingX = -leftDistance; | ||
} else if (leftDistance - that.movingX < 0) { | ||
}else if(leftDistance - that.movingX < 0){ | ||
that.movingX = leftDistance; | ||
} | ||
if (topDistance + that.movingY < 0) { | ||
if(topDistance + that.movingY < 0){ | ||
that.movingY = -topDistance; | ||
} else if (topDistance - that.movingY < 0) { | ||
}else if(topDistance - that.movingY < 0){ | ||
that.movingY = topDistance; | ||
@@ -542,8 +569,8 @@ } | ||
}, | ||
_scrollTop: function () { | ||
if (typeof pageYOffset !== 'undefined') { | ||
_scrollTop: function(){ | ||
if(typeof pageYOffset !== 'undefined'){ | ||
//most browsers except IE before #9 | ||
return pageYOffset; | ||
} | ||
else { | ||
else{ | ||
var B = document.body; //IE 'quirks' | ||
@@ -555,14 +582,17 @@ var D = document.documentElement; //IE with doctype | ||
}, | ||
_watchContent: function () { | ||
_watchContent: function(){ | ||
var that = this; | ||
if (this._timer) clearInterval(this._timer); | ||
if(this._timer) clearInterval(this._timer); | ||
var prevContentHeight = 0; | ||
this._timer = setInterval(function () { | ||
if (that.smoothContent) { | ||
this._timer = setInterval(function(){ | ||
if(that.smoothContent){ | ||
var contentHeight = that.$content.outerHeight() || 0; | ||
if (contentHeight !== prevContentHeight) { | ||
that.$contentPane.css({ | ||
'height': contentHeight | ||
}).scrollTop(0); | ||
if(contentHeight !== prevContentHeight){ | ||
// Commented out to prevent scroll to top when updating the content | ||
// (for example when using ajax in forms in content) | ||
// that.$contentPane.css({ | ||
// 'height': contentHeight | ||
// }).scrollTop(0); | ||
prevContentHeight = contentHeight; | ||
@@ -572,5 +602,5 @@ } | ||
var total = that.offsetTop + that.offsetBottom + that.$jconfirmBox.height() - that.$contentPane.height() + that.$content.height(); | ||
if (total < wh) { | ||
if(total < wh){ | ||
that.$contentPane.addClass('no-scroll'); | ||
} else { | ||
}else{ | ||
that.$contentPane.removeClass('no-scroll'); | ||
@@ -583,8 +613,8 @@ } | ||
_hilightAnimating: false, | ||
highlight: function () { | ||
highlight: function(){ | ||
this.hiLightModal(); | ||
}, | ||
hiLightModal: function () { | ||
hiLightModal: function(){ | ||
var that = this; | ||
if (this._hilightAnimating) | ||
if(this._hilightAnimating) | ||
return; | ||
@@ -595,3 +625,3 @@ | ||
this._hilightAnimating = true; | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that._hilightAnimating = false; | ||
@@ -601,8 +631,8 @@ that.$body.removeClass('hilight'); | ||
}, | ||
_bindEvents: function () { | ||
_bindEvents: function(){ | ||
var that = this; | ||
this.boxClicked = false; | ||
this.$scrollPane.click(function (e) { // Ignore propagated clicks | ||
if (!that.boxClicked) { // Background clicked | ||
this.$scrollPane.click(function(e){ // Ignore propagated clicks | ||
if(!that.boxClicked){ // Background clicked | ||
/* | ||
@@ -616,3 +646,3 @@ If backgroundDismiss is a function and its return value is truthy | ||
if (typeof that.backgroundDismiss == 'function') | ||
if(typeof that.backgroundDismiss === 'function') | ||
str = that.backgroundDismiss(); | ||
@@ -622,17 +652,17 @@ else | ||
if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') { | ||
if(typeof str === 'string' && typeof that.buttons[str] !== 'undefined'){ | ||
buttonName = str; | ||
shouldClose = false; | ||
} else if (typeof str == 'undefined' || !!(str) == true) { | ||
}else if(typeof str === 'undefined' || !!(str) === true){ | ||
shouldClose = true; | ||
} else { | ||
}else{ | ||
shouldClose = false; | ||
} | ||
if (buttonName) { | ||
if(buttonName){ | ||
var btnResponse = that.buttons[buttonName].action.apply(that); | ||
shouldClose = (typeof btnResponse == 'undefined') || !!(btnResponse); | ||
shouldClose = (typeof btnResponse === 'undefined') || !!(btnResponse); | ||
} | ||
if (shouldClose) | ||
if(shouldClose) | ||
that.close(); | ||
@@ -645,3 +675,3 @@ else | ||
this.$jconfirmBox.click(function (e) { | ||
this.$jconfirmBox.click(function(e){ | ||
that.boxClicked = true; | ||
@@ -651,9 +681,9 @@ }); | ||
var isKeyDown = false; | ||
$(window).on('jcKeyDown.' + that._id, function (e) { | ||
if (!isKeyDown) { | ||
$(window).on('jcKeyDown.' + that._id, function(e){ | ||
if(!isKeyDown){ | ||
isKeyDown = true; | ||
} | ||
}); | ||
$(window).on('keyup.' + that._id, function (e) { | ||
if (isKeyDown) { | ||
$(window).on('keyup.' + that._id, function(e){ | ||
if(isKeyDown){ | ||
that.reactOnKey(e); | ||
@@ -664,5 +694,5 @@ isKeyDown = false; | ||
$(window).on('resize.' + this._id, function () { | ||
$(window).on('resize.' + this._id, function(){ | ||
that._updateContentMaxHeight(); | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.resetDrag(); | ||
@@ -673,3 +703,3 @@ }, 100); | ||
_cubic_bezier: '0.36, 0.55, 0.19', | ||
_getCSS: function (speed, bounce) { | ||
_getCSS: function(speed, bounce){ | ||
return { | ||
@@ -682,3 +712,3 @@ '-webkit-transition-duration': speed / 1000 + 's', | ||
}, | ||
_setButtons: function () { | ||
_setButtons: function(){ | ||
var that = this; | ||
@@ -690,8 +720,8 @@ /* | ||
var total_buttons = 0; | ||
if (typeof this.buttons !== 'object') | ||
if(typeof this.buttons !== 'object') | ||
this.buttons = {}; | ||
$.each(this.buttons, function (key, button) { | ||
$.each(this.buttons, function(key, button){ | ||
total_buttons += 1; | ||
if (typeof button === 'function') { | ||
if(typeof button === 'function'){ | ||
that.buttons[key] = button = { | ||
@@ -704,4 +734,4 @@ action: button | ||
that.buttons[key].btnClass = button.btnClass || 'btn-default'; | ||
that.buttons[key].action = button.action || function () { | ||
}; | ||
that.buttons[key].action = button.action || function(){ | ||
}; | ||
that.buttons[key].keys = button.keys || []; | ||
@@ -711,3 +741,3 @@ that.buttons[key].isHidden = button.isHidden || false; | ||
$.each(that.buttons[key].keys, function (i, a) { | ||
$.each(that.buttons[key].keys, function(i, a){ | ||
that.buttons[key].keys[i] = a.toLowerCase(); | ||
@@ -721,3 +751,3 @@ }); | ||
.css('display', that.buttons[key].isHidden ? 'none' : '') | ||
.click(function (e) { | ||
.click(function(e){ | ||
e.preventDefault(); | ||
@@ -727,3 +757,3 @@ var res = that.buttons[key].action.apply(that, [that.buttons[key]]); | ||
that._stopCountDown(); | ||
if (typeof res === 'undefined' || res) | ||
if(typeof res === 'undefined' || res) | ||
that.close(); | ||
@@ -733,24 +763,24 @@ }); | ||
that.buttons[key].el = button_element; | ||
that.buttons[key].setText = function (text) { | ||
that.buttons[key].setText = function(text){ | ||
button_element.html(text); | ||
}; | ||
that.buttons[key].addClass = function (className) { | ||
that.buttons[key].addClass = function(className){ | ||
button_element.addClass(className); | ||
}; | ||
that.buttons[key].removeClass = function (className) { | ||
that.buttons[key].removeClass = function(className){ | ||
button_element.removeClass(className); | ||
}; | ||
that.buttons[key].disable = function () { | ||
that.buttons[key].disable = function(){ | ||
that.buttons[key].isDisabled = true; | ||
button_element.prop('disabled', true); | ||
}; | ||
that.buttons[key].enable = function () { | ||
that.buttons[key].enable = function(){ | ||
that.buttons[key].isDisabled = false; | ||
button_element.prop('disabled', false); | ||
}; | ||
that.buttons[key].show = function () { | ||
that.buttons[key].show = function(){ | ||
that.buttons[key].isHidden = false; | ||
button_element.css('display', ''); | ||
}; | ||
that.buttons[key].hide = function () { | ||
that.buttons[key].hide = function(){ | ||
that.buttons[key].isHidden = true; | ||
@@ -766,4 +796,4 @@ button_element.css('display', 'none'); | ||
if (total_buttons === 0) this.$btnc.hide(); | ||
if (this.closeIcon === null && total_buttons === 0) { | ||
if(total_buttons === 0) this.$btnc.hide(); | ||
if(this.closeIcon === null && total_buttons === 0){ | ||
/* | ||
@@ -776,4 +806,4 @@ in case when no buttons are present & closeIcon is null, closeIcon is set to true, | ||
if (this.closeIcon) { | ||
if (this.closeIconClass) { | ||
if(this.closeIcon){ | ||
if(this.closeIconClass){ | ||
// user requires a custom class. | ||
@@ -784,3 +814,3 @@ var closeHtml = '<i class="' + this.closeIconClass + '"></i>'; | ||
this.$closeIcon.click(function (e) { | ||
this.$closeIcon.click(function(e){ | ||
e.preventDefault(); | ||
@@ -792,21 +822,21 @@ | ||
if (typeof that.closeIcon == 'function') { | ||
if(typeof that.closeIcon === 'function'){ | ||
str = that.closeIcon(); | ||
} else { | ||
}else{ | ||
str = that.closeIcon; | ||
} | ||
if (typeof str == 'string' && typeof that.buttons[str] != 'undefined') { | ||
if(typeof str === 'string' && typeof that.buttons[str] !== 'undefined'){ | ||
buttonName = str; | ||
shouldClose = false; | ||
} else if (typeof str == 'undefined' || !!(str) == true) { | ||
}else if(typeof str === 'undefined' || !!(str) === true){ | ||
shouldClose = true; | ||
} else { | ||
}else{ | ||
shouldClose = false; | ||
} | ||
if (buttonName) { | ||
if(buttonName){ | ||
var btnResponse = that.buttons[buttonName].action.apply(that); | ||
shouldClose = (typeof btnResponse == 'undefined') || !!(btnResponse); | ||
shouldClose = (typeof btnResponse === 'undefined') || !!(btnResponse); | ||
} | ||
if (shouldClose) { | ||
if(shouldClose){ | ||
that.close(); | ||
@@ -816,25 +846,25 @@ } | ||
this.$closeIcon.show(); | ||
} else { | ||
}else{ | ||
this.$closeIcon.hide(); | ||
} | ||
}, | ||
setTitle: function (string, force) { | ||
setTitle: function(string, force){ | ||
force = force || false; | ||
if (typeof string !== 'undefined') | ||
if (typeof string == 'string') | ||
if(typeof string !== 'undefined') | ||
if(typeof string === 'string') | ||
this.title = string; | ||
else if (typeof string == 'function') { | ||
if (typeof string.promise == 'function') | ||
else if(typeof string === 'function'){ | ||
if(typeof string.promise === 'function') | ||
console.error('Promise was returned from title function, this is not supported.'); | ||
var response = string(); | ||
if (typeof response == 'string') | ||
if(typeof response === 'string') | ||
this.title = response; | ||
else | ||
this.title = false; | ||
} else | ||
}else | ||
this.title = false; | ||
if (this.isAjaxLoading && !force) | ||
if(this.isAjaxLoading && !force) | ||
return; | ||
@@ -845,11 +875,11 @@ | ||
}, | ||
setIcon: function (iconClass, force) { | ||
setIcon: function(iconClass, force){ | ||
force = force || false; | ||
if (typeof iconClass !== 'undefined') | ||
if (typeof iconClass == 'string') | ||
if(typeof iconClass !== 'undefined') | ||
if(typeof iconClass === 'string') | ||
this.icon = iconClass; | ||
else if (typeof iconClass === 'function') { | ||
else if(typeof iconClass === 'function'){ | ||
var response = iconClass(); | ||
if (typeof response == 'string') | ||
if(typeof response === 'string') | ||
this.icon = response; | ||
@@ -862,3 +892,3 @@ else | ||
if (this.isAjaxLoading && !force) | ||
if(this.isAjaxLoading && !force) | ||
return; | ||
@@ -869,11 +899,11 @@ | ||
}, | ||
updateTitleContainer: function () { | ||
if (!this.title && !this.icon) { | ||
updateTitleContainer: function(){ | ||
if(!this.title && !this.icon){ | ||
this.$titleContainer.hide(); | ||
} else { | ||
}else{ | ||
this.$titleContainer.show(); | ||
} | ||
}, | ||
setContentPrepend: function (content, force) { | ||
if (!content) | ||
setContentPrepend: function(content, force){ | ||
if(!content) | ||
return; | ||
@@ -883,4 +913,4 @@ | ||
}, | ||
setContentAppend: function (content) { | ||
if (!content) | ||
setContentAppend: function(content){ | ||
if(!content) | ||
return; | ||
@@ -890,8 +920,8 @@ | ||
}, | ||
setContent: function (content, force) { | ||
setContent: function(content, force){ | ||
force = !!force; | ||
var that = this; | ||
if (content) | ||
if(content) | ||
this.contentParsed.html('').append(content); | ||
if (this.isAjaxLoading && !force) | ||
if(this.isAjaxLoading && !force) | ||
return; | ||
@@ -901,3 +931,3 @@ | ||
this.$content.append(this.contentParsed); | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.$body.find('input[autofocus]:visible:first').focus(); | ||
@@ -907,13 +937,13 @@ }, 100); | ||
loadingSpinner: false, | ||
showLoading: function (disableButtons) { | ||
showLoading: function(disableButtons){ | ||
this.loadingSpinner = true; | ||
this.$jconfirmBox.addClass('loading'); | ||
if (disableButtons) | ||
if(disableButtons) | ||
this.$btnc.find('button').prop('disabled', true); | ||
}, | ||
hideLoading: function (enableButtons) { | ||
hideLoading: function(enableButtons){ | ||
this.loadingSpinner = false; | ||
this.$jconfirmBox.removeClass('loading'); | ||
if (enableButtons) | ||
if(enableButtons) | ||
this.$btnc.find('button').prop('disabled', false); | ||
@@ -926,16 +956,16 @@ | ||
isAjaxLoading: false, | ||
_parseContent: function () { | ||
_parseContent: function(){ | ||
var that = this; | ||
var e = ' '; | ||
if (typeof this.content == 'function') { | ||
if(typeof this.content === 'function'){ | ||
var res = this.content.apply(this); | ||
if (typeof res == 'string') { | ||
if(typeof res === 'string'){ | ||
this.content = res; | ||
} | ||
else if (typeof res == 'object' && typeof res.always == 'function') { | ||
else if(typeof res === 'object' && typeof res.always === 'function'){ | ||
// this is ajax loading via promise | ||
this.isAjax = true; | ||
this.isAjaxLoading = true; | ||
res.always(function (data, status, xhr) { | ||
res.always(function(data, status, xhr){ | ||
that.ajaxResponse = { | ||
@@ -947,7 +977,7 @@ data: data, | ||
that._contentReady.resolve(data, status, xhr); | ||
if (typeof that.contentLoaded == 'function') | ||
if(typeof that.contentLoaded === 'function') | ||
that.contentLoaded(data, status, xhr); | ||
}); | ||
this.content = e; | ||
} else { | ||
}else{ | ||
this.content = e; | ||
@@ -957,9 +987,9 @@ } | ||
if (typeof this.content == 'string' && this.content.substr(0, 4).toLowerCase() === 'url:') { | ||
if(typeof this.content === 'string' && this.content.substr(0, 4).toLowerCase() === 'url:'){ | ||
this.isAjax = true; | ||
this.isAjaxLoading = true; | ||
var u = this.content.substring(4, this.content.length); | ||
$.get(u).done(function (html) { | ||
$.get(u).done(function(html){ | ||
that.contentParsed.html(html); | ||
}).always(function (data, status, xhr) { | ||
}).always(function(data, status, xhr){ | ||
that.ajaxResponse = { | ||
@@ -971,3 +1001,3 @@ data: data, | ||
that._contentReady.resolve(data, status, xhr); | ||
if (typeof that.contentLoaded == 'function') | ||
if(typeof that.contentLoaded === 'function') | ||
that.contentLoaded(data, status, xhr); | ||
@@ -977,6 +1007,6 @@ }); | ||
if (!this.content) | ||
if(!this.content) | ||
this.content = e; | ||
if (!this.isAjax) { | ||
if(!this.isAjax){ | ||
this.contentParsed.html(this.content); | ||
@@ -987,11 +1017,11 @@ this.setContent(); | ||
}, | ||
_stopCountDown: function () { | ||
_stopCountDown: function(){ | ||
clearInterval(this.autoCloseInterval); | ||
if (this.$cd) | ||
if(this.$cd) | ||
this.$cd.remove(); | ||
}, | ||
_startCountDown: function () { | ||
_startCountDown: function(){ | ||
var that = this; | ||
var opt = this.autoClose.split('|'); | ||
if (opt.length !== 2) { | ||
if(opt.length !== 2){ | ||
console.error('Invalid option for autoClose. example \'close|10000\''); | ||
@@ -1003,3 +1033,3 @@ return false; | ||
var time = parseInt(opt[1]); | ||
if (typeof this.buttons[button_key] === 'undefined') { | ||
if(typeof this.buttons[button_key] === 'undefined'){ | ||
console.error('Invalid button key \'' + button_key + '\' for autoClose'); | ||
@@ -1013,5 +1043,5 @@ return false; | ||
this.autoCloseInterval = setInterval(function () { | ||
this.autoCloseInterval = setInterval(function(){ | ||
that.$cd.html(' (' + (seconds -= 1) + ') '); | ||
if (seconds <= 0) { | ||
if(seconds <= 0){ | ||
that['$$' + button_key].trigger('click'); | ||
@@ -1022,5 +1052,5 @@ that._stopCountDown(); | ||
}, | ||
_getKey: function (key) { | ||
_getKey: function(key){ | ||
// very necessary keys. | ||
switch (key) { | ||
switch(key){ | ||
case 192: | ||
@@ -1050,3 +1080,3 @@ return 'tilde'; | ||
var initial = String.fromCharCode(key); | ||
if (/^[A-z0-9]+$/.test(initial)) | ||
if(/^[A-z0-9]+$/.test(initial)) | ||
return initial.toLowerCase(); | ||
@@ -1056,3 +1086,3 @@ else | ||
}, | ||
reactOnKey: function (e) { | ||
reactOnKey: function(e){ | ||
var that = this; | ||
@@ -1064,3 +1094,3 @@ | ||
var a = $('.jconfirm'); | ||
if (a.eq(a.length - 1)[0] !== this.$el[0]) | ||
if(a.eq(a.length - 1)[0] !== this.$el[0]) | ||
return false; | ||
@@ -1072,3 +1102,3 @@ | ||
*/ | ||
if (this.$content.find(':input').is(':focus') && /13|32/.test(key)) | ||
if(this.$content.find(':input').is(':focus') && /13|32/.test(key)) | ||
return false; | ||
@@ -1079,18 +1109,18 @@ | ||
// If esc is pressed | ||
if (keyChar === 'esc' && this.escapeKey) { | ||
if (this.escapeKey === true) { | ||
if(keyChar === 'esc' && this.escapeKey){ | ||
if(this.escapeKey === true){ | ||
this.$scrollPane.trigger('click'); | ||
} | ||
else if (typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function') { | ||
else if(typeof this.escapeKey === 'string' || typeof this.escapeKey === 'function'){ | ||
var buttonKey; | ||
if (typeof this.escapeKey === 'function') { | ||
if(typeof this.escapeKey === 'function'){ | ||
buttonKey = this.escapeKey(); | ||
} else { | ||
}else{ | ||
buttonKey = this.escapeKey; | ||
} | ||
if (buttonKey) | ||
if (typeof this.buttons[buttonKey] === 'undefined') { | ||
if(buttonKey) | ||
if(typeof this.buttons[buttonKey] === 'undefined'){ | ||
console.warn('Invalid escapeKey, no buttons found with key ' + buttonKey); | ||
} else { | ||
}else{ | ||
this['$_' + buttonKey].trigger('click'); | ||
@@ -1102,4 +1132,4 @@ } | ||
// check if any button is listening to this key. | ||
$.each(this.buttons, function (key, button) { | ||
if (button.keys.indexOf(keyChar) != -1) { | ||
$.each(this.buttons, function(key, button){ | ||
if(button.keys.indexOf(keyChar) !== -1){ | ||
that['$_' + key].trigger('click'); | ||
@@ -1109,12 +1139,12 @@ } | ||
}, | ||
setDialogCenter: function () { | ||
setDialogCenter: function(){ | ||
console.info('setDialogCenter is deprecated, dialogs are centered with CSS3 tables'); | ||
}, | ||
_unwatchContent: function () { | ||
_unwatchContent: function(){ | ||
clearInterval(this._timer); | ||
}, | ||
close: function (onClosePayload) { | ||
close: function(onClosePayload){ | ||
var that = this; | ||
if (typeof this.onClose === 'function') | ||
if(typeof this.onClose === 'function') | ||
this.onClose(onClosePayload); | ||
@@ -1131,3 +1161,3 @@ | ||
if (this.draggable) { | ||
if(this.draggable){ | ||
$(window).unbind('mousemove.' + this._id); | ||
@@ -1142,3 +1172,3 @@ $(window).unbind('mouseup.' + this._id); | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.$body.addClass(that.closeAnimationParsed); | ||
@@ -1148,3 +1178,3 @@ that.$jconfirmBg.addClass('jconfirm-bg-h'); | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.$el.remove(); | ||
@@ -1154,4 +1184,4 @@ | ||
var i = jconfirm.instances.length - 1; | ||
for (i; i >= 0; i--) { | ||
if (jconfirm.instances[i]._id === that._id) { | ||
for(i; i >= 0; i--){ | ||
if(jconfirm.instances[i]._id === that._id){ | ||
jconfirm.instances.splice(i, 1); | ||
@@ -1163,22 +1193,22 @@ } | ||
// no instances should be open, lastFocused should be true, the lastFocused element must exists in DOM | ||
if (!jconfirm.instances.length) { | ||
if (that.scrollToPreviousElement && jconfirm.lastFocused && jconfirm.lastFocused.length && $.contains(document, jconfirm.lastFocused[0])) { | ||
if(!jconfirm.instances.length){ | ||
if(that.scrollToPreviousElement && jconfirm.lastFocused && jconfirm.lastFocused.length && $.contains(document, jconfirm.lastFocused[0])){ | ||
var $lf = jconfirm.lastFocused; | ||
if (that.scrollToPreviousElementAnimate) { | ||
if(that.scrollToPreviousElementAnimate){ | ||
var st = $(window).scrollTop(); | ||
var ot = jconfirm.lastFocused.offset().top; | ||
var wh = $(window).height(); | ||
if (!(ot > st && ot < (st + wh))) { | ||
if(!(ot > st && ot < (st + wh))){ | ||
var scrollTo = (ot - Math.round((wh / 3))); | ||
$('html, body').animate({ | ||
scrollTop: scrollTo | ||
}, that.animationSpeed, 'swing', function () { | ||
}, that.animationSpeed, 'swing', function(){ | ||
// gracefully scroll and then focus. | ||
$lf.focus(); | ||
}); | ||
} else { | ||
}else{ | ||
// the element to be focused is already in view. | ||
$lf.focus(); | ||
} | ||
} else { | ||
}else{ | ||
$lf.focus(); | ||
@@ -1190,3 +1220,3 @@ } | ||
if (typeof that.onDestroy === 'function') | ||
if(typeof that.onDestroy === 'function') | ||
that.onDestroy(); | ||
@@ -1199,4 +1229,4 @@ | ||
}, | ||
open: function () { | ||
if (this.isOpen()) | ||
open: function(){ | ||
if(this.isOpen()) | ||
return false; | ||
@@ -1211,16 +1241,16 @@ | ||
}, | ||
setStartingPoint: function () { | ||
setStartingPoint: function(){ | ||
var el = false; | ||
if (this.animateFromElement !== true && this.animateFromElement) { | ||
if(this.animateFromElement !== true && this.animateFromElement){ | ||
el = this.animateFromElement; | ||
jconfirm.lastClicked = false; | ||
} else if (jconfirm.lastClicked && this.animateFromElement === true) { | ||
}else if(jconfirm.lastClicked && this.animateFromElement === true){ | ||
el = jconfirm.lastClicked; | ||
jconfirm.lastClicked = false; | ||
} else { | ||
}else{ | ||
return false; | ||
} | ||
if (!el) | ||
if(!el) | ||
return false; | ||
@@ -1253,3 +1283,3 @@ | ||
// Check if the element is inside the viewable window. | ||
if (Math.abs(sourceTop) > wh || Math.abs(sourceLeft) > ww) | ||
if(Math.abs(sourceTop) > wh || Math.abs(sourceLeft) > ww) | ||
return false; | ||
@@ -1259,5 +1289,5 @@ | ||
}, | ||
_open: function () { | ||
_open: function(){ | ||
var that = this; | ||
if (typeof that.onOpenBefore === 'function') | ||
if(typeof that.onOpenBefore === 'function') | ||
that.onOpenBefore(); | ||
@@ -1271,3 +1301,3 @@ | ||
setTimeout(function () { | ||
setTimeout(function(){ | ||
that.$body.css(that._getCSS(that.animationSpeed, 1)); | ||
@@ -1279,3 +1309,3 @@ that.$body.css({ | ||
that._modalReady.resolve(); | ||
if (typeof that.onOpen === 'function') | ||
if(typeof that.onOpen === 'function') | ||
that.onOpen(); | ||
@@ -1288,9 +1318,9 @@ | ||
isClosed: function () { | ||
return !this.$el || this.$el.css('display') === ''; | ||
return !this.$el || this.$el.parent().length === 0; | ||
}, | ||
isOpen: function () { | ||
isOpen: function(){ | ||
return !this.isClosed(); | ||
}, | ||
toggle: function () { | ||
if (!this.isOpen()) | ||
toggle: function(){ | ||
if(!this.isOpen()) | ||
this.open(); | ||
@@ -1353,11 +1383,11 @@ else | ||
ok: { | ||
action: function () { | ||
action: function(){ | ||
} | ||
}, | ||
close: { | ||
action: function () { | ||
action: function(){ | ||
} | ||
} | ||
}, | ||
contentLoaded: function () { | ||
contentLoaded: function(){ | ||
}, | ||
@@ -1394,18 +1424,18 @@ icon: '', | ||
}, | ||
onContentReady: function () { | ||
onContentReady: function(){ | ||
}, | ||
onOpenBefore: function () { | ||
onOpenBefore: function(){ | ||
}, | ||
onOpen: function () { | ||
onOpen: function(){ | ||
}, | ||
onClose: function () { | ||
onClose: function(){ | ||
}, | ||
onDestroy: function () { | ||
onDestroy: function(){ | ||
}, | ||
onAction: function () { | ||
onAction: function(){ | ||
@@ -1428,9 +1458,9 @@ } | ||
var keyDown = false; | ||
$(window).on('keydown', function (e) { | ||
if (!keyDown) { | ||
$(window).on('keydown', function(e){ | ||
if(!keyDown){ | ||
var $target = $(e.target); | ||
var pass = false; | ||
if ($target.closest('.jconfirm-box').length) | ||
if($target.closest('.jconfirm-box').length) | ||
pass = true; | ||
if (pass) | ||
if(pass) | ||
$(window).trigger('jcKeyDown'); | ||
@@ -1441,9 +1471,9 @@ | ||
}); | ||
$(window).on('keyup', function () { | ||
$(window).on('keyup', function(){ | ||
keyDown = false; | ||
}); | ||
jconfirm.lastClicked = false; | ||
$(document).on('mousedown', 'button, a', function () { | ||
$(document).on('mousedown', 'button, a', function(){ | ||
jconfirm.lastClicked = $(this); | ||
}); | ||
})(jQuery, window); | ||
})); |
{ | ||
"name": "jquery-confirm", | ||
"version": "3.3.2", | ||
"version": "3.3.3", | ||
"title": "jquery-confirm.js | A multipurpose alert and confirm plugin", | ||
@@ -5,0 +5,0 @@ "description": "A jQuery plugin that provides great set of features like, Auto-close, Ajax-loading, background-dismiss, themes and more.", |
###  | ||
*alerts, confirms and dialogs in* ***one.*** | ||
v3.3.2 | ||
v3.3.3 | ||
@@ -76,3 +76,9 @@ [](https://www.paypal.me/bonifacepereira) | ||
(new in 3.3.1) | ||
(new in 3.3.3) | ||
* Safari height bug fix. PR by [lanre-ade](https://github.com/lanre-ade) | ||
* Fix isClosed bug for firefox. PR by [loganm](https://github.com/loganm) | ||
* Remove scroll to top when content height changes. PR by [amikot](https://github.com/amikot) | ||
* added support for AMD and commonJS | ||
(new in 3.3.1) | ||
* Pass 'false' in buttons property to remove all buttons in $.confirm and $.alert | ||
@@ -79,0 +85,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
1902190
0.13%5431
4.95%3710
0.82%235
2.62%30
-3.23%3
50%