{"version":3,"file":"rmodal.js","sources":["rmodal.js"],"sourcesContent":["'use strict';\n\nlet is = (obj, type) => Object.prototype.toString.call(obj).toLowerCase() === `[object ${type}]`;\n\nlet addClass = (el, cls) => {\n let arr = el.className\n .split(/\\s+/)\n .filter((c) => !!c && c == cls);\n\n if (!arr.length) {\n el.className += ` ${cls}`;\n }\n}\n\nlet removeClass = (el, cls) => {\n el.className = el.className\n .split(/\\s+/)\n .filter((c) => !!c && c != cls)\n .join(' ');\n}\n\nclass RModal {\n constructor(el, opts) {\n this.opened = false;\n\n this.opts = {\n bodyClass: 'modal-open'\n , dialogClass: 'modal-dialog'\n , dialogOpenClass: 'bounceInDown'\n , dialogCloseClass: 'bounceOutUp'\n\n , focus: true\n , focusElements: [\n 'a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])'\n , 'button:not([disabled])', 'select:not([disabled])'\n , 'textarea:not([disabled])', 'iframe', 'object', 'embed'\n , '*[tabindex]', '*[contenteditable]'\n ]\n\n , escapeClose: true\n , content: null\n };\n\n Object.keys(opts || {})\n .forEach((key) => {\n /* istanbul ignore else */\n if (opts[key] !== undefined) {\n this.opts[key] = opts[key];\n }\n });\n\n this.overlay = el;\n this.dialog = el.querySelector(`.${this.opts.dialogClass}`);\n\n if (this.opts.content) {\n this.content(this.opts.content);\n }\n }\n\n open(content) {\n this.content(content);\n\n if (!is(this.opts.beforeOpen, 'function')) {\n return this._doOpen();\n }\n\n this.opts.beforeOpen(() => {\n this._doOpen();\n });\n }\n\n _doOpen() {\n addClass(document.body, this.opts.bodyClass);\n\n removeClass(this.dialog, this.opts.dialogCloseClass);\n addClass(this.dialog, this.opts.dialogOpenClass);\n\n this.overlay.style.display = 'block';\n\n if (this.opts.focus) {\n this.focusOutElement = document.activeElement;\n this.focus();\n }\n\n if (is(this.opts.afterOpen, 'function')) {\n this.opts.afterOpen();\n }\n this.opened = true;\n }\n\n close() {\n if (!is(this.opts.beforeClose, 'function')) {\n return this._doClose();\n }\n\n this.opts.beforeClose(() => {\n this._doClose();\n });\n }\n\n _doClose() {\n removeClass(this.dialog, this.opts.dialogOpenClass);\n addClass(this.dialog, this.opts.dialogCloseClass);\n\n removeClass(document.body, this.opts.bodyClass);\n\n if (this.opts.focus) {\n this.focus(this.focusOutElement);\n }\n\n if (is(this.opts.afterClose, 'function')) {\n this.opts.afterClose();\n }\n\n this.opened = false;\n setTimeout(() => {\n this.overlay.style.display = 'none';\n }, 500);\n }\n\n content(content) {\n if (content === undefined) {\n return this.dialog.innerHTML;\n }\n\n this.dialog.innerHTML = content;\n }\n\n elements(selector, fallback) {\n fallback = fallback || window.navigator.appVersion.indexOf('MSIE 9.0') > -1;\n selector = is(selector, 'array') ? selector.join(',') : selector;\n\n return [].filter.call(\n this.dialog.querySelectorAll(selector)\n , (element) => {\n if (fallback) {\n var style = window.getComputedStyle(element);\n return style.display !== 'none' && style.visibility !== 'hidden';\n }\n\n return element.offsetParent !== null;\n }\n );\n }\n\n focus(el) {\n el = el || this.elements(this.opts.focusElements)[0] || this.dialog.firstChild;\n\n if (el && is(el.focus, 'function')) {\n el.focus();\n }\n }\n\n keydown(ev) {\n if (this.opts.escapeClose && ev.which == 27) {\n this.close();\n }\n\n function stopEvent() {\n ev.preventDefault();\n ev.stopPropagation();\n }\n\n if (this.opened && ev.which == 9 && this.dialog.contains(ev.target)) {\n var elements = this.elements(this.opts.focusElements)\n , first = elements[0]\n , last = elements[elements.length - 1];\n\n if (first == last) {\n stopEvent();\n }\n else if (ev.target == first && ev.shiftKey) {\n stopEvent();\n last.focus();\n }\n else if (ev.target == last && !ev.shiftKey) {\n stopEvent();\n first.focus();\n }\n }\n }\n}\n\nRModal.prototype.version = '@@VERSION@@';\nRModal.version = '@@VERSION@@';\n\nexport default RModal;"],"names":["let"],"mappings":"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","sourceRoot":"/source/"}