-
Notifications
You must be signed in to change notification settings - Fork 42
/
rmodal.min.js
2 lines (2 loc) · 3.05 KB
/
rmodal.min.js
1
2
!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):t.RModal=o()}(this,function(){"use strict";var s=function(t,o){return Object.prototype.toString.call(t).toLowerCase()==="[object "+o+"]"},o=function(t,o){t.className.split(/\s+/).filter(function(t){return!!t&&t==o}).length||(t.className+=" "+o)},e=function(t,o){t.className=t.className.split(/\s+/).filter(function(t){return!!t&&t!=o}).join(" ")},t=function(t,o){var e=this;this.opened=!1,this.opts={bodyClass:"modal-open",dialogClass:"modal-dialog",dialogOpenClass:"bounceInDown",dialogCloseClass:"bounceOutUp",focus:!0,focusElements:["a[href]","area[href]","input:not([disabled]):not([type=hidden])","button:not([disabled])","select:not([disabled])","textarea:not([disabled])","iframe","object","embed","*[tabindex]","*[contenteditable]"],escapeClose:!0,content:null,closeTimeout:500},Object.keys(o||{}).forEach(function(t){void 0!==o[t]&&(e.opts[t]=o[t])}),this.overlay=t,this.dialog=t.querySelector("."+this.opts.dialogClass),this.opts.content&&this.content(this.opts.content)};return t.prototype.open=function(t){var o=this;if(this.content(t),!s(this.opts.beforeOpen,"function"))return this._doOpen();this.opts.beforeOpen(function(){o._doOpen()})},t.prototype._doOpen=function(){o(document.body,this.opts.bodyClass),e(this.dialog,this.opts.dialogCloseClass),o(this.dialog,this.opts.dialogOpenClass),this.overlay.style.display="block",this.opts.focus&&(this.focusOutElement=document.activeElement,this.focus()),s(this.opts.afterOpen,"function")&&this.opts.afterOpen(),this.opened=!0},t.prototype.close=function(){var t=this;if(!s(this.opts.beforeClose,"function"))return this._doClose();this.opts.beforeClose(function(){t._doClose()})},t.prototype._doClose=function(){var t=this;e(this.dialog,this.opts.dialogOpenClass),o(this.dialog,this.opts.dialogCloseClass),e(document.body,this.opts.bodyClass),this.opts.focus&&this.focus(this.focusOutElement),setTimeout(function(){t.overlay.style.display="none",s(t.opts.afterClose,"function")&&t.opts.afterClose(),t.opened=!1},this.opts.closeTimeout)},t.prototype.content=function(t){if(void 0===t)return this.dialog.innerHTML;this.dialog.innerHTML=t},t.prototype.elements=function(t,e){return e=e||-1<window.navigator.appVersion.indexOf("MSIE 9.0"),t=s(t,"array")?t.join(","):t,[].filter.call(this.dialog.querySelectorAll(t),function(t){if(e){var o=window.getComputedStyle(t);return"none"!==o.display&&"hidden"!==o.visibility}return null!==t.offsetParent})},t.prototype.focus=function(t){(t=t||this.elements(this.opts.focusElements)[0]||this.dialog.firstChild)&&s(t.focus,"function")&&t.focus()},t.prototype.keydown=function(t){this.opts.escapeClose&&27==t.which&&this.close();var o=function(){t.preventDefault(),t.stopPropagation()};if(this.opened&&9==t.which&&this.dialog.contains(t.target)){var e=this.elements(this.opts.focusElements),s=e[0],i=e[e.length-1];s==i?o():t.target==s&&t.shiftKey?(o(),i.focus()):t.target!=i||t.shiftKey||(o(),s.focus())}},t.prototype.version="1.0.35",t.version="1.0.35",t});
//# sourceMappingURL=rmodal.min.js.map