rails_admin_live_edit 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +0,0 @@
1
- {"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 , closeTimeout: 500\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 }, this.opts.closeTimeout);\n }\n\n content(html) {\n if (html === undefined) {\n return this.dialog.innerHTML;\n }\n\n this.dialog.innerHTML = html;\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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","preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy93aXNoL0Rlc2t0b3Avcm1vZGFsLmpzL3NyYy9ybW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5sZXQgaXMgPSAob2JqLCB0eXBlKSA9PiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS50b0xvd2VyQ2FzZSgpID09PSBgW29iamVjdCAke3R5cGV9XWA7XG5cbmxldCBhZGRDbGFzcyA9IChlbCwgY2xzKSA9PiB7XG4gICAgbGV0IGFyciA9IGVsLmNsYXNzTmFtZVxuICAgIC5zcGxpdCgvXFxzKy8pXG4gICAgLmZpbHRlcigoYykgPT4gISFjICYmIGMgPT0gY2xzKTtcblxuICAgIGlmICghYXJyLmxlbmd0aCkge1xuICAgICAgICBlbC5jbGFzc05hbWUgKz0gYCAke2Nsc31gO1xuICAgIH1cbn07XG5cbmxldCByZW1vdmVDbGFzcyA9IChlbCwgY2xzKSA9PiB7XG4gICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAuZmlsdGVyKChjKSA9PiAhIWMgJiYgYyAhPSBjbHMpXG4gICAgLmpvaW4oJyAnKTtcbn07XG5cbmNsYXNzIFJNb2RhbCB7XG4gICAgY29uc3RydWN0b3IoZWwsIG9wdHMpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLm9wdHMgPSB7XG4gICAgICAgICAgICBib2R5Q2xhc3M6ICdtb2RhbC1vcGVuJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbGFzczogJ21vZGFsLWRpYWxvZydcbiAgICAgICAgICAgICwgZGlhbG9nT3BlbkNsYXNzOiAnYm91bmNlSW5Eb3duJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbG9zZUNsYXNzOiAnYm91bmNlT3V0VXAnXG5cbiAgICAgICAgICAgICwgZm9jdXM6IHRydWVcbiAgICAgICAgICAgICwgZm9jdXNFbGVtZW50czogW1xuICAgICAgICAgICAgICAgICdhW2hyZWZdJywgJ2FyZWFbaHJlZl0nLCAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1oaWRkZW5dKSdcbiAgICAgICAgICAgICAgICAsICdidXR0b246bm90KFtkaXNhYmxlZF0pJywgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknXG4gICAgICAgICAgICAgICAgLCAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJywgJ2lmcmFtZScsICdvYmplY3QnLCAnZW1iZWQnXG4gICAgICAgICAgICAgICAgLCAnKlt0YWJpbmRleF0nLCAnKltjb250ZW50ZWRpdGFibGVdJ1xuICAgICAgICAgICAgXVxuXG4gICAgICAgICAgICAsIGVzY2FwZUNsb3NlOiB0cnVlXG4gICAgICAgICAgICAsIGNvbnRlbnQ6IG51bGxcbiAgICAgICAgICAgICwgY2xvc2VUaW1lb3V0OiA1MDBcbiAgICAgICAgfTtcblxuICAgICAgICBPYmplY3Qua2V5cyhvcHRzIHx8IHt9KVxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9wdHNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRzW2tleV0gPSBvcHRzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheSA9IGVsO1xuICAgICAgICB0aGlzLmRpYWxvZyA9IGVsLnF1ZXJ5U2VsZWN0b3IoYC4ke3RoaXMub3B0cy5kaWFsb2dDbGFzc31gKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCh0aGlzLm9wdHMuY29udGVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuKGNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5jb250ZW50KGNvbnRlbnQpO1xuXG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZU9wZW4sICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZG9PcGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdHMuYmVmb3JlT3BlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb09wZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2RvT3BlbigpIHtcbiAgICAgICAgYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dDbG9zZUNsYXNzKTtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dPcGVuQ2xhc3MpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT3V0RWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyT3BlbiwgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0cy5hZnRlck9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZUNsb3NlLCAnZnVuY3Rpb24nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RvQ2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3B0cy5iZWZvcmVDbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb0Nsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kb0Nsb3NlKCkge1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmRpYWxvZywgdGhpcy5vcHRzLmRpYWxvZ09wZW5DbGFzcyk7XG4gICAgICAgIGFkZENsYXNzKHRoaXMuZGlhbG9nLCB0aGlzLm9wdHMuZGlhbG9nQ2xvc2VDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy5mb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyh0aGlzLmZvY3VzT3V0RWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyQ2xvc2UsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdHMuYWZ0ZXJDbG9zZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSwgdGhpcy5vcHRzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuXG4gICAgY29udGVudChodG1sKSB7XG4gICAgICAgIGlmIChodG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpYWxvZy5pbm5lckhUTUw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZy5pbm5lckhUTUwgPSBodG1sO1xuICAgIH1cblxuICAgIGVsZW1lbnRzKHNlbGVjdG9yLCBmYWxsYmFjaykge1xuICAgICAgICBmYWxsYmFjayA9IGZhbGxiYWNrIHx8IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdNU0lFIDkuMCcpID4gLTE7XG4gICAgICAgIHNlbGVjdG9yID0gaXMoc2VsZWN0b3IsICdhcnJheScpID8gc2VsZWN0b3Iuam9pbignLCcpIDogc2VsZWN0b3I7XG5cbiAgICAgICAgcmV0dXJuIFtdLmZpbHRlci5jYWxsKFxuICAgICAgICAgICAgdGhpcy5kaWFsb2cucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcilcbiAgICAgICAgICAgICwgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiYgc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50ICE9PSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvY3VzKGVsKSB7XG4gICAgICAgIGVsID0gZWwgfHwgdGhpcy5lbGVtZW50cyh0aGlzLm9wdHMuZm9jdXNFbGVtZW50cylbMF0gfHwgdGhpcy5kaWFsb2cuZmlyc3RDaGlsZDtcblxuICAgICAgICBpZiAoZWwgJiYgaXMoZWwuZm9jdXMsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAga2V5ZG93bihldikge1xuICAgICAgICBpZiAodGhpcy5vcHRzLmVzY2FwZUNsb3NlICYmIGV2LndoaWNoID09IDI3KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzdG9wRXZlbnQoKSB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuZWQgJiYgZXYud2hpY2ggPT0gOSAmJiB0aGlzLmRpYWxvZy5jb250YWlucyhldi50YXJnZXQpKSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzKHRoaXMub3B0cy5mb2N1c0VsZW1lbnRzKVxuICAgICAgICAgICAgICAgICwgZmlyc3QgPSBlbGVtZW50c1swXVxuICAgICAgICAgICAgICAgICwgbGFzdCA9IGVsZW1lbnRzW2VsZW1lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAoZmlyc3QgPT0gbGFzdCkge1xuICAgICAgICAgICAgICAgIHN0b3BFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZXYudGFyZ2V0ID09IGZpcnN0ICYmIGV2LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgbGFzdC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZXYudGFyZ2V0ID09IGxhc3QgJiYgIWV2LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuUk1vZGFsLnByb3RvdHlwZS52ZXJzaW9uID0gJ0BAVkVSU0lPTkBAJztcblJNb2RhbC52ZXJzaW9uID0gJ0BAVkVSU0lPTkBAJztcblxuZXhwb3J0IGRlZmF1bHQgUk1vZGFsOyJdLCJuYW1lcyI6WyJsZXQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBQSxJQUFJLEVBQUUsR0FBRyxVQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQUssVUFBUyxHQUFFLElBQUksTUFBRSxDQUFDLEdBQUEsQ0FBQzs7QUFFakdBLElBQUksUUFBUSxHQUFHLFVBQUMsRUFBRSxFQUFF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"}
@@ -1,2 +0,0 @@
1
- !function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):t.RModal=o()}(this,function(){var t=function(t,o){return Object.prototype.toString.call(t).toLowerCase()==="[object "+o+"]"},o=function(t,o){var e=t.className.split(/\s+/).filter(function(t){return!!t&&t==o});e.length||(t.className+=" "+o)},e=function(t,o){t.className=t.className.split(/\s+/).filter(function(t){return!!t&&t!=o}).join(" ")},s=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 s.prototype.open=function(o){var e=this;return this.content(o),t(this.opts.beforeOpen,"function")?void this.opts.beforeOpen(function(){e._doOpen()}):this._doOpen()},s.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()),t(this.opts.afterOpen,"function")&&this.opts.afterOpen(),this.opened=!0},s.prototype.close=function(){var o=this;return t(this.opts.beforeClose,"function")?void this.opts.beforeClose(function(){o._doClose()}):this._doClose()},s.prototype._doClose=function(){var s=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),t(this.opts.afterClose,"function")&&this.opts.afterClose(),this.opened=!1,setTimeout(function(){s.overlay.style.display="none"},this.opts.closeTimeout)},s.prototype.content=function(t){return void 0===t?this.dialog.innerHTML:void(this.dialog.innerHTML=t)},s.prototype.elements=function(o,e){return e=e||window.navigator.appVersion.indexOf("MSIE 9.0")>-1,o=t(o,"array")?o.join(","):o,[].filter.call(this.dialog.querySelectorAll(o),function(t){if(e){var o=window.getComputedStyle(t);return"none"!==o.display&&"hidden"!==o.visibility}return null!==t.offsetParent})},s.prototype.focus=function(o){o=o||this.elements(this.opts.focusElements)[0]||this.dialog.firstChild,o&&t(o.focus,"function")&&o.focus()},s.prototype.keydown=function(t){function o(){t.preventDefault(),t.stopPropagation()}if(this.opts.escapeClose&&27==t.which&&this.close(),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())}},s.prototype.version="1.0.24",s.version="1.0.24",s});
2
- //# sourceMappingURL=rmodal.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["rmodal.js"],"names":["let","is","obj","type","Object","prototype","toString","call","toLowerCase","addClass","el","cls","arr","className","split","filter","c","length","removeClass","join","RModal","opts","this","opened","bodyClass","dialogClass","dialogOpenClass","dialogCloseClass","focus","focusElements","escapeClose","content","closeTimeout","keys","forEach","key","undefined","this$1","overlay","dialog","querySelector","open","beforeOpen","_doOpen","document","body","style","display","focusOutElement","activeElement","afterOpen","close","beforeClose","_doClose","afterClose","setTimeout","html","innerHTML","elements","selector","fallback","window","navigator","appVersion","indexOf","querySelectorAll","element","getComputedStyle","visibility","offsetParent","firstChild","keydown","ev","stopEvent","preventDefault","stopPropagation","which","contains","target","first","last","shiftKey","version"],"mappings":"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","file":"rmodal.min.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 , closeTimeout: 500\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 }, this.opts.closeTimeout);\n }\n\n content(html) {\n if (html === undefined) {\n return this.dialog.innerHTML;\n }\n\n this.dialog.innerHTML = html;\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;"]}
@@ -1,99 +0,0 @@
1
- 'use strict';
2
-
3
- let gulp = require('gulp')
4
- , eslint = require('gulp-eslint')
5
- , rename = require('gulp-rename')
6
- , uglify = require('gulp-uglify')
7
- , replace = require('gulp-replace')
8
- , sourcemaps = require('gulp-sourcemaps')
9
- , karma = require('karma').Server
10
- , source = require('vinyl-source-stream')
11
- , buffer = require('vinyl-buffer')
12
- , rollup = require('rollup-stream')
13
- , buble = require('rollup-plugin-buble');
14
-
15
- process.chdir(__dirname);
16
-
17
- let bundle = (format) => {
18
- return rollup({
19
- entry: 'src/rmodal.js'
20
- , format: format
21
- , moduleName: 'RModal'
22
- , plugins: [ buble() ]
23
- , sourceMap: true
24
- , useStrict: false
25
- })
26
- .pipe(source('rmodal.js', './src'))
27
- .pipe(buffer())
28
- .pipe(replace(
29
- /@@VERSION@@/g
30
- , require('./package.json').version
31
- ));
32
- };
33
-
34
- gulp.task('lint', () => {
35
- return gulp.src('src/*.js')
36
- .pipe(eslint())
37
- .pipe(eslint.format());
38
- });
39
-
40
- gulp.task('css', () => {
41
- return gulp.src('src/*.css')
42
- .pipe(gulp.dest('dist'));
43
- });
44
-
45
- gulp.task('cjs', () => {
46
- return bundle('cjs')
47
- .pipe(sourcemaps.init({
48
- loadMaps: true
49
- }))
50
- .pipe(rename((path) => {
51
- path.basename = 'index';
52
- }))
53
- .pipe(sourcemaps.write('.'))
54
- .pipe(gulp.dest('./'));
55
- });
56
-
57
-
58
- gulp.task('js', [ 'cjs' ], () => {
59
- return bundle('umd')
60
- .pipe(sourcemaps.init({
61
- loadMaps: true
62
- }))
63
- .pipe(sourcemaps.write('.'))
64
- .pipe(gulp.dest('dist'));
65
- });
66
-
67
- gulp.task('jsmin', [ 'js' ], () => {
68
- return gulp.src('dist/rmodal.js')
69
- .pipe(sourcemaps.init({
70
- loadMaps: true
71
- }))
72
- .pipe(uglify({
73
- mangle: true
74
- }))
75
- .pipe(rename((path) => {
76
- path.basename += '.min';
77
- }))
78
- .pipe(sourcemaps.write('.'))
79
- .pipe(gulp.dest('dist'));
80
- });
81
-
82
- gulp.task('build', [
83
- 'css', 'jsmin'
84
- ]);
85
-
86
- gulp.task('test', [ 'cjs' ], (done) => {
87
- new karma(
88
- {
89
- configFile: `${__dirname}/karma.conf.js`
90
- , singleRun: true
91
- }
92
- , done
93
- )
94
- .start();
95
- });
96
-
97
- gulp.task('default', [
98
- 'lint', 'test', 'build'
99
- ]);
@@ -1,111 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6
- <meta charset="UTF-8" />
7
-
8
- <title>rmodal.js</title>
9
-
10
- <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
11
- <link rel="stylesheet" href="http://raw.github.com/daneden/animate.css/master/animate.css" type="text/css" />
12
-
13
- <link rel="stylesheet" href="dist/rmodal.css" type="text/css" />
14
- <script type="text/javascript" src="dist/rmodal.js"></script>
15
-
16
- <script type="text/javascript">
17
- window.onload = function() {
18
- var modal = new RModal(document.getElementById('modal'), {
19
- beforeOpen: function(next) {
20
- console.log('beforeOpen');
21
- next();
22
- }
23
- , afterOpen: function() {
24
- console.log('opened');
25
- }
26
-
27
- , beforeClose: function(next) {
28
- console.log('beforeClose');
29
- next();
30
- }
31
- , afterClose: function() {
32
- console.log('closed');
33
- }
34
-
35
- // , content: 'Abracadabra'
36
-
37
- // , bodyClass: 'modal-open'
38
- // , dialogClass: 'modal-dialog-lg'
39
- // , dialogOpenClass: 'fadeIn'
40
- // , dialogCloseClass: 'fadeOut'
41
-
42
- // , focus: true
43
- // , focusElements: ['input.form-control', 'textarea', 'button.btn-primary']
44
-
45
- // , escapeClose: true
46
- });
47
-
48
- document.addEventListener('keydown', function(ev) {
49
- modal.keydown(ev);
50
- }, false);
51
-
52
- document.getElementById('showModal').addEventListener("click", function(ev) {
53
- ev.preventDefault();
54
- modal.open();
55
- }, false);
56
-
57
- window.modal = modal;
58
- }
59
- </script>
60
- </head>
61
- <body>
62
-
63
- <div id="modal" class="modal">
64
- <div class="modal-dialog animated">
65
- <div class="modal-content">
66
- <form class="form-horizontal" method="get">
67
- <div class="modal-header">
68
- <strong>Yep, I'm a dialog...</strong>
69
- </div>
70
-
71
- <div class="modal-body">
72
- <div class="form-group">
73
- <label for="dummyText" class="control-label col-xs-4">Dummy text</label>
74
- <div class="input-group col-xs-7">
75
- <input type="text" name="dummyText" id="dummyText" class="form-control" />
76
- </div>
77
- </div>
78
- </div>
79
-
80
- <div class="modal-footer">
81
- <button class="btn btn-default" type="button" onclick="modal.close();">Cancel</button>
82
- <button class="btn btn-primary" type="submit" onclick="modal.close();">Save</button>
83
- </div>
84
- </form>
85
- </div>
86
- </div>
87
- </div>
88
-
89
- <div class="container-fluid">
90
- <div class="row">
91
- <div class="col-lg-12">
92
- <h3>rmodal.js</h3>
93
- <ul>
94
- <li>A simple modal dialog</li>
95
- <li>Plain JavaScript only - no dependencies</li>
96
- <li>All browsers supported (IE9+)</li>
97
- <li>Less than 1.2 KB when gzipped and minified</li>
98
- <li>Bootstrap and Animate.css friendly</li>
99
- <li>Fully unit tested</li>
100
- <li>Supports CommonJS, AMD or globals</li>
101
- </ul>
102
- </div>
103
- </div>
104
- <div class="row">
105
- <div class="col-lg-12">
106
- <a href="#" id="showModal" class="btn btn-success">Show modal</a>
107
- </div>
108
- </div>
109
- </div>
110
- </body>
111
- </html>
@@ -1,193 +0,0 @@
1
- var is = function (obj, type) { return Object.prototype.toString.call(obj).toLowerCase() === ("[object " + type + "]"); };
2
-
3
- var addClass = function (el, cls) {
4
- var arr = el.className
5
- .split(/\s+/)
6
- .filter(function (c) { return !!c && c == cls; });
7
-
8
- if (!arr.length) {
9
- el.className += " " + cls;
10
- }
11
- };
12
-
13
- var removeClass = function (el, cls) {
14
- el.className = el.className
15
- .split(/\s+/)
16
- .filter(function (c) { return !!c && c != cls; })
17
- .join(' ');
18
- };
19
-
20
- var RModal = function RModal(el, opts) {
21
- var this$1 = this;
22
-
23
- this.opened = false;
24
-
25
- this.opts = {
26
- bodyClass: 'modal-open'
27
- , dialogClass: 'modal-dialog'
28
- , dialogOpenClass: 'bounceInDown'
29
- , dialogCloseClass: 'bounceOutUp'
30
-
31
- , focus: true
32
- , focusElements: [
33
- 'a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])'
34
- , 'button:not([disabled])', 'select:not([disabled])'
35
- , 'textarea:not([disabled])', 'iframe', 'object', 'embed'
36
- , '*[tabindex]', '*[contenteditable]'
37
- ]
38
-
39
- , escapeClose: true
40
- , content: null
41
- , closeTimeout: 500
42
- };
43
-
44
- Object.keys(opts || {})
45
- .forEach(function (key) {
46
- /* istanbul ignore else */
47
- if (opts[key] !== undefined) {
48
- this$1.opts[key] = opts[key];
49
- }
50
- });
51
-
52
- this.overlay = el;
53
- this.dialog = el.querySelector(("." + (this.opts.dialogClass)));
54
-
55
- if (this.opts.content) {
56
- this.content(this.opts.content);
57
- }
58
- };
59
-
60
- RModal.prototype.open = function open (content) {
61
- var this$1 = this;
62
-
63
- this.content(content);
64
-
65
- if (!is(this.opts.beforeOpen, 'function')) {
66
- return this._doOpen();
67
- }
68
-
69
- this.opts.beforeOpen(function () {
70
- this$1._doOpen();
71
- });
72
- };
73
-
74
- RModal.prototype._doOpen = function _doOpen () {
75
- addClass(document.body, this.opts.bodyClass);
76
-
77
- removeClass(this.dialog, this.opts.dialogCloseClass);
78
- addClass(this.dialog, this.opts.dialogOpenClass);
79
-
80
- this.overlay.style.display = 'block';
81
-
82
- if (this.opts.focus) {
83
- this.focusOutElement = document.activeElement;
84
- this.focus();
85
- }
86
-
87
- if (is(this.opts.afterOpen, 'function')) {
88
- this.opts.afterOpen();
89
- }
90
- this.opened = true;
91
- };
92
-
93
- RModal.prototype.close = function close () {
94
- var this$1 = this;
95
-
96
- if (!is(this.opts.beforeClose, 'function')) {
97
- return this._doClose();
98
- }
99
-
100
- this.opts.beforeClose(function () {
101
- this$1._doClose();
102
- });
103
- };
104
-
105
- RModal.prototype._doClose = function _doClose () {
106
- var this$1 = this;
107
-
108
- removeClass(this.dialog, this.opts.dialogOpenClass);
109
- addClass(this.dialog, this.opts.dialogCloseClass);
110
-
111
- removeClass(document.body, this.opts.bodyClass);
112
-
113
- if (this.opts.focus) {
114
- this.focus(this.focusOutElement);
115
- }
116
-
117
- if (is(this.opts.afterClose, 'function')) {
118
- this.opts.afterClose();
119
- }
120
-
121
- this.opened = false;
122
- setTimeout(function () {
123
- this$1.overlay.style.display = 'none';
124
- }, this.opts.closeTimeout);
125
- };
126
-
127
- RModal.prototype.content = function content (html) {
128
- if (html === undefined) {
129
- return this.dialog.innerHTML;
130
- }
131
-
132
- this.dialog.innerHTML = html;
133
- };
134
-
135
- RModal.prototype.elements = function elements (selector, fallback) {
136
- fallback = fallback || window.navigator.appVersion.indexOf('MSIE 9.0') > -1;
137
- selector = is(selector, 'array') ? selector.join(',') : selector;
138
-
139
- return [].filter.call(
140
- this.dialog.querySelectorAll(selector)
141
- , function (element) {
142
- if (fallback) {
143
- var style = window.getComputedStyle(element);
144
- return style.display !== 'none' && style.visibility !== 'hidden';
145
- }
146
-
147
- return element.offsetParent !== null;
148
- }
149
- );
150
- };
151
-
152
- RModal.prototype.focus = function focus (el) {
153
- el = el || this.elements(this.opts.focusElements)[0] || this.dialog.firstChild;
154
-
155
- if (el && is(el.focus, 'function')) {
156
- el.focus();
157
- }
158
- };
159
-
160
- RModal.prototype.keydown = function keydown (ev) {
161
- if (this.opts.escapeClose && ev.which == 27) {
162
- this.close();
163
- }
164
-
165
- function stopEvent() {
166
- ev.preventDefault();
167
- ev.stopPropagation();
168
- }
169
-
170
- if (this.opened && ev.which == 9 && this.dialog.contains(ev.target)) {
171
- var elements = this.elements(this.opts.focusElements)
172
- , first = elements[0]
173
- , last = elements[elements.length - 1];
174
-
175
- if (first == last) {
176
- stopEvent();
177
- }
178
- else if (ev.target == first && ev.shiftKey) {
179
- stopEvent();
180
- last.focus();
181
- }
182
- else if (ev.target == last && !ev.shiftKey) {
183
- stopEvent();
184
- first.focus();
185
- }
186
- }
187
- };
188
-
189
- RModal.prototype.version = '1.0.24';
190
- RModal.version = '1.0.24';
191
-
192
- module.exports = RModal;
193
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.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 , closeTimeout: 500\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 }, this.opts.closeTimeout);\n }\n\n content(html) {\n if (html === undefined) {\n return this.dialog.innerHTML;\n }\n\n this.dialog.innerHTML = html;\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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","preExistingComment":"//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi9Vc2Vycy93aXNoL0Rlc2t0b3Avcm1vZGFsLmpzL3NyYy9ybW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5sZXQgaXMgPSAob2JqLCB0eXBlKSA9PiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKS50b0xvd2VyQ2FzZSgpID09PSBgW29iamVjdCAke3R5cGV9XWA7XG5cbmxldCBhZGRDbGFzcyA9IChlbCwgY2xzKSA9PiB7XG4gICAgbGV0IGFyciA9IGVsLmNsYXNzTmFtZVxuICAgIC5zcGxpdCgvXFxzKy8pXG4gICAgLmZpbHRlcigoYykgPT4gISFjICYmIGMgPT0gY2xzKTtcblxuICAgIGlmICghYXJyLmxlbmd0aCkge1xuICAgICAgICBlbC5jbGFzc05hbWUgKz0gYCAke2Nsc31gO1xuICAgIH1cbn07XG5cbmxldCByZW1vdmVDbGFzcyA9IChlbCwgY2xzKSA9PiB7XG4gICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lXG4gICAgLnNwbGl0KC9cXHMrLylcbiAgICAuZmlsdGVyKChjKSA9PiAhIWMgJiYgYyAhPSBjbHMpXG4gICAgLmpvaW4oJyAnKTtcbn07XG5cbmNsYXNzIFJNb2RhbCB7XG4gICAgY29uc3RydWN0b3IoZWwsIG9wdHMpIHtcbiAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLm9wdHMgPSB7XG4gICAgICAgICAgICBib2R5Q2xhc3M6ICdtb2RhbC1vcGVuJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbGFzczogJ21vZGFsLWRpYWxvZydcbiAgICAgICAgICAgICwgZGlhbG9nT3BlbkNsYXNzOiAnYm91bmNlSW5Eb3duJ1xuICAgICAgICAgICAgLCBkaWFsb2dDbG9zZUNsYXNzOiAnYm91bmNlT3V0VXAnXG5cbiAgICAgICAgICAgICwgZm9jdXM6IHRydWVcbiAgICAgICAgICAgICwgZm9jdXNFbGVtZW50czogW1xuICAgICAgICAgICAgICAgICdhW2hyZWZdJywgJ2FyZWFbaHJlZl0nLCAnaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdHlwZT1oaWRkZW5dKSdcbiAgICAgICAgICAgICAgICAsICdidXR0b246bm90KFtkaXNhYmxlZF0pJywgJ3NlbGVjdDpub3QoW2Rpc2FibGVkXSknXG4gICAgICAgICAgICAgICAgLCAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pJywgJ2lmcmFtZScsICdvYmplY3QnLCAnZW1iZWQnXG4gICAgICAgICAgICAgICAgLCAnKlt0YWJpbmRleF0nLCAnKltjb250ZW50ZWRpdGFibGVdJ1xuICAgICAgICAgICAgXVxuXG4gICAgICAgICAgICAsIGVzY2FwZUNsb3NlOiB0cnVlXG4gICAgICAgICAgICAsIGNvbnRlbnQ6IG51bGxcbiAgICAgICAgICAgICwgY2xvc2VUaW1lb3V0OiA1MDBcbiAgICAgICAgfTtcblxuICAgICAgICBPYmplY3Qua2V5cyhvcHRzIHx8IHt9KVxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICAgaWYgKG9wdHNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRzW2tleV0gPSBvcHRzW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheSA9IGVsO1xuICAgICAgICB0aGlzLmRpYWxvZyA9IGVsLnF1ZXJ5U2VsZWN0b3IoYC4ke3RoaXMub3B0cy5kaWFsb2dDbGFzc31gKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCh0aGlzLm9wdHMuY29udGVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvcGVuKGNvbnRlbnQpIHtcbiAgICAgICAgdGhpcy5jb250ZW50KGNvbnRlbnQpO1xuXG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZU9wZW4sICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZG9PcGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdHMuYmVmb3JlT3BlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb09wZW4oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX2RvT3BlbigpIHtcbiAgICAgICAgYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dDbG9zZUNsYXNzKTtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5kaWFsb2csIHRoaXMub3B0cy5kaWFsb2dPcGVuQ2xhc3MpO1xuXG4gICAgICAgIHRoaXMub3ZlcmxheS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcblxuICAgICAgICBpZiAodGhpcy5vcHRzLmZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT3V0RWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyT3BlbiwgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIHRoaXMub3B0cy5hZnRlck9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW5lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY2xvc2UoKSB7XG4gICAgICAgIGlmICghaXModGhpcy5vcHRzLmJlZm9yZUNsb3NlLCAnZnVuY3Rpb24nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RvQ2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3B0cy5iZWZvcmVDbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kb0Nsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9kb0Nsb3NlKCkge1xuICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmRpYWxvZywgdGhpcy5vcHRzLmRpYWxvZ09wZW5DbGFzcyk7XG4gICAgICAgIGFkZENsYXNzKHRoaXMuZGlhbG9nLCB0aGlzLm9wdHMuZGlhbG9nQ2xvc2VDbGFzcyk7XG5cbiAgICAgICAgcmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5vcHRzLmJvZHlDbGFzcyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy5mb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cyh0aGlzLmZvY3VzT3V0RWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXModGhpcy5vcHRzLmFmdGVyQ2xvc2UsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICB0aGlzLm9wdHMuYWZ0ZXJDbG9zZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm92ZXJsYXkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSwgdGhpcy5vcHRzLmNsb3NlVGltZW91dCk7XG4gICAgfVxuXG4gICAgY29udGVudChodG1sKSB7XG4gICAgICAgIGlmIChodG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRpYWxvZy5pbm5lckhUTUw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZy5pbm5lckhUTUwgPSBodG1sO1xuICAgIH1cblxuICAgIGVsZW1lbnRzKHNlbGVjdG9yLCBmYWxsYmFjaykge1xuICAgICAgICBmYWxsYmFjayA9IGZhbGxiYWNrIHx8IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdNU0lFIDkuMCcpID4gLTE7XG4gICAgICAgIHNlbGVjdG9yID0gaXMoc2VsZWN0b3IsICdhcnJheScpID8gc2VsZWN0b3Iuam9pbignLCcpIDogc2VsZWN0b3I7XG5cbiAgICAgICAgcmV0dXJuIFtdLmZpbHRlci5jYWxsKFxuICAgICAgICAgICAgdGhpcy5kaWFsb2cucXVlcnlTZWxlY3RvckFsbChzZWxlY3RvcilcbiAgICAgICAgICAgICwgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiYgc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbic7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQub2Zmc2V0UGFyZW50ICE9PSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvY3VzKGVsKSB7XG4gICAgICAgIGVsID0gZWwgfHwgdGhpcy5lbGVtZW50cyh0aGlzLm9wdHMuZm9jdXNFbGVtZW50cylbMF0gfHwgdGhpcy5kaWFsb2cuZmlyc3RDaGlsZDtcblxuICAgICAgICBpZiAoZWwgJiYgaXMoZWwuZm9jdXMsICdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICBlbC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAga2V5ZG93bihldikge1xuICAgICAgICBpZiAodGhpcy5vcHRzLmVzY2FwZUNsb3NlICYmIGV2LndoaWNoID09IDI3KSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzdG9wRXZlbnQoKSB7XG4gICAgICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5vcGVuZWQgJiYgZXYud2hpY2ggPT0gOSAmJiB0aGlzLmRpYWxvZy5jb250YWlucyhldi50YXJnZXQpKSB7XG4gICAgICAgICAgICB2YXIgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzKHRoaXMub3B0cy5mb2N1c0VsZW1lbnRzKVxuICAgICAgICAgICAgICAgICwgZmlyc3QgPSBlbGVtZW50c1swXVxuICAgICAgICAgICAgICAgICwgbGFzdCA9IGVsZW1lbnRzW2VsZW1lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAoZmlyc3QgPT0gbGFzdCkge1xuICAgICAgICAgICAgICAgIHN0b3BFdmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZXYudGFyZ2V0ID09IGZpcnN0ICYmIGV2LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgbGFzdC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZXYudGFyZ2V0ID09IGxhc3QgJiYgIWV2LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgc3RvcEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgZmlyc3QuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuUk1vZGFsLnByb3RvdHlwZS52ZXJzaW9uID0gJ0BAVkVSU0lPTkBAJztcblJNb2RhbC52ZXJzaW9uID0gJ0BAVkVSU0lPTkBAJztcblxuZXhwb3J0IGRlZmF1bHQgUk1vZGFsOyJdLCJuYW1lcyI6WyJsZXQiXSwibWFwcGluZ3MiOiJBQUVBQSxJQUFJLEVBQUUsR0FBRyxVQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQUssVUFBUyxHQUFFLElBQUksTUFBRSxDQUFDLEdBQUEsQ0FBQzs7QUFFakdBLElBQUksUUFBUSxHQUFHLFVBQUMsRUFBRSxFQUFFLEdBQUcs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"}
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = function(config) {
4
- let opts = {
5
- basePath: ''
6
-
7
- , frameworks: [
8
- 'mocha'
9
- , 'chai'
10
- , 'sinon'
11
- , 'commonjs'
12
- ]
13
-
14
- , files: [
15
- 'test/*.test.js'
16
- , './index.js'
17
- ]
18
-
19
- , exclude: []
20
-
21
- , preprocessors: {
22
- 'test/*.test.js': [ 'commonjs' ]
23
- , './index.js': [
24
- 'coverage'
25
- , 'commonjs'
26
- ]
27
- }
28
-
29
- , reporters: [
30
- 'coverage'
31
- , 'progress'
32
- ]
33
-
34
- , coverageReporter: {
35
- type: 'html'
36
- , dir: 'coverage/'
37
- }
38
-
39
- , browsers: [ 'PhantomJS' ]
40
- , phantomjsLauncher: {
41
- exitOnResourceError: true
42
- }
43
- , captureTimeout: 60000
44
-
45
- , port: 9876
46
- , autoWatch: true
47
- , singleRun: false
48
-
49
- , colors: true
50
- , logLevel: config.LOG_INFO
51
-
52
- , client: {
53
- captureConsole: true
54
- , mocha: {
55
- bail: true
56
- }
57
- }
58
- };
59
-
60
- if (process.env.TRAVIS) {
61
- opts.coverageReporter.type = 'lcov';
62
- opts.reporters.push('coveralls');
63
- }
64
-
65
- config.set(opts);
66
- };