-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathjquery.confirmModal.min.js
7 lines (7 loc) · 4.91 KB
/
jquery.confirmModal.min.js
1
2
3
4
5
6
7
/*!
* jQuery.confirmModal v1.1
* Copyright (c) 2018-2019 Trim C.
* Released under the MIT license
* Description : simple to use plugin replacing the browser's default confirm box with bootstrap 4 modal
*/
!function(e){$currentModalTarget={},$defaultsConfirmModal={},jQuery.confirmModal=function(l,r,o){var t=document.activeElement,n=e.extend({},$defaultsConfirmModal,r);if(void 0===n)var a="auto",i="",d="",m="OK",u="Cancel";else{if(void 0===$defaultsConfirmModal.confirmButton)m="OK";else m=$defaultsConfirmModal.confirmButton;if(void 0===$defaultsConfirmModal.cancelButton)u="Cancel";else u=$defaultsConfirmModal.cancelButton;if(void 0===n.modalBoxWidth)a="auto";else a=n.modalBoxWidth;if(void 0===n.modalVerticalCenter||!1===n.modalVerticalCenter)i="";else i="modal-dialog-centered";if(void 0===n.messageHeader||""===n.messageHeader)var c=" ";else c=n.messageHeader;if(void 0===n.fadeAnimation||!1===n.fadeAnimation)d="";else d="fade";if(!0===n.backgroundBlur)0===e("#cmStyle").length?e("head").append("<style id=cmStyle>.cmBackgroundBlur{-webkit-filter:blur(0.1rem);-moz-filter:blur(0.1rem);-o-filter:blur(0.1rem);-ms-filter:blur(0.1rem);filter:blur(0.1rem)}</style>"):".cmBackgroundBlur{-webkit-filter:blur(0.1rem);-moz-filter:blur(0.1rem);-o-filter:blur(0.1rem);-ms-filter:blur(0.1rem);filter:blur(0.1rem)}"!=e("#cmStyle").html()&&e("#cmStyle").html(".cmBackgroundBlur{-webkit-filter:blur(0.1rem);-moz-filter:blur(0.1rem);-o-filter:blur(0.1rem);-ms-filter:blur(0.1rem);filter:blur(0.1rem)}"),e(".container").addClass("cmBackgroundBlur"),e(document).one("hide.bs.modal",".modalConfirm",function(){e(".container").removeClass("cmBackgroundBlur")});else if("object"==typeof n.backgroundBlur){var s=n.backgroundBlur.findIndex(function(e){return/(^[0-9]+px|rem$)/i.test(e)});if(s>=0)if(0==s)var f=".container",b=n.backgroundBlur[0];else f=n.backgroundBlur[0],b=n.backgroundBlur[1];else f=n.backgroundBlur[0],b="0.1rem";0===e("#cmStyle").length?e("head").append("<style id=cmStyle>.cmBackgroundBlur{-webkit-filter:blur("+b+");-moz-filter:blur("+b+");-o-filter:blur("+b+");-ms-filter:blur("+b+");filter:blur("+b+")}</style>"):e("#cmStyle").html()!=".cmBackgroundBlur{-webkit-filter:blur("+b+");-moz-filter:blur("+b+");-o-filter:blur("+b+");-ms-filter:blur("+b+");filter:blur("+b+")}"&&e("#cmStyle").html(".cmBackgroundBlur{-webkit-filter:blur("+b+");-moz-filter:blur("+b+");-o-filter:blur("+b+");-ms-filter:blur("+b+");filter:blur("+b+")}"),e(f).addClass("cmBackgroundBlur"),e(document).one("hide.bs.modal",".modalConfirm",function(){e(f).removeClass("cmBackgroundBlur")})}!0===n.autoFocusOnConfirmBtn&&e(document).one("shown.bs.modal",".modalConfirm",function(){e(".confirmButton").focus()})}var B='\n <div style="z-index: 5000;" class="modal '+d+' modalConfirm" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">\n <div style="max-width: '+a+';" class="modal-dialog '+i+'" role="document">\n <div class="modal-content">\n <div style="padding: 0.6rem" class="modal-header">\n <h6 class="modal-title">'+c+'</h6>\n <button type="button" style="padding: 0.45rem 0.8rem;" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>\n </div>\n <div style="padding: 0.8rem; font-size: 0.9rem;" class="modal-body text-break">'+l+'</div>\n <div style="padding: 0.55rem; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;" class="modal-footer">\n <button type="button" style="'+("OK"===m?"width: 66px;":"")+' padding: .18rem .5rem;" class="confirmButton btn btn-primary btn-sm">'+m+'</button>\n <button type="button" style="'+("Cancel"===u?"width: 66px;":"")+' padding: .18rem .5rem;" class="btn btn-secondary btn-sm" data-dismiss="modal">'+u+"</button>\n </div>\n </div>\n </div>\n </div>\n ";e.isEmptyObject($currentModalTarget)?($currentModalTarget=t,e("body").prepend(B),e(".modalConfirm").modal("show"),e(".confirmButton").on("click",function(l){l.preventDefault(),e(".modalConfirm").modal("hide"),"function"==typeof o?o(t):r(t)})):$currentModalTarget.className!=t.className?(e("body > div.modalConfirm").remove(),$currentModalTarget=t,e("body").prepend(B),e(".modalConfirm").modal("show"),e(".confirmButton").off("click"),e(".confirmButton").on("click",function(l){l.preventDefault(),e(".modalConfirm").modal("hide"),"function"==typeof o?o(t):r(t)})):t!=$currentModalTarget?($currentModalTarget=t,e(".modalConfirm").modal("show"),e(".confirmButton").off("click"),e(".confirmButton").on("click",function(l){l.preventDefault(),e(".modalConfirm").modal("hide"),"function"==typeof o?o(t):r(t)})):e(".modalConfirm").modal("show")}}(jQuery);