pbs/sweet-alert.js

1 line
16 KiB
JavaScript
Raw Normal View History

2016-04-14 10:03:36 +02:00
!function(window,document,undefined){function setParameters(params){var modal=getModal(),$title=modal.querySelector("h2"),$text=modal.querySelector("p"),$cancelBtn=modal.querySelector("button.cancel"),$confirmBtn=modal.querySelector("button.confirm");if($title.innerHTML=params.html?params.title:escapeHtml(params.title).split("\n").join("<br>"),$text.innerHTML=params.html?params.text:escapeHtml(params.text||"").split("\n").join("<br>"),params.text&&show($text),params.customClass)addClass(modal,params.customClass),modal.setAttribute("data-custom-class",params.customClass);else{var customClass=modal.getAttribute("data-custom-class");removeClass(modal,customClass),modal.setAttribute("data-custom-class","")}if(hide(modal.querySelectorAll(".sa-icon")),params.type&&!isIE8()){for(var validType=!1,i=0;i<alertTypes.length;i++)if(params.type===alertTypes[i]){validType=!0;break}if(!validType)return logStr("Unknown alert type: "+params.type),!1;var $icon,typesWithIcons=["success","error","warning","info"];-1!==typesWithIcons.indexOf(params.type)&&($icon=modal.querySelector(".sa-icon.sa-"+params.type),show($icon));var $input=getInput();switch(params.type){case"success":addClass($icon,"animate"),addClass($icon.querySelector(".sa-tip"),"animateSuccessTip"),addClass($icon.querySelector(".sa-long"),"animateSuccessLong");break;case"error":addClass($icon,"animateErrorIcon"),addClass($icon.querySelector(".sa-x-mark"),"animateXMark");break;case"warning":addClass($icon,"pulseWarning"),addClass($icon.querySelector(".sa-body"),"pulseWarningIns"),addClass($icon.querySelector(".sa-dot"),"pulseWarningIns");break;case"input":case"prompt":$input.setAttribute("type",params.inputType),addClass(modal,"show-input"),setTimeout(function(){$input.focus(),$input.addEventListener("keyup",swal.resetInputError)},400)}}if(params.imageUrl){var $customIcon=modal.querySelector(".sa-icon.sa-custom");$customIcon.style.backgroundImage="url("+params.imageUrl+")",show($customIcon);var _imgWidth=80,_imgHeight=80;if(params.imageSize){var dimensions=params.imageSize.toString().split("x"),imgWidth=dimensions[0],imgHeight=dimensions[1];imgWidth&&imgHeight?(_imgWidth=imgWidth,_imgHeight=imgHeight):logStr("Parameter imageSize expects value with format WIDTHxHEIGHT, got "+params.imageSize)}$customIcon.setAttribute("style",$customIcon.getAttribute("style")+"width:"+_imgWidth+"px; height:"+_imgHeight+"px")}modal.setAttribute("data-has-cancel-button",params.showCancelButton),params.showCancelButton?$cancelBtn.style.display="inline-block":hide($cancelBtn),modal.setAttribute("data-has-confirm-button",params.showConfirmButton),params.showConfirmButton?$confirmBtn.style.display="inline-block":hide($confirmBtn),params.cancelButtonText&&($cancelBtn.innerHTML=escapeHtml(params.cancelButtonText)),params.confirmButtonText&&($confirmBtn.innerHTML=escapeHtml(params.confirmButtonText)),params.confirmButtonColor&&($confirmBtn.style.backgroundColor=params.confirmButtonColor,setFocusStyle($confirmBtn,params.confirmButtonColor)),modal.setAttribute("data-allow-ouside-click",params.allowOutsideClick);var hasDoneFunction=!!params.doneFunction;modal.setAttribute("data-has-done-function",hasDoneFunction),params.animation?"string"==typeof params.animation?modal.setAttribute("data-animation",params.animation):modal.setAttribute("data-animation","pop"):modal.setAttribute("data-animation","none"),modal.setAttribute("data-timer",params.timer)}function colorLuminance(hex,lum){hex=String(hex).replace(/[^0-9a-f]/gi,""),hex.length<6&&(hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]),lum=lum||0;var c,i,rgb="#";for(i=0;3>i;i++)c=parseInt(hex.substr(2*i,2),16),c=Math.round(Math.min(Math.max(0,c+c*lum),255)).toString(16),rgb+=("00"+c).substr(c.length);return rgb}function extend(a,b){for(var key in b)b.hasOwnProperty(key)&&(a[key]=b[key]);return a}function hexToRgb(hex){var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);return result?parseInt(result[1],16)+", "+parseInt(result[2],16)+", "+parseInt(result[3],16):null}function setFocusStyle($button,bgColor){var rgbColor=hexToRgb(bgColor);$button.style.bo