diff --git a/build/codex-editor.js b/build/codex-editor.js index 941fc1c2..83e7aa82 100644 --- a/build/codex-editor.js +++ b/build/codex-editor.js @@ -98,7 +98,7 @@ /*!*********************************************************************************!*\ !*** ./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js ***! \*********************************************************************************/ -/*! no static exports found */function(e,o){!function(o){"use strict";var t,n=Object.prototype,s=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",l=r.asyncIterator||"@@asyncIterator",u=r.toStringTag||"@@toStringTag",d="object"==typeof e,c=o.regeneratorRuntime;if(c)d&&(e.exports=c);else{(c=o.regeneratorRuntime=d?e.exports:{}).wrap=g;var a="suspendedStart",f="suspendedYield",m="executing",p="completed",h={},j={};j[i]=function(){return this};var _=Object.getPrototypeOf,v=_&&_(_(I([])));v&&v!==n&&s.call(v,i)&&(j=v);var b=w.prototype=k.prototype=Object.create(j);x.prototype=b.constructor=w,w.constructor=x,w[u]=x.displayName="GeneratorFunction",c.isGeneratorFunction=function(e){var o="function"==typeof e&&e.constructor;return!!o&&(o===x||"GeneratorFunction"===(o.displayName||o.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,u in e||(e[u]="GeneratorFunction")),e.prototype=Object.create(b),e},c.awrap=function(e){return{__await:e}},S(E.prototype),E.prototype[l]=function(){return this},c.AsyncIterator=E,c.async=function(e,o,t,n){var s=new E(g(e,o,t,n));return c.isGeneratorFunction(o)?s:s.next().then(function(e){return e.done?e.value:s.next()})},S(b),b[u]="Generator",b[i]=function(){return this},b.toString=function(){return"[object Generator]"},c.keys=function(e){var o=[];for(var t in e)o.push(t);return o.reverse(),function t(){for(;o.length;){var n=o.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},c.values=I,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(B),!e)for(var o in this)"t"===o.charAt(0)&&s.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var o=this;function n(n,s){return l.type="throw",l.arg=e,o.next=n,s&&(o.method="next",o.arg=t),!!s}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=a;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===a)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function S(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function E(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},function(e){return o("throw",e,r,i)})}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=c;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===c)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},function(e){return o("throw",e,r,i)})}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=v.bind(null,t,u,!1),s=v.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=a(e,o);return c(t,o),function(e){for(var s=[],r=0;r=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=b.bind(null,t,u,!1),s=b.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=c(e,o);return a(t,o),function(e){for(var s=[],r=0;r2?arguments[2]:void 0,c=Math.min((void 0===d?i:s(d,i))-u,i-l),a=1;for(u0;)u in t?t[l]=t[u]:delete t[l],l+=a,u+=a;return t}},"./node_modules/core-js/modules/_array-fill.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),s=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),r=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=[].copyWithin||function(e,o){var t=n(this),i=r(t.length),l=s(e,i),u=s(o,i),d=arguments.length>2?arguments[2]:void 0,a=Math.min((void 0===d?i:s(d,i))-u,i-l),c=1;for(u0;)u in t?t[l]=t[u]:delete t[l],l+=c,u+=c;return t}},"./node_modules/core-js/modules/_array-fill.js": /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_array-fill.js ***! \*****************************************************/ @@ -191,15 +191,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/_array-includes.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),s=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),r=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js");e.exports=function(e){return function(o,t,i){var l,u=n(o),d=s(u.length),c=r(i,d);if(e&&t!=t){for(;d>c;)if((l=u[c++])!=l)return!0}else for(;d>c;c++)if((e||c in u)&&u[c]===t)return e||c||0;return!e&&-1}}},"./node_modules/core-js/modules/_array-methods.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),s=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),r=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js");e.exports=function(e){return function(o,t,i){var l,u=n(o),d=s(u.length),a=r(i,d);if(e&&t!=t){for(;d>a;)if((l=u[a++])!=l)return!0}else for(;d>a;a++)if((e||a in u)&&u[a]===t)return e||a||0;return!e&&-1}}},"./node_modules/core-js/modules/_array-methods.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_array-methods.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),l=t(/*! ./_array-species-create */"./node_modules/core-js/modules/_array-species-create.js");e.exports=function(e,o){var t=1==e,u=2==e,d=3==e,c=4==e,a=6==e,f=5==e||a,m=o||l;return function(o,l,p){for(var h,j,_=r(o),v=s(_),b=n(l,p,3),g=i(v.length),y=0,k=t?m(o,g):u?m(o,0):void 0;g>y;y++)if((f||y in v)&&(j=b(h=v[y],y,_),e))if(t)k[y]=j;else if(j)switch(e){case 3:return!0;case 5:return h;case 6:return y;case 2:k.push(h)}else if(c)return!1;return a?-1:d||c?c:k}}},"./node_modules/core-js/modules/_array-reduce.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),l=t(/*! ./_array-species-create */"./node_modules/core-js/modules/_array-species-create.js");e.exports=function(e,o){var t=1==e,u=2==e,d=3==e,a=4==e,c=6==e,f=5==e||c,m=o||l;return function(o,l,p){for(var h,j,_=r(o),b=s(_),v=n(l,p,3),g=i(b.length),y=0,k=t?m(o,g):u?m(o,0):void 0;g>y;y++)if((f||y in b)&&(j=v(h=b[y],y,_),e))if(t)k[y]=j;else if(j)switch(e){case 3:return!0;case 5:return h;case 6:return y;case 2:k.push(h)}else if(a)return!1;return c?-1:d||a?a:k}}},"./node_modules/core-js/modules/_array-reduce.js": /*!*******************************************************!*\ !*** ./node_modules/core-js/modules/_array-reduce.js ***! \*******************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),s=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),r=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=function(e,o,t,l,u){n(o);var d=s(e),c=r(d),a=i(d.length),f=u?a-1:0,m=u?-1:1;if(t<2)for(;;){if(f in c){l=c[f],f+=m;break}if(f+=m,u?f<0:a<=f)throw TypeError("Reduce of empty array with no initial value")}for(;u?f>=0:a>f;f+=m)f in c&&(l=o(l,c[f],f,d));return l}},"./node_modules/core-js/modules/_array-species-constructor.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),s=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),r=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=function(e,o,t,l,u){n(o);var d=s(e),a=r(d),c=i(d.length),f=u?c-1:0,m=u?-1:1;if(t<2)for(;;){if(f in a){l=a[f],f+=m;break}if(f+=m,u?f<0:c<=f)throw TypeError("Reduce of empty array with no initial value")}for(;u?f>=0:c>f;f+=m)f in a&&(l=o(l,a[f],f,d));return l}},"./node_modules/core-js/modules/_array-species-constructor.js": /*!********************************************************************!*\ !*** ./node_modules/core-js/modules/_array-species-constructor.js ***! \********************************************************************/ @@ -223,15 +223,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!************************************************************!*\ !*** ./node_modules/core-js/modules/_collection-strong.js ***! \************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_iter-define */"./node_modules/core-js/modules/_iter-define.js"),c=t(/*! ./_iter-step */"./node_modules/core-js/modules/_iter-step.js"),a=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),f=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),m=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").fastKey,p=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),h=f?"_s":"size",j=function(e,o){var t,n=m(o);if("F"!==n)return e._i[n];for(t=e._f;t;t=t.n)if(t.k==o)return t};e.exports={getConstructor:function(e,o,t,d){var c=e(function(e,n){l(e,c,o,"_i"),e._t=o,e._i=s(null),e._f=void 0,e._l=void 0,e[h]=0,void 0!=n&&u(n,t,e[d],e)});return r(c.prototype,{clear:function(){for(var e=p(this,o),t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[h]=0},delete:function(e){var t=p(this,o),n=j(t,e);if(n){var s=n.n,r=n.p;delete t._i[n.i],n.r=!0,r&&(r.n=s),s&&(s.p=r),t._f==n&&(t._f=s),t._l==n&&(t._l=r),t[h]--}return!!n},forEach:function(e){p(this,o);for(var t,n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!j(p(this,o),e)}}),f&&n(c.prototype,"size",{get:function(){return p(this,o)[h]}}),c},def:function(e,o,t){var n,s,r=j(e,o);return r?r.v=t:(e._l=r={i:s=m(o,!0),k:o,v:t,p:n=e._l,n:void 0,r:!1},e._f||(e._f=r),n&&(n.n=r),e[h]++,"F"!==s&&(e._i[s]=r)),e},getEntry:j,setStrong:function(e,o,t){d(e,o,function(e,t){this._t=p(e,o),this._k=t,this._l=void 0},function(){for(var e=this._k,o=this._l;o&&o.r;)o=o.p;return this._t&&(this._l=o=o?o.n:this._t._f)?c(0,"keys"==e?o.k:"values"==e?o.v:[o.k,o.v]):(this._t=void 0,c(1))},t?"entries":"values",!t,!0),a(o)}}},"./node_modules/core-js/modules/_collection-weak.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_iter-define */"./node_modules/core-js/modules/_iter-define.js"),a=t(/*! ./_iter-step */"./node_modules/core-js/modules/_iter-step.js"),c=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),f=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),m=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").fastKey,p=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),h=f?"_s":"size",j=function(e,o){var t,n=m(o);if("F"!==n)return e._i[n];for(t=e._f;t;t=t.n)if(t.k==o)return t};e.exports={getConstructor:function(e,o,t,d){var a=e(function(e,n){l(e,a,o,"_i"),e._t=o,e._i=s(null),e._f=void 0,e._l=void 0,e[h]=0,void 0!=n&&u(n,t,e[d],e)});return r(a.prototype,{clear:function(){for(var e=p(this,o),t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[h]=0},delete:function(e){var t=p(this,o),n=j(t,e);if(n){var s=n.n,r=n.p;delete t._i[n.i],n.r=!0,r&&(r.n=s),s&&(s.p=r),t._f==n&&(t._f=s),t._l==n&&(t._l=r),t[h]--}return!!n},forEach:function(e){p(this,o);for(var t,n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!j(p(this,o),e)}}),f&&n(a.prototype,"size",{get:function(){return p(this,o)[h]}}),a},def:function(e,o,t){var n,s,r=j(e,o);return r?r.v=t:(e._l=r={i:s=m(o,!0),k:o,v:t,p:n=e._l,n:void 0,r:!1},e._f||(e._f=r),n&&(n.n=r),e[h]++,"F"!==s&&(e._i[s]=r)),e},getEntry:j,setStrong:function(e,o,t){d(e,o,function(e,t){this._t=p(e,o),this._k=t,this._l=void 0},function(){for(var e=this._k,o=this._l;o&&o.r;)o=o.p;return this._t&&(this._l=o=o?o.n:this._t._f)?a(0,"keys"==e?o.k:"values"==e?o.v:[o.k,o.v]):(this._t=void 0,a(1))},t?"entries":"values",!t,!0),c(o)}}},"./node_modules/core-js/modules/_collection-weak.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_collection-weak.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),s=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").getWeak,r=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),i=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),c=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),a=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=d(5),m=d(6),p=0,h=function(e){return e._l||(e._l=new j)},j=function(){this.a=[]},_=function(e,o){return f(e.a,function(e){return e[0]===o})};j.prototype={get:function(e){var o=_(this,e);if(o)return o[1]},has:function(e){return!!_(this,e)},set:function(e,o){var t=_(this,e);t?t[1]=o:this.a.push([e,o])},delete:function(e){var o=m(this.a,function(o){return o[0]===e});return~o&&this.a.splice(o,1),!!~o}},e.exports={getConstructor:function(e,o,t,r){var d=e(function(e,n){l(e,d,o,"_i"),e._t=o,e._i=p++,e._l=void 0,void 0!=n&&u(n,t,e[r],e)});return n(d.prototype,{delete:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(a(this,o)).delete(e):t&&c(t,this._i)&&delete t[this._i]},has:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(a(this,o)).has(e):t&&c(t,this._i)}}),d},def:function(e,o,t){var n=s(r(o),!0);return!0===n?h(e).set(o,t):n[e._i]=t,e},ufstore:h}},"./node_modules/core-js/modules/_collection.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),s=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").getWeak,r=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),i=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),a=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),c=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=d(5),m=d(6),p=0,h=function(e){return e._l||(e._l=new j)},j=function(){this.a=[]},_=function(e,o){return f(e.a,function(e){return e[0]===o})};j.prototype={get:function(e){var o=_(this,e);if(o)return o[1]},has:function(e){return!!_(this,e)},set:function(e,o){var t=_(this,e);t?t[1]=o:this.a.push([e,o])},delete:function(e){var o=m(this.a,function(o){return o[0]===e});return~o&&this.a.splice(o,1),!!~o}},e.exports={getConstructor:function(e,o,t,r){var d=e(function(e,n){l(e,d,o,"_i"),e._t=o,e._i=p++,e._l=void 0,void 0!=n&&u(n,t,e[r],e)});return n(d.prototype,{delete:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(c(this,o)).delete(e):t&&a(t,this._i)&&delete t[this._i]},has:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(c(this,o)).has(e):t&&a(t,this._i)}}),d},def:function(e,o,t){var n=s(r(o),!0);return!0===n?h(e).set(o,t):n[e._i]=t,e},ufstore:h}},"./node_modules/core-js/modules/_collection.js": /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_collection.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),l=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),c=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),a=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),f=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),m=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),p=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js");e.exports=function(e,o,t,h,j,_){var v=n[e],b=v,g=j?"set":"add",y=b&&b.prototype,k={},x=function(e){var o=y[e];r(y,e,"delete"==e?function(e){return!(_&&!c(e))&&o.call(this,0===e?0:e)}:"has"==e?function(e){return!(_&&!c(e))&&o.call(this,0===e?0:e)}:"get"==e?function(e){return _&&!c(e)?void 0:o.call(this,0===e?0:e)}:"add"==e?function(e){return o.call(this,0===e?0:e),this}:function(e,t){return o.call(this,0===e?0:e,t),this})};if("function"==typeof b&&(_||y.forEach&&!a(function(){(new b).entries().next()}))){var w=new b,S=w[g](_?{}:-0,1)!=w,E=a(function(){w.has(1)}),C=f(function(e){new b(e)}),T=!_&&a(function(){for(var e=new b,o=5;o--;)e[g](o,o);return!e.has(-0)});C||((b=o(function(o,t){d(o,b,e);var n=p(new v,o,b);return void 0!=t&&u(t,j,n[g],n),n})).prototype=y,y.constructor=b),(E||T)&&(x("delete"),x("has"),j&&x("get")),(T||S)&&x(g),_&&y.clear&&delete y.clear}else b=h.getConstructor(o,e,j,g),i(b.prototype,t),l.NEED=!0;return m(b,e),k[e]=b,s(s.G+s.W+s.F*(b!=v),k),_||h.setStrong(b,e,j),b}},"./node_modules/core-js/modules/_core.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),l=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),a=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),c=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),f=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),m=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),p=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js");e.exports=function(e,o,t,h,j,_){var b=n[e],v=b,g=j?"set":"add",y=v&&v.prototype,k={},x=function(e){var o=y[e];r(y,e,"delete"==e?function(e){return!(_&&!a(e))&&o.call(this,0===e?0:e)}:"has"==e?function(e){return!(_&&!a(e))&&o.call(this,0===e?0:e)}:"get"==e?function(e){return _&&!a(e)?void 0:o.call(this,0===e?0:e)}:"add"==e?function(e){return o.call(this,0===e?0:e),this}:function(e,t){return o.call(this,0===e?0:e,t),this})};if("function"==typeof v&&(_||y.forEach&&!c(function(){(new v).entries().next()}))){var w=new v,E=w[g](_?{}:-0,1)!=w,S=c(function(){w.has(1)}),C=f(function(e){new v(e)}),T=!_&&c(function(){for(var e=new v,o=5;o--;)e[g](o,o);return!e.has(-0)});C||((v=o(function(o,t){d(o,v,e);var n=p(new b,o,v);return void 0!=t&&u(t,j,n[g],n),n})).prototype=y,y.constructor=v),(S||T)&&(x("delete"),x("has"),j&&x("get")),(T||E)&&x(g),_&&y.clear&&delete y.clear}else v=h.getConstructor(o,e,j,g),i(v.prototype,t),l.NEED=!0;return m(v,e),k[e]=v,s(s.G+s.W+s.F*(v!=b),k),_||h.setStrong(v,e,j),v}},"./node_modules/core-js/modules/_core.js": /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_core.js ***! \***********************************************/ @@ -275,7 +275,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_export.js ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_core */"./node_modules/core-js/modules/_core.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),l=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),u=function(e,o,t){var d,c,a,f,m=e&u.F,p=e&u.G,h=e&u.S,j=e&u.P,_=e&u.B,v=p?n:h?n[o]||(n[o]={}):(n[o]||{}).prototype,b=p?s:s[o]||(s[o]={}),g=b.prototype||(b.prototype={});for(d in p&&(t=o),t)a=((c=!m&&v&&void 0!==v[d])?v:t)[d],f=_&&c?l(a,n):j&&"function"==typeof a?l(Function.call,a):a,v&&i(v,d,a,e&u.U),b[d]!=a&&r(b,d,f),j&&g[d]!=a&&(g[d]=a)};n.core=s,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},"./node_modules/core-js/modules/_fails-is-regexp.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_core */"./node_modules/core-js/modules/_core.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),l=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),u=function(e,o,t){var d,a,c,f,m=e&u.F,p=e&u.G,h=e&u.S,j=e&u.P,_=e&u.B,b=p?n:h?n[o]||(n[o]={}):(n[o]||{}).prototype,v=p?s:s[o]||(s[o]={}),g=v.prototype||(v.prototype={});for(d in p&&(t=o),t)c=((a=!m&&b&&void 0!==b[d])?b:t)[d],f=_&&a?l(c,n):j&&"function"==typeof c?l(Function.call,c):c,b&&i(b,d,c,e&u.U),v[d]!=c&&r(v,d,f),j&&g[d]!=c&&(g[d]=c)};n.core=s,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},"./node_modules/core-js/modules/_fails-is-regexp.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***! \**********************************************************/ @@ -287,7 +287,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_fix-re-wks.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),s=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),l=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js");e.exports=function(e,o,t){var u=l(e),d=t(i,u,""[e]),c=d[0],a=d[1];r(function(){var o={};return o[u]=function(){return 7},7!=""[e](o)})&&(s(String.prototype,e,c),n(RegExp.prototype,u,2==o?function(e,o){return a.call(e,this,o)}:function(e){return a.call(e,this)}))}},"./node_modules/core-js/modules/_flags.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),s=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),l=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js");e.exports=function(e,o,t){var u=l(e),d=t(i,u,""[e]),a=d[0],c=d[1];r(function(){var o={};return o[u]=function(){return 7},7!=""[e](o)})&&(s(String.prototype,e,a),n(RegExp.prototype,u,2==o?function(e,o){return c.call(e,this,o)}:function(e){return c.call(e,this)}))}},"./node_modules/core-js/modules/_flags.js": /*!************************************************!*\ !*** ./node_modules/core-js/modules/_flags.js ***! \************************************************/ @@ -295,7 +295,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_for-of.js ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),r=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),d={},c={};(o=e.exports=function(e,o,t,a,f){var m,p,h,j,_=f?function(){return e}:u(e),v=n(t,a,o?2:1),b=0;if("function"!=typeof _)throw TypeError(e+" is not iterable!");if(r(_)){for(m=l(e.length);m>b;b++)if((j=o?v(i(p=e[b])[0],p[1]):v(e[b]))===d||j===c)return j}else for(h=_.call(e);!(p=h.next()).done;)if((j=s(h,v,p.value,o))===d||j===c)return j}).BREAK=d,o.RETURN=c},"./node_modules/core-js/modules/_global.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),r=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),d={},a={};(o=e.exports=function(e,o,t,c,f){var m,p,h,j,_=f?function(){return e}:u(e),b=n(t,c,o?2:1),v=0;if("function"!=typeof _)throw TypeError(e+" is not iterable!");if(r(_)){for(m=l(e.length);m>v;v++)if((j=o?b(i(p=e[v])[0],p[1]):b(e[v]))===d||j===a)return j}else for(h=_.call(e);!(p=h.next()).done;)if((j=s(h,b,p.value,o))===d||j===a)return j}).BREAK=d,o.RETURN=a},"./node_modules/core-js/modules/_global.js": /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_global.js ***! \*************************************************/ @@ -359,7 +359,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_iter-define.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),l=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),u=t(/*! ./_iter-create */"./node_modules/core-js/modules/_iter-create.js"),d=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),c=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),a=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("iterator"),f=!([].keys&&"next"in[].keys()),m=function(){return this};e.exports=function(e,o,t,p,h,j,_){u(t,o,p);var v,b,g,y=function(e){if(!f&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new t(this,e)}}return function(){return new t(this,e)}},k=o+" Iterator",x="values"==h,w=!1,S=e.prototype,E=S[a]||S["@@iterator"]||h&&S[h],C=E||y(h),T=h?x?y("entries"):C:void 0,B="Array"==o&&S.entries||E;if(B&&(g=c(B.call(new e)))!==Object.prototype&&g.next&&(d(g,k,!0),n||"function"==typeof g[a]||i(g,a,m)),x&&E&&"values"!==E.name&&(w=!0,C=function(){return E.call(this)}),n&&!_||!f&&!w&&S[a]||i(S,a,C),l[o]=C,l[k]=m,h)if(v={values:x?C:y("values"),keys:j?C:y("keys"),entries:T},_)for(b in v)b in S||r(S,b,v[b]);else s(s.P+s.F*(f||w),o,v);return v}},"./node_modules/core-js/modules/_iter-detect.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),l=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),u=t(/*! ./_iter-create */"./node_modules/core-js/modules/_iter-create.js"),d=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),a=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),c=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("iterator"),f=!([].keys&&"next"in[].keys()),m=function(){return this};e.exports=function(e,o,t,p,h,j,_){u(t,o,p);var b,v,g,y=function(e){if(!f&&e in E)return E[e];switch(e){case"keys":case"values":return function(){return new t(this,e)}}return function(){return new t(this,e)}},k=o+" Iterator",x="values"==h,w=!1,E=e.prototype,S=E[c]||E["@@iterator"]||h&&E[h],C=S||y(h),T=h?x?y("entries"):C:void 0,B="Array"==o&&E.entries||S;if(B&&(g=a(B.call(new e)))!==Object.prototype&&g.next&&(d(g,k,!0),n||"function"==typeof g[c]||i(g,c,m)),x&&S&&"values"!==S.name&&(w=!0,C=function(){return S.call(this)}),n&&!_||!f&&!w&&E[c]||i(E,c,C),l[o]=C,l[k]=m,h)if(b={values:x?C:y("values"),keys:j?C:y("keys"),entries:T},_)for(v in b)v in E||r(E,v,b[v]);else s(s.P+s.F*(f||w),o,b);return b}},"./node_modules/core-js/modules/_iter-detect.js": /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_iter-detect.js ***! \******************************************************/ @@ -395,11 +395,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_meta.js ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js")("meta"),s=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,l=0,u=Object.isExtensible||function(){return!0},d=!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return u(Object.preventExtensions({}))}),c=function(e){i(e,n,{value:{i:"O"+ ++l,w:{}}})},a=e.exports={KEY:n,NEED:!1,fastKey:function(e,o){if(!s(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,n)){if(!u(e))return"F";if(!o)return"E";c(e)}return e[n].i},getWeak:function(e,o){if(!r(e,n)){if(!u(e))return!0;if(!o)return!1;c(e)}return e[n].w},onFreeze:function(e){return d&&a.NEED&&u(e)&&!r(e,n)&&c(e),e}}},"./node_modules/core-js/modules/_microtask.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js")("meta"),s=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,l=0,u=Object.isExtensible||function(){return!0},d=!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return u(Object.preventExtensions({}))}),a=function(e){i(e,n,{value:{i:"O"+ ++l,w:{}}})},c=e.exports={KEY:n,NEED:!1,fastKey:function(e,o){if(!s(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,n)){if(!u(e))return"F";if(!o)return"E";a(e)}return e[n].i},getWeak:function(e,o){if(!r(e,n)){if(!u(e))return!0;if(!o)return!1;a(e)}return e[n].w},onFreeze:function(e){return d&&c.NEED&&u(e)&&!r(e,n)&&a(e),e}}},"./node_modules/core-js/modules/_microtask.js": /*!****************************************************!*\ !*** ./node_modules/core-js/modules/_microtask.js ***! \****************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,r=n.MutationObserver||n.WebKitMutationObserver,i=n.process,l=n.Promise,u="process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(i);e.exports=function(){var e,o,t,d=function(){var n,s;for(u&&(n=i.domain)&&n.exit();e;){s=e.fn,e=e.next;try{s()}catch(n){throw e?t():o=void 0,n}}o=void 0,n&&n.enter()};if(u)t=function(){i.nextTick(d)};else if(!r||n.navigator&&n.navigator.standalone)if(l&&l.resolve){var c=l.resolve(void 0);t=function(){c.then(d)}}else t=function(){s.call(n,d)};else{var a=!0,f=document.createTextNode("");new r(d).observe(f,{characterData:!0}),t=function(){f.data=a=!a}}return function(n){var s={fn:n,next:void 0};o&&(o.next=s),e||(e=s,t()),o=s}}},"./node_modules/core-js/modules/_new-promise-capability.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,r=n.MutationObserver||n.WebKitMutationObserver,i=n.process,l=n.Promise,u="process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(i);e.exports=function(){var e,o,t,d=function(){var n,s;for(u&&(n=i.domain)&&n.exit();e;){s=e.fn,e=e.next;try{s()}catch(n){throw e?t():o=void 0,n}}o=void 0,n&&n.enter()};if(u)t=function(){i.nextTick(d)};else if(!r||n.navigator&&n.navigator.standalone)if(l&&l.resolve){var a=l.resolve(void 0);t=function(){a.then(d)}}else t=function(){s.call(n,d)};else{var c=!0,f=document.createTextNode("");new r(d).observe(f,{characterData:!0}),t=function(){f.data=c=!c}}return function(n){var s={fn:n,next:void 0};o&&(o.next=s),e||(e=s,t()),o=s}}},"./node_modules/core-js/modules/_new-promise-capability.js": /*!*****************************************************************!*\ !*** ./node_modules/core-js/modules/_new-promise-capability.js ***! \*****************************************************************/ @@ -407,7 +407,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_object-assign.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js"),i=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),l=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),u=Object.assign;e.exports=!u||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){var e={},o={},t=Symbol(),n="abcdefghijklmnopqrst";return e[t]=7,n.split("").forEach(function(e){o[e]=e}),7!=u({},e)[t]||Object.keys(u({},o)).join("")!=n})?function(e,o){for(var t=i(e),u=arguments.length,d=1,c=s.f,a=r.f;u>d;)for(var f,m=l(arguments[d++]),p=c?n(m).concat(c(m)):n(m),h=p.length,j=0;h>j;)a.call(m,f=p[j++])&&(t[f]=m[f]);return t}:u},"./node_modules/core-js/modules/_object-create.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js"),i=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),l=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),u=Object.assign;e.exports=!u||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){var e={},o={},t=Symbol(),n="abcdefghijklmnopqrst";return e[t]=7,n.split("").forEach(function(e){o[e]=e}),7!=u({},e)[t]||Object.keys(u({},o)).join("")!=n})?function(e,o){for(var t=i(e),u=arguments.length,d=1,a=s.f,c=r.f;u>d;)for(var f,m=l(arguments[d++]),p=a?n(m).concat(a(m)):n(m),h=p.length,j=0;h>j;)c.call(m,f=p[j++])&&(t[f]=m[f]);return t}:u},"./node_modules/core-js/modules/_object-create.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_object-create.js ***! \********************************************************/ @@ -459,7 +459,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_object-to-array.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f;e.exports=function(e){return function(o){for(var t,i=s(o),l=n(i),u=l.length,d=0,c=[];u>d;)r.call(i,t=l[d++])&&c.push(e?[t,i[t]]:i[t]);return c}}},"./node_modules/core-js/modules/_own-keys.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f;e.exports=function(e){return function(o){for(var t,i=s(o),l=n(i),u=l.length,d=0,a=[];u>d;)r.call(i,t=l[d++])&&a.push(e?[t,i[t]]:i[t]);return a}}},"./node_modules/core-js/modules/_own-keys.js": /*!***************************************************!*\ !*** ./node_modules/core-js/modules/_own-keys.js ***! \***************************************************/ @@ -539,7 +539,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_string-pad.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),s=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),r=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js");e.exports=function(e,o,t,i){var l=String(r(e)),u=l.length,d=void 0===t?" ":String(t),c=n(o);if(c<=u||""==d)return l;var a=c-u,f=s.call(d,Math.ceil(a/d.length));return f.length>a&&(f=f.slice(0,a)),i?f+l:l+f}},"./node_modules/core-js/modules/_string-repeat.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),s=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),r=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js");e.exports=function(e,o,t,i){var l=String(r(e)),u=l.length,d=void 0===t?" ":String(t),a=n(o);if(a<=u||""==d)return l;var c=a-u,f=s.call(d,Math.ceil(c/d.length));return f.length>c&&(f=f.slice(0,c)),i?f+l:l+f}},"./node_modules/core-js/modules/_string-repeat.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_string-repeat.js ***! \********************************************************/ @@ -547,7 +547,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_string-trim.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_string-ws */"./node_modules/core-js/modules/_string-ws.js"),l="["+i+"]",u=RegExp("^"+l+l+"*"),d=RegExp(l+l+"*$"),c=function(e,o,t){var s={},l=r(function(){return!!i[e]()||"​…"!="​…"[e]()}),u=s[e]=l?o(a):i[e];t&&(s[t]=u),n(n.P+n.F*l,"String",s)},a=c.trim=function(e,o){return e=String(s(e)),1&o&&(e=e.replace(u,"")),2&o&&(e=e.replace(d,"")),e};e.exports=c},"./node_modules/core-js/modules/_string-ws.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_string-ws */"./node_modules/core-js/modules/_string-ws.js"),l="["+i+"]",u=RegExp("^"+l+l+"*"),d=RegExp(l+l+"*$"),a=function(e,o,t){var s={},l=r(function(){return!!i[e]()||"​…"!="​…"[e]()}),u=s[e]=l?o(c):i[e];t&&(s[t]=u),n(n.P+n.F*l,"String",s)},c=a.trim=function(e,o){return e=String(s(e)),1&o&&(e=e.replace(u,"")),2&o&&(e=e.replace(d,"")),e};e.exports=a},"./node_modules/core-js/modules/_string-ws.js": /*!****************************************************!*\ !*** ./node_modules/core-js/modules/_string-ws.js ***! \****************************************************/ @@ -555,7 +555,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_task.js ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r,i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_invoke */"./node_modules/core-js/modules/_invoke.js"),u=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),d=t(/*! ./_dom-create */"./node_modules/core-js/modules/_dom-create.js"),c=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),a=c.process,f=c.setImmediate,m=c.clearImmediate,p=c.MessageChannel,h=c.Dispatch,j=0,_={},v=function(){var e=+this;if(_.hasOwnProperty(e)){var o=_[e];delete _[e],o()}},b=function(e){v.call(e.data)};f&&m||(f=function(e){for(var o=[],t=1;arguments.length>t;)o.push(arguments[t++]);return _[++j]=function(){l("function"==typeof e?e:Function(e),o)},n(j),j},m=function(e){delete _[e]},"process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(a)?n=function(e){a.nextTick(i(v,e,1))}:h&&h.now?n=function(e){h.now(i(v,e,1))}:p?(r=(s=new p).port2,s.port1.onmessage=b,n=i(r.postMessage,r,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(n=function(e){c.postMessage(e+"","*")},c.addEventListener("message",b,!1)):n="onreadystatechange"in d("script")?function(e){u.appendChild(d("script")).onreadystatechange=function(){u.removeChild(this),v.call(e)}}:function(e){setTimeout(i(v,e,1),0)}),e.exports={set:f,clear:m}},"./node_modules/core-js/modules/_to-absolute-index.js": +/*! no static exports found */function(e,o,t){var n,s,r,i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_invoke */"./node_modules/core-js/modules/_invoke.js"),u=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),d=t(/*! ./_dom-create */"./node_modules/core-js/modules/_dom-create.js"),a=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),c=a.process,f=a.setImmediate,m=a.clearImmediate,p=a.MessageChannel,h=a.Dispatch,j=0,_={},b=function(){var e=+this;if(_.hasOwnProperty(e)){var o=_[e];delete _[e],o()}},v=function(e){b.call(e.data)};f&&m||(f=function(e){for(var o=[],t=1;arguments.length>t;)o.push(arguments[t++]);return _[++j]=function(){l("function"==typeof e?e:Function(e),o)},n(j),j},m=function(e){delete _[e]},"process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(c)?n=function(e){c.nextTick(i(b,e,1))}:h&&h.now?n=function(e){h.now(i(b,e,1))}:p?(r=(s=new p).port2,s.port1.onmessage=v,n=i(r.postMessage,r,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(n=function(e){a.postMessage(e+"","*")},a.addEventListener("message",v,!1)):n="onreadystatechange"in d("script")?function(e){u.appendChild(d("script")).onreadystatechange=function(){u.removeChild(this),b.call(e)}}:function(e){setTimeout(i(b,e,1),0)}),e.exports={set:f,clear:m}},"./node_modules/core-js/modules/_to-absolute-index.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/_to-absolute-index.js ***! \************************************************************/ @@ -587,15 +587,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_typed-array.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){"use strict";if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")){var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),u=t(/*! ./_typed-buffer */"./node_modules/core-js/modules/_typed-buffer.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),c=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),a=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),f=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),m=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),p=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),h=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),j=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),_=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),v=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),b=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),g=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),y=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),k=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),x=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),w=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),S=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),E=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,C=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),T=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),B=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),O=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),I=t(/*! ./_array-includes */"./node_modules/core-js/modules/_array-includes.js"),N=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),A=t(/*! ./es6.array.iterator */"./node_modules/core-js/modules/es6.array.iterator.js"),M=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),L=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),P=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),R=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),D=t(/*! ./_array-copy-within */"./node_modules/core-js/modules/_array-copy-within.js"),F=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),U=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),H=F.f,z=U.f,G=s.RangeError,q=s.TypeError,W=s.Uint8Array,V=Array.prototype,K=u.ArrayBuffer,Y=u.DataView,X=O(0),J=O(2),$=O(3),Z=O(4),Q=O(5),ee=O(6),oe=I(!0),te=I(!1),ne=A.values,se=A.keys,re=A.entries,ie=V.lastIndexOf,le=V.reduce,ue=V.reduceRight,de=V.join,ce=V.sort,ae=V.slice,fe=V.toString,me=V.toLocaleString,pe=B("iterator"),he=B("toStringTag"),je=T("typed_constructor"),_e=T("def_constructor"),ve=l.CONSTR,be=l.TYPED,ge=l.VIEW,ye=O(1,function(e,o){return Ee(N(e,e[_e]),o)}),ke=r(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),xe=!!W&&!!W.prototype.set&&r(function(){new W(1).set({})}),we=function(e,o){var t=p(e);if(t<0||t%o)throw G("Wrong offset!");return t},Se=function(e){if(y(e)&&be in e)return e;throw q(e+" is not a typed array!")},Ee=function(e,o){if(!(y(e)&&je in e))throw q("It is not a typed array constructor!");return new e(o)},Ce=function(e,o){return Te(N(e,e[_e]),o)},Te=function(e,o){for(var t=0,n=o.length,s=Ee(e,n);n>t;)s[t]=o[t++];return s},Be=function(e,o,t){H(e,o,{get:function(){return this._d[t]}})},Oe=function(e){var o,t,n,s,r,i,l=k(e),u=arguments.length,c=u>1?arguments[1]:void 0,a=void 0!==c,f=C(l);if(void 0!=f&&!x(f)){for(i=f.call(l),n=[],o=0;!(r=i.next()).done;o++)n.push(r.value);l=n}for(a&&u>2&&(c=d(c,arguments[2],2)),o=0,t=h(l.length),s=Ee(this,t);t>o;o++)s[o]=a?c(l[o],o):l[o];return s},Ie=function(){for(var e=0,o=arguments.length,t=Ee(this,o);o>e;)t[e]=arguments[e++];return t},Ne=!!W&&r(function(){me.call(new W(1))}),Ae=function(){return me.apply(Ne?ae.call(Se(this)):Se(this),arguments)},Me={copyWithin:function(e,o){return D.call(Se(this),e,o,arguments.length>2?arguments[2]:void 0)},every:function(e){return Z(Se(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return R.apply(Se(this),arguments)},filter:function(e){return Ce(this,J(Se(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return Q(Se(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(Se(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){X(Se(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return te(Se(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return oe(Se(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return de.apply(Se(this),arguments)},lastIndexOf:function(e){return ie.apply(Se(this),arguments)},map:function(e){return ye(Se(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return le.apply(Se(this),arguments)},reduceRight:function(e){return ue.apply(Se(this),arguments)},reverse:function(){for(var e,o=Se(this).length,t=Math.floor(o/2),n=0;n1?arguments[1]:void 0)},sort:function(e){return ce.call(Se(this),e)},subarray:function(e,o){var t=Se(this),n=t.length,s=_(e,n);return new(N(t,t[_e]))(t.buffer,t.byteOffset+s*t.BYTES_PER_ELEMENT,h((void 0===o?n:_(o,n))-s))}},Le=function(e,o){return Ce(this,ae.call(Se(this),e,o))},Pe=function(e){Se(this);var o=we(arguments[1],1),t=this.length,n=k(e),s=h(n.length),r=0;if(s+o>t)throw G("Wrong length!");for(;r255?255:255&n),s.v[m](t*o+s.o,n,ke)}(this,t,e)},enumerable:!0})};b?(p=t(function(e,t,n,s){c(e,p,d,"_d");var r,i,l,u,a=0,m=0;if(y(t)){if(!(t instanceof K||"ArrayBuffer"==(u=g(t))||"SharedArrayBuffer"==u))return be in t?Te(p,t):Oe.call(p,t);r=t,m=we(n,o);var _=t.byteLength;if(void 0===s){if(_%o)throw G("Wrong length!");if((i=_-m)<0)throw G("Wrong length!")}else if((i=h(s)*o)+m>_)throw G("Wrong length!");l=i/o}else l=j(t),r=new K(i=l*o);for(f(e,"_d",{b:r,o:m,l:i,e:l,v:new Y(r)});at;)s[t]=o[t++];return s},Be=function(e,o,t){z(e,o,{get:function(){return this._d[t]}})},Oe=function(e){var o,t,n,s,r,i,l=k(e),u=arguments.length,a=u>1?arguments[1]:void 0,c=void 0!==a,f=C(l);if(void 0!=f&&!x(f)){for(i=f.call(l),n=[],o=0;!(r=i.next()).done;o++)n.push(r.value);l=n}for(c&&u>2&&(a=d(a,arguments[2],2)),o=0,t=h(l.length),s=Se(this,t);t>o;o++)s[o]=c?a(l[o],o):l[o];return s},Ie=function(){for(var e=0,o=arguments.length,t=Se(this,o);o>e;)t[e]=arguments[e++];return t},Ne=!!W&&r(function(){me.call(new W(1))}),Ae=function(){return me.apply(Ne?ce.call(Ee(this)):Ee(this),arguments)},Me={copyWithin:function(e,o){return D.call(Ee(this),e,o,arguments.length>2?arguments[2]:void 0)},every:function(e){return Z(Ee(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return R.apply(Ee(this),arguments)},filter:function(e){return Ce(this,J(Ee(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return Q(Ee(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(Ee(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){X(Ee(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return te(Ee(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return oe(Ee(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return de.apply(Ee(this),arguments)},lastIndexOf:function(e){return ie.apply(Ee(this),arguments)},map:function(e){return ye(Ee(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return le.apply(Ee(this),arguments)},reduceRight:function(e){return ue.apply(Ee(this),arguments)},reverse:function(){for(var e,o=Ee(this).length,t=Math.floor(o/2),n=0;n1?arguments[1]:void 0)},sort:function(e){return ae.call(Ee(this),e)},subarray:function(e,o){var t=Ee(this),n=t.length,s=_(e,n);return new(N(t,t[_e]))(t.buffer,t.byteOffset+s*t.BYTES_PER_ELEMENT,h((void 0===o?n:_(o,n))-s))}},Le=function(e,o){return Ce(this,ce.call(Ee(this),e,o))},Pe=function(e){Ee(this);var o=we(arguments[1],1),t=this.length,n=k(e),s=h(n.length),r=0;if(s+o>t)throw G("Wrong length!");for(;r255?255:255&n),s.v[m](t*o+s.o,n,ke)}(this,t,e)},enumerable:!0})};v?(p=t(function(e,t,n,s){a(e,p,d,"_d");var r,i,l,u,c=0,m=0;if(y(t)){if(!(t instanceof K||"ArrayBuffer"==(u=g(t))||"SharedArrayBuffer"==u))return ve in t?Te(p,t):Oe.call(p,t);r=t,m=we(n,o);var _=t.byteLength;if(void 0===s){if(_%o)throw G("Wrong length!");if((i=_-m)<0)throw G("Wrong length!")}else if((i=h(s)*o)+m>_)throw G("Wrong length!");l=i/o}else l=j(t),r=new K(i=l*o);for(f(e,"_d",{b:r,o:m,l:i,e:l,v:new Y(r)});c>1,c=23===o?C(2,-24)-C(2,-77):0,a=0,f=e<0||0===e&&1/e<0?1:0;for((e=E(e))!=e||e===w?(s=e!=e?1:0,n=u):(n=T(B(e)/O),e*(r=C(2,-n))<1&&(n--,r*=2),(e+=n+d>=1?c/r:c*C(2,1-d))*r>=2&&(n++,r/=2),n+d>=u?(s=0,n=u):n+d>=1?(s=(e*r-1)*C(2,o),n+=d):(s=e*C(2,d-1)*C(2,o),n=0));o>=8;i[a++]=255&s,s/=256,o-=8);for(n=n<0;i[a++]=255&n,n/=256,l-=8);return i[--a]|=128*f,i}function L(e,o,t){var n,s=8*t-o-1,r=(1<>1,l=s-7,u=t-1,d=e[u--],c=127&d;for(d>>=7;l>0;c=256*c+e[u],u--,l-=8);for(n=c&(1<<-l)-1,c>>=-l,l+=o;l>0;n=256*n+e[u],u--,l-=8);if(0===c)c=1-i;else{if(c===r)return n?NaN:d?-w:w;n+=C(2,o),c-=i}return(d?-1:1)*n*C(2,c-o)}function P(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function D(e){return[255&e,e>>8&255]}function F(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return M(e,52,8)}function H(e){return M(e,23,4)}function z(e,o,t){h(e[v],o,{get:function(){return this[t]}})}function G(e,o,t,n){var s=m(+t);if(s+o>e[N])throw x(b);var r=e[I]._b,i=s+e[A],l=r.slice(i,i+o);return n?l:l.reverse()}function q(e,o,t,n,s,r){var i=m(+t);if(i+o>e[N])throw x(b);for(var l=e[I]._b,u=i+e[A],d=n(+s),c=0;cY;)(W=K[Y++])in g||l(g,W,S[W]);r||(V.constructor=g)}var X=new y(new g(2)),J=y[v].setInt8;X.setInt8(0,2147483648),X.setInt8(1,2147483649),!X.getInt8(0)&&X.getInt8(1)||u(y[v],{setInt8:function(e,o){J.call(this,e,o<<24>>24)},setUint8:function(e,o){J.call(this,e,o<<24>>24)}},!0)}else g=function(e){c(this,g,"ArrayBuffer");var o=m(e);this._b=j.call(new Array(o),0),this[N]=o},y=function(e,o,t){c(this,y,"DataView"),c(e,g,"DataView");var n=e[N],s=a(o);if(s<0||s>n)throw x("Wrong offset!");if(s+(t=void 0===t?n-s:f(t))>n)throw x("Wrong length!");this[I]=e,this[A]=s,this[N]=t},s&&(z(g,"byteLength","_l"),z(y,"buffer","_b"),z(y,"byteLength","_l"),z(y,"byteOffset","_o")),u(y[v],{getInt8:function(e){return G(this,1,e)[0]<<24>>24},getUint8:function(e){return G(this,1,e)[0]},getInt16:function(e){var o=G(this,2,e,arguments[1]);return(o[1]<<8|o[0])<<16>>16},getUint16:function(e){var o=G(this,2,e,arguments[1]);return o[1]<<8|o[0]},getInt32:function(e){return P(G(this,4,e,arguments[1]))},getUint32:function(e){return P(G(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return L(G(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return L(G(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){q(this,1,e,R,o)},setUint8:function(e,o){q(this,1,e,R,o)},setInt16:function(e,o){q(this,2,e,D,o,arguments[2])},setUint16:function(e,o){q(this,2,e,D,o,arguments[2])},setInt32:function(e,o){q(this,4,e,F,o,arguments[2])},setUint32:function(e,o){q(this,4,e,F,o,arguments[2])},setFloat32:function(e,o){q(this,4,e,H,o,arguments[2])},setFloat64:function(e,o){q(this,8,e,U,o,arguments[2])}});_(g,"ArrayBuffer"),_(y,"DataView"),l(y[v],i.VIEW,!0),o.ArrayBuffer=g,o.DataView=y},"./node_modules/core-js/modules/_typed.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),r=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),i=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),l=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),u=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),a=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),c=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),f=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),m=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),p=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,h=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,j=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),_=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),b="prototype",v="Wrong index!",g=n.ArrayBuffer,y=n.DataView,k=n.Math,x=n.RangeError,w=n.Infinity,E=g,S=k.abs,C=k.pow,T=k.floor,B=k.log,O=k.LN2,I=s?"_b":"buffer",N=s?"_l":"byteLength",A=s?"_o":"byteOffset";function M(e,o,t){var n,s,r,i=new Array(t),l=8*t-o-1,u=(1<>1,a=23===o?C(2,-24)-C(2,-77):0,c=0,f=e<0||0===e&&1/e<0?1:0;for((e=S(e))!=e||e===w?(s=e!=e?1:0,n=u):(n=T(B(e)/O),e*(r=C(2,-n))<1&&(n--,r*=2),(e+=n+d>=1?a/r:a*C(2,1-d))*r>=2&&(n++,r/=2),n+d>=u?(s=0,n=u):n+d>=1?(s=(e*r-1)*C(2,o),n+=d):(s=e*C(2,d-1)*C(2,o),n=0));o>=8;i[c++]=255&s,s/=256,o-=8);for(n=n<0;i[c++]=255&n,n/=256,l-=8);return i[--c]|=128*f,i}function L(e,o,t){var n,s=8*t-o-1,r=(1<>1,l=s-7,u=t-1,d=e[u--],a=127&d;for(d>>=7;l>0;a=256*a+e[u],u--,l-=8);for(n=a&(1<<-l)-1,a>>=-l,l+=o;l>0;n=256*n+e[u],u--,l-=8);if(0===a)a=1-i;else{if(a===r)return n?NaN:d?-w:w;n+=C(2,o),a-=i}return(d?-1:1)*n*C(2,a-o)}function P(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function D(e){return[255&e,e>>8&255]}function F(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return M(e,52,8)}function z(e){return M(e,23,4)}function H(e,o,t){h(e[b],o,{get:function(){return this[t]}})}function G(e,o,t,n){var s=m(+t);if(s+o>e[N])throw x(v);var r=e[I]._b,i=s+e[A],l=r.slice(i,i+o);return n?l:l.reverse()}function q(e,o,t,n,s,r){var i=m(+t);if(i+o>e[N])throw x(v);for(var l=e[I]._b,u=i+e[A],d=n(+s),a=0;aY;)(W=K[Y++])in g||l(g,W,E[W]);r||(V.constructor=g)}var X=new y(new g(2)),J=y[b].setInt8;X.setInt8(0,2147483648),X.setInt8(1,2147483649),!X.getInt8(0)&&X.getInt8(1)||u(y[b],{setInt8:function(e,o){J.call(this,e,o<<24>>24)},setUint8:function(e,o){J.call(this,e,o<<24>>24)}},!0)}else g=function(e){a(this,g,"ArrayBuffer");var o=m(e);this._b=j.call(new Array(o),0),this[N]=o},y=function(e,o,t){a(this,y,"DataView"),a(e,g,"DataView");var n=e[N],s=c(o);if(s<0||s>n)throw x("Wrong offset!");if(s+(t=void 0===t?n-s:f(t))>n)throw x("Wrong length!");this[I]=e,this[A]=s,this[N]=t},s&&(H(g,"byteLength","_l"),H(y,"buffer","_b"),H(y,"byteLength","_l"),H(y,"byteOffset","_o")),u(y[b],{getInt8:function(e){return G(this,1,e)[0]<<24>>24},getUint8:function(e){return G(this,1,e)[0]},getInt16:function(e){var o=G(this,2,e,arguments[1]);return(o[1]<<8|o[0])<<16>>16},getUint16:function(e){var o=G(this,2,e,arguments[1]);return o[1]<<8|o[0]},getInt32:function(e){return P(G(this,4,e,arguments[1]))},getUint32:function(e){return P(G(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return L(G(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return L(G(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){q(this,1,e,R,o)},setUint8:function(e,o){q(this,1,e,R,o)},setInt16:function(e,o){q(this,2,e,D,o,arguments[2])},setUint16:function(e,o){q(this,2,e,D,o,arguments[2])},setInt32:function(e,o){q(this,4,e,F,o,arguments[2])},setUint32:function(e,o){q(this,4,e,F,o,arguments[2])},setFloat32:function(e,o){q(this,4,e,z,o,arguments[2])},setFloat64:function(e,o){q(this,8,e,U,o,arguments[2])}});_(g,"ArrayBuffer"),_(y,"DataView"),l(y[b],i.VIEW,!0),o.ArrayBuffer=g,o.DataView=y},"./node_modules/core-js/modules/_typed.js": /*!************************************************!*\ !*** ./node_modules/core-js/modules/_typed.js ***! \************************************************/ -/*! no static exports found */function(e,o,t){for(var n,s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),l=i("typed_array"),u=i("view"),d=!(!s.ArrayBuffer||!s.DataView),c=d,a=0,f="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");a<9;)(n=s[f[a++]])?(r(n.prototype,l,!0),r(n.prototype,u,!0)):c=!1;e.exports={ABV:d,CONSTR:c,TYPED:l,VIEW:u}},"./node_modules/core-js/modules/_uid.js": +/*! no static exports found */function(e,o,t){for(var n,s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),l=i("typed_array"),u=i("view"),d=!(!s.ArrayBuffer||!s.DataView),a=d,c=0,f="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");c<9;)(n=s[f[c++]])?(r(n.prototype,l,!0),r(n.prototype,u,!0)):a=!1;e.exports={ABV:d,CONSTR:a,TYPED:l,VIEW:u}},"./node_modules/core-js/modules/_uid.js": /*!**********************************************!*\ !*** ./node_modules/core-js/modules/_uid.js ***! \**********************************************/ @@ -655,7 +655,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!********************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.from.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),l=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js"),c=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js");s(s.S+s.F*!t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){Array.from(e)}),"Array",{from:function(e){var o,t,s,a,f=r(e),m="function"==typeof this?this:Array,p=arguments.length,h=p>1?arguments[1]:void 0,j=void 0!==h,_=0,v=c(f);if(j&&(h=n(h,p>2?arguments[2]:void 0,2)),void 0==v||m==Array&&l(v))for(t=new m(o=u(f.length));o>_;_++)d(t,_,j?h(f[_],_):f[_]);else for(a=v.call(f),t=new m;!(s=a.next()).done;_++)d(t,_,j?i(a,h,[s.value,_],!0):s.value);return t.length=_,t}})},"./node_modules/core-js/modules/es6.array.index-of.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),l=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js"),a=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js");s(s.S+s.F*!t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){Array.from(e)}),"Array",{from:function(e){var o,t,s,c,f=r(e),m="function"==typeof this?this:Array,p=arguments.length,h=p>1?arguments[1]:void 0,j=void 0!==h,_=0,b=a(f);if(j&&(h=n(h,p>2?arguments[2]:void 0,2)),void 0==b||m==Array&&l(b))for(t=new m(o=u(f.length));o>_;_++)d(t,_,j?h(f[_],_):f[_]);else for(c=b.call(f),t=new m;!(s=c.next()).done;_++)d(t,_,j?i(c,h,[s.value,_],!0):s.value);return t.length=_,t}})},"./node_modules/core-js/modules/es6.array.index-of.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.index-of.js ***! \************************************************************/ @@ -695,7 +695,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.slice.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),r=t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js"),i=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=[].slice;n(n.P+n.F*t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){s&&u.call(s)}),"Array",{slice:function(e,o){var t=l(this.length),n=r(this);if(o=void 0===o?t:o,"Array"==n)return u.call(this,e,o);for(var s=i(e,t),d=i(o,t),c=l(d-s),a=new Array(c),f=0;f2){var t,n,s,r=(o=_?o.trim():f(o,3)).charCodeAt(0);if(43===r||45===r){if(88===(t=o.charCodeAt(2))||120===t)return NaN}else if(48===r){switch(o.charCodeAt(1)){case 66:case 98:n=2,s=49;break;case 79:case 111:n=8,s=55;break;default:return+o}for(var i,u=o.slice(2),d=0,c=u.length;ds)return NaN;return parseInt(u,n)}}return+o};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(e){var o=arguments.length<1?0:e,t=this;return t instanceof m&&(j?u(function(){h.valueOf.call(t)}):"Number"!=r(t))?i(new p(v(o)),t,m):v(o)};for(var b,g=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")?d(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),y=0;g.length>y;y++)s(p,b=g[y])&&!s(m,b)&&a(m,b,c(p,b));m.prototype=h,h.constructor=m,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"Number",m)}},"./node_modules/core-js/modules/es6.number.epsilon.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js"),i=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),l=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,a=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js").f,c=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,f=t(/*! ./_string-trim */"./node_modules/core-js/modules/_string-trim.js").trim,m=n.Number,p=m,h=m.prototype,j="Number"==r(t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js")(h)),_="trim"in String.prototype,b=function(e){var o=l(e,!1);if("string"==typeof o&&o.length>2){var t,n,s,r=(o=_?o.trim():f(o,3)).charCodeAt(0);if(43===r||45===r){if(88===(t=o.charCodeAt(2))||120===t)return NaN}else if(48===r){switch(o.charCodeAt(1)){case 66:case 98:n=2,s=49;break;case 79:case 111:n=8,s=55;break;default:return+o}for(var i,u=o.slice(2),d=0,a=u.length;ds)return NaN;return parseInt(u,n)}}return+o};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(e){var o=arguments.length<1?0:e,t=this;return t instanceof m&&(j?u(function(){h.valueOf.call(t)}):"Number"!=r(t))?i(new p(b(o)),t,m):b(o)};for(var v,g=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")?d(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),y=0;g.length>y;y++)s(p,v=g[y])&&!s(m,v)&&c(m,v,a(p,v));m.prototype=h,h.constructor=m,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"Number",m)}},"./node_modules/core-js/modules/es6.number.epsilon.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.epsilon.js ***! \************************************************************/ @@ -855,7 +855,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.to-fixed.js ***! \*************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),r=t(/*! ./_a-number-value */"./node_modules/core-js/modules/_a-number-value.js"),i=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),l=1..toFixed,u=Math.floor,d=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",a=function(e,o){for(var t=-1,n=o;++t<6;)n+=e*d[t],d[t]=n%1e7,n=u(n/1e7)},f=function(e){for(var o=6,t=0;--o>=0;)t+=d[o],d[o]=u(t/e),t=t%e*1e7},m=function(){for(var e=6,o="";--e>=0;)if(""!==o||0===e||0!==d[e]){var t=String(d[e]);o=""===o?t:o+i.call("0",7-t.length)+t}return o},p=function(e,o,t){return 0===o?t:o%2==1?p(e,o-1,t*e):p(e*e,o/2,t)};n(n.P+n.F*(!!l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){l.call({})})),"Number",{toFixed:function(e){var o,t,n,l,u=r(this,c),d=s(e),h="",j="0";if(d<0||d>20)throw RangeError(c);if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h="-",u=-u),u>1e-21)if(t=(o=function(e){for(var o=0,t=e;t>=4096;)o+=12,t/=4096;for(;t>=2;)o+=1,t/=2;return o}(u*p(2,69,1))-69)<0?u*p(2,-o,1):u/p(2,o,1),t*=4503599627370496,(o=52-o)>0){for(a(0,t),n=d;n>=7;)a(1e7,0),n-=7;for(a(p(10,n,1),0),n=o-1;n>=23;)f(1<<23),n-=23;f(1<0?h+((l=j.length)<=d?"0."+i.call("0",d-l)+j:j.slice(0,l-d)+"."+j.slice(l-d)):h+j}})},"./node_modules/core-js/modules/es6.number.to-precision.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),r=t(/*! ./_a-number-value */"./node_modules/core-js/modules/_a-number-value.js"),i=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),l=1..toFixed,u=Math.floor,d=[0,0,0,0,0,0],a="Number.toFixed: incorrect invocation!",c=function(e,o){for(var t=-1,n=o;++t<6;)n+=e*d[t],d[t]=n%1e7,n=u(n/1e7)},f=function(e){for(var o=6,t=0;--o>=0;)t+=d[o],d[o]=u(t/e),t=t%e*1e7},m=function(){for(var e=6,o="";--e>=0;)if(""!==o||0===e||0!==d[e]){var t=String(d[e]);o=""===o?t:o+i.call("0",7-t.length)+t}return o},p=function(e,o,t){return 0===o?t:o%2==1?p(e,o-1,t*e):p(e*e,o/2,t)};n(n.P+n.F*(!!l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){l.call({})})),"Number",{toFixed:function(e){var o,t,n,l,u=r(this,a),d=s(e),h="",j="0";if(d<0||d>20)throw RangeError(a);if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h="-",u=-u),u>1e-21)if(t=(o=function(e){for(var o=0,t=e;t>=4096;)o+=12,t/=4096;for(;t>=2;)o+=1,t/=2;return o}(u*p(2,69,1))-69)<0?u*p(2,-o,1):u/p(2,o,1),t*=4503599627370496,(o=52-o)>0){for(c(0,t),n=d;n>=7;)c(1e7,0),n-=7;for(c(p(10,n,1),0),n=o-1;n>=23;)f(1<<23),n-=23;f(1<0?h+((l=j.length)<=d?"0."+i.call("0",d-l)+j:j.slice(0,l-d)+"."+j.slice(l-d)):h+j}})},"./node_modules/core-js/modules/es6.number.to-precision.js": /*!*****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.to-precision.js ***! \*****************************************************************/ @@ -939,7 +939,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/es6.promise.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n,s,r,i,l=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),u=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),c=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),a=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),f=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),m=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),p=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),h=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),j=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),_=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,v=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),b=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),g=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),y=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=u.TypeError,w=u.process,S=w&&w.versions,E=S&&S.v8||"",C=u.Promise,T="process"==c(w),B=function(){},O=s=b.f,I=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(B,B)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(B)instanceof o&&0!==E.indexOf("6.6")&&-1===y.indexOf("Chrome/66")}catch(e){}}(),N=function(e){var o;return!(!f(e)||"function"!=typeof(o=e.then))&&o},A=function(e,o){if(!e._n){e._n=!0;var t=e._c;v(function(){for(var n=e._v,s=1==e._s,r=0,i=function(o){var t,r,i,l=s?o.ok:o.fail,u=o.resolve,d=o.reject,c=o.domain;try{l?(s||(2==e._h&&P(e),e._h=1),!0===l?t=n:(c&&c.enter(),t=l(n),c&&(c.exit(),i=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=N(t))?r.call(t,u,d):u(t)):d(n)}catch(e){c&&!i&&c.exit(),d(e)}};t.length>r;)i(t[r++]);e._c=[],e._n=!1,o&&!e._h&&M(e)})}},M=function(e){_.call(u,function(){var o,t,n,s=e._v,r=L(e);if(r&&(o=g(function(){T?w.emit("unhandledRejection",s,e):(t=u.onunhandledrejection)?t({promise:e,reason:s}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",s)}),e._h=T||L(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},L=function(e){return 1!==e._h&&0===(e._a||e._c).length},P=function(e){_.call(u,function(){var o;T?w.emit("rejectionHandled",e):(o=u.onrejectionhandled)&&o({promise:e,reason:e._v})})},R=function(e){var o=this;o._d||(o._d=!0,(o=o._w||o)._v=e,o._s=2,o._a||(o._a=o._c.slice()),A(o,!0))},D=function(e){var o,t=this;if(!t._d){t._d=!0,t=t._w||t;try{if(t===e)throw x("Promise can't be resolved itself");(o=N(e))?v(function(){var n={_w:t,_d:!1};try{o.call(e,d(D,n,1),d(R,n,1))}catch(e){R.call(n,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};I||(C=function(e){p(this,C,"Promise","_h"),m(e),n.call(this);try{e(d(D,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(n=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=O(j(this,C));return t.ok="function"!=typeof e||e,t.fail="function"==typeof o&&o,t.domain=T?w.domain:void 0,this._c.push(t),this._a&&this._a.push(t),this._s&&A(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n;this.promise=e,this.resolve=d(D,e,1),this.reject=d(R,e,1)},b.f=O=function(e){return e===C||e===i?new r(e):s(e)}),a(a.G+a.W+a.F*!I,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("Promise"),i=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,a(a.S+a.F*!I,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(l||!I),"Promise",{resolve:function(e){return k(l&&this===i?C:this,e)}}),a(a.S+a.F*!(I&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(B)})),"Promise",{all:function(e){var o=this,t=O(o),n=t.resolve,s=t.reject,r=g(function(){var t=[],r=0,i=1;h(e,!1,function(e){var l=r++,u=!1;t.push(void 0),i++,o.resolve(e).then(function(e){u||(u=!0,t[l]=e,--i||n(t))},s)}),--i||n(t)});return r.e&&s(r.v),t.promise},race:function(e){var o=this,t=O(o),n=t.reject,s=g(function(){h(e,!1,function(e){o.resolve(e).then(t.resolve,n)})});return s.e&&n(s.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": +/*! no static exports found */function(e,o,t){"use strict";var n,s,r,i,l=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),u=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),a=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),c=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),f=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),m=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),p=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),h=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),j=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),_=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,b=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),v=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),g=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),y=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=u.TypeError,w=u.process,E=w&&w.versions,S=E&&E.v8||"",C=u.Promise,T="process"==a(w),B=function(){},O=s=v.f,I=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(B,B)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(B)instanceof o&&0!==S.indexOf("6.6")&&-1===y.indexOf("Chrome/66")}catch(e){}}(),N=function(e){var o;return!(!f(e)||"function"!=typeof(o=e.then))&&o},A=function(e,o){if(!e._n){e._n=!0;var t=e._c;b(function(){for(var n=e._v,s=1==e._s,r=0,i=function(o){var t,r,i,l=s?o.ok:o.fail,u=o.resolve,d=o.reject,a=o.domain;try{l?(s||(2==e._h&&P(e),e._h=1),!0===l?t=n:(a&&a.enter(),t=l(n),a&&(a.exit(),i=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=N(t))?r.call(t,u,d):u(t)):d(n)}catch(e){a&&!i&&a.exit(),d(e)}};t.length>r;)i(t[r++]);e._c=[],e._n=!1,o&&!e._h&&M(e)})}},M=function(e){_.call(u,function(){var o,t,n,s=e._v,r=L(e);if(r&&(o=g(function(){T?w.emit("unhandledRejection",s,e):(t=u.onunhandledrejection)?t({promise:e,reason:s}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",s)}),e._h=T||L(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},L=function(e){return 1!==e._h&&0===(e._a||e._c).length},P=function(e){_.call(u,function(){var o;T?w.emit("rejectionHandled",e):(o=u.onrejectionhandled)&&o({promise:e,reason:e._v})})},R=function(e){var o=this;o._d||(o._d=!0,(o=o._w||o)._v=e,o._s=2,o._a||(o._a=o._c.slice()),A(o,!0))},D=function(e){var o,t=this;if(!t._d){t._d=!0,t=t._w||t;try{if(t===e)throw x("Promise can't be resolved itself");(o=N(e))?b(function(){var n={_w:t,_d:!1};try{o.call(e,d(D,n,1),d(R,n,1))}catch(e){R.call(n,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};I||(C=function(e){p(this,C,"Promise","_h"),m(e),n.call(this);try{e(d(D,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(n=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=O(j(this,C));return t.ok="function"!=typeof e||e,t.fail="function"==typeof o&&o,t.domain=T?w.domain:void 0,this._c.push(t),this._a&&this._a.push(t),this._s&&A(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n;this.promise=e,this.resolve=d(D,e,1),this.reject=d(R,e,1)},v.f=O=function(e){return e===C||e===i?new r(e):s(e)}),c(c.G+c.W+c.F*!I,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("Promise"),i=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,c(c.S+c.F*!I,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),c(c.S+c.F*(l||!I),"Promise",{resolve:function(e){return k(l&&this===i?C:this,e)}}),c(c.S+c.F*!(I&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(B)})),"Promise",{all:function(e){var o=this,t=O(o),n=t.resolve,s=t.reject,r=g(function(){var t=[],r=0,i=1;h(e,!1,function(e){var l=r++,u=!1;t.push(void 0),i++,o.resolve(e).then(function(e){u||(u=!0,t[l]=e,--i||n(t))},s)}),--i||n(t)});return r.e&&s(r.v),t.promise},race:function(e){var o=this,t=O(o),n=t.reject,s=g(function(){h(e,!1,function(e){o.resolve(e).then(t.resolve,n)})});return s.e&&n(s.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***! \***********************************************************/ @@ -947,7 +947,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***************************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.construct.js ***! \***************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_bind */"./node_modules/core-js/modules/_bind.js"),c=(t(/*! ./_global */"./node_modules/core-js/modules/_global.js").Reflect||{}).construct,a=u(function(){function e(){}return!(c(function(){},[],e)instanceof e)}),f=!u(function(){c(function(){})});n(n.S+n.F*(a||f),"Reflect",{construct:function(e,o){r(e),i(o);var t=arguments.length<3?e:r(arguments[2]);if(f&&!a)return c(e,o,t);if(e==t){switch(o.length){case 0:return new e;case 1:return new e(o[0]);case 2:return new e(o[0],o[1]);case 3:return new e(o[0],o[1],o[2]);case 4:return new e(o[0],o[1],o[2],o[3])}var n=[null];return n.push.apply(n,o),new(d.apply(e,n))}var u=t.prototype,m=s(l(u)?u:Object.prototype),p=Function.apply.call(e,m,o);return l(p)?p:m}})},"./node_modules/core-js/modules/es6.reflect.define-property.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_bind */"./node_modules/core-js/modules/_bind.js"),a=(t(/*! ./_global */"./node_modules/core-js/modules/_global.js").Reflect||{}).construct,c=u(function(){function e(){}return!(a(function(){},[],e)instanceof e)}),f=!u(function(){a(function(){})});n(n.S+n.F*(c||f),"Reflect",{construct:function(e,o){r(e),i(o);var t=arguments.length<3?e:r(arguments[2]);if(f&&!c)return a(e,o,t);if(e==t){switch(o.length){case 0:return new e;case 1:return new e(o[0]);case 2:return new e(o[0],o[1]);case 3:return new e(o[0],o[1],o[2]);case 4:return new e(o[0],o[1],o[2],o[3])}var n=[null];return n.push.apply(n,o),new(d.apply(e,n))}var u=t.prototype,m=s(l(u)?u:Object.prototype),p=Function.apply.call(e,m,o);return l(p)?p:m}})},"./node_modules/core-js/modules/es6.reflect.define-property.js": /*!*********************************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.define-property.js ***! \*********************************************************************/ @@ -971,7 +971,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.get.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),s=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js");i(i.S,"Reflect",{get:function e(o,t){var i,d,c=arguments.length<3?o:arguments[2];return u(o)===c?o[t]:(i=n.f(o,t))?r(i,"value")?i.value:void 0!==i.get?i.get.call(c):void 0:l(d=s(o))?e(d,t,c):void 0}})},"./node_modules/core-js/modules/es6.reflect.has.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),s=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js");i(i.S,"Reflect",{get:function e(o,t){var i,d,a=arguments.length<3?o:arguments[2];return u(o)===a?o[t]:(i=n.f(o,t))?r(i,"value")?i.value:void 0!==i.get?i.get.call(a):void 0:l(d=s(o))?e(d,t,a):void 0}})},"./node_modules/core-js/modules/es6.reflect.has.js": /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.has.js ***! \*********************************************************/ @@ -995,11 +995,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.set.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),s=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),r=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),i=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),d=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),c=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js");l(l.S,"Reflect",{set:function e(o,t,l){var a,f,m=arguments.length<4?o:arguments[3],p=s.f(d(o),t);if(!p){if(c(f=r(o)))return e(f,t,l,m);p=u(0)}if(i(p,"value")){if(!1===p.writable||!c(m))return!1;if(a=s.f(m,t)){if(a.get||a.set||!1===a.writable)return!1;a.value=l,n.f(m,t,a)}else n.f(m,t,u(0,l));return!0}return void 0!==p.set&&(p.set.call(m,l),!0)}})},"./node_modules/core-js/modules/es6.regexp.constructor.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),s=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),r=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),i=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),d=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),a=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js");l(l.S,"Reflect",{set:function e(o,t,l){var c,f,m=arguments.length<4?o:arguments[3],p=s.f(d(o),t);if(!p){if(a(f=r(o)))return e(f,t,l,m);p=u(0)}if(i(p,"value")){if(!1===p.writable||!a(m))return!1;if(c=s.f(m,t)){if(c.get||c.set||!1===c.writable)return!1;c.value=l,n.f(m,t,c)}else n.f(m,t,u(0,l));return!0}return void 0!==p.set&&(p.set.call(m,l),!0)}})},"./node_modules/core-js/modules/es6.regexp.constructor.js": /*!****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***! \****************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),r=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,i=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,l=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),u=t(/*! ./_flags */"./node_modules/core-js/modules/_flags.js"),d=n.RegExp,c=d,a=d.prototype,f=/a/g,m=/a/g,p=new d(f)!==f;if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")&&(!p||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return m[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("match")]=!1,d(f)!=f||d(m)==m||"/a/i"!=d(f,"i")}))){d=function(e,o){var t=this instanceof d,n=l(e),r=void 0===o;return!t&&n&&e.constructor===d&&r?e:s(p?new c(n&&!r?e.source:e,o):c((n=e instanceof d)?e.source:e,n&&r?u.call(e):o),t?this:a,d)};for(var h=function(e){e in d||r(d,e,{configurable:!0,get:function(){return c[e]},set:function(o){c[e]=o}})},j=i(c),_=0;j.length>_;)h(j[_++]);a.constructor=d,d.prototype=a,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"RegExp",d)}t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("RegExp")},"./node_modules/core-js/modules/es6.regexp.flags.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),r=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,i=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,l=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),u=t(/*! ./_flags */"./node_modules/core-js/modules/_flags.js"),d=n.RegExp,a=d,c=d.prototype,f=/a/g,m=/a/g,p=new d(f)!==f;if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")&&(!p||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return m[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("match")]=!1,d(f)!=f||d(m)==m||"/a/i"!=d(f,"i")}))){d=function(e,o){var t=this instanceof d,n=l(e),r=void 0===o;return!t&&n&&e.constructor===d&&r?e:s(p?new a(n&&!r?e.source:e,o):a((n=e instanceof d)?e.source:e,n&&r?u.call(e):o),t?this:c,d)};for(var h=function(e){e in d||r(d,e,{configurable:!0,get:function(){return a[e]},set:function(o){a[e]=o}})},j=i(a),_=0;j.length>_;)h(j[_++]);c.constructor=d,d.prototype=c,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"RegExp",d)}t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("RegExp")},"./node_modules/core-js/modules/es6.regexp.flags.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***! \**********************************************************/ @@ -1019,7 +1019,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.split.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){t(/*! ./_fix-re-wks */"./node_modules/core-js/modules/_fix-re-wks.js")("split",2,function(e,o,n){"use strict";var s=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),r=n,i=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var l=void 0===/()??/.exec("")[1];n=function(e,o){var t=String(this);if(void 0===e&&0===o)return[];if(!s(e))return r.call(t,e,o);var n,u,d,c,a,f=[],m=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,h=void 0===o?4294967295:o>>>0,j=new RegExp(e.source,m+"g");for(l||(n=new RegExp("^"+j.source+"$(?!\\s)",m));(u=j.exec(t))&&!((d=u.index+u[0].length)>p&&(f.push(t.slice(p,u.index)),!l&&u.length>1&&u[0].replace(n,function(){for(a=1;a1&&u.index=h));)j.lastIndex===u.index&&j.lastIndex++;return p===t.length?!c&&j.test("")||f.push(""):f.push(t.slice(p)),f.length>h?f.slice(0,h):f}}else"0".split(void 0,0).length&&(n=function(e,o){return void 0===e&&0===o?[]:r.call(this,e,o)});return[function(t,s){var r=e(this),i=void 0==t?void 0:t[o];return void 0!==i?i.call(t,r,s):n.call(String(r),t,s)},n]})},"./node_modules/core-js/modules/es6.regexp.to-string.js": +/*! no static exports found */function(e,o,t){t(/*! ./_fix-re-wks */"./node_modules/core-js/modules/_fix-re-wks.js")("split",2,function(e,o,n){"use strict";var s=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),r=n,i=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var l=void 0===/()??/.exec("")[1];n=function(e,o){var t=String(this);if(void 0===e&&0===o)return[];if(!s(e))return r.call(t,e,o);var n,u,d,a,c,f=[],m=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,h=void 0===o?4294967295:o>>>0,j=new RegExp(e.source,m+"g");for(l||(n=new RegExp("^"+j.source+"$(?!\\s)",m));(u=j.exec(t))&&!((d=u.index+u[0].length)>p&&(f.push(t.slice(p,u.index)),!l&&u.length>1&&u[0].replace(n,function(){for(c=1;c1&&u.index=h));)j.lastIndex===u.index&&j.lastIndex++;return p===t.length?!a&&j.test("")||f.push(""):f.push(t.slice(p)),f.length>h?f.slice(0,h):f}}else"0".split(void 0,0).length&&(n=function(e,o){return void 0===e&&0===o?[]:r.call(this,e,o)});return[function(t,s){var r=e(this),i=void 0==t?void 0:t[o];return void 0!==i?i.call(t,r,s):n.call(String(r),t,s)},n]})},"./node_modules/core-js/modules/es6.regexp.to-string.js": /*!**************************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***! \**************************************************************/ @@ -1119,11 +1119,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!****************************************************!*\ !*** ./node_modules/core-js/modules/es6.symbol.js ***! \****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),u=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),c=t(/*! ./_shared */"./node_modules/core-js/modules/_shared.js"),a=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),f=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),m=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),p=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),h=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),j=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),_=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),v=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),b=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),g=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),y=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/modules/_object-gopn-ext.js"),S=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),E=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),T=S.f,B=E.f,O=w.f,I=n.Symbol,N=n.JSON,A=N&&N.stringify,M=m("_hidden"),L=m("toPrimitive"),P={}.propertyIsEnumerable,R=c("symbol-registry"),D=c("symbols"),F=c("op-symbols"),U=Object.prototype,H="function"==typeof I,z=n.QObject,G=!z||!z.prototype||!z.prototype.findChild,q=r&&d(function(){return 7!=x(B({},"a",{get:function(){return B(this,"a",{value:7}).a}})).a})?function(e,o,t){var n=T(U,o);n&&delete U[o],B(e,o,t),n&&e!==U&&B(U,o,n)}:B,W=function(e){var o=D[e]=x(I.prototype);return o._k=e,o},V=H&&"symbol"==typeof I.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof I},K=function(e,o,t){return e===U&&K(F,o,t),v(e),o=y(o,!0),v(t),s(D,o)?(t.enumerable?(s(e,M)&&e[M][o]&&(e[M][o]=!1),t=x(t,{enumerable:k(0,!1)})):(s(e,M)||B(e,M,k(1,{})),e[M][o]=!0),q(e,o,t)):B(e,o,t)},Y=function(e,o){v(e);for(var t,n=j(o=g(o)),s=0,r=n.length;r>s;)K(e,t=n[s++],o[t]);return e},X=function(e){var o=P.call(this,e=y(e,!0));return!(this===U&&s(D,e)&&!s(F,e))&&(!(o||!s(this,e)||!s(D,e)||s(this,M)&&this[M][e])||o)},J=function(e,o){if(e=g(e),o=y(o,!0),e!==U||!s(D,o)||s(F,o)){var t=T(e,o);return!t||!s(D,o)||s(e,M)&&e[M][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(g(e)),n=[],r=0;t.length>r;)s(D,o=t[r++])||o==M||o==u||n.push(o);return n},Z=function(e){for(var o,t=e===U,n=O(t?F:g(e)),r=[],i=0;n.length>i;)!s(D,o=n[i++])||t&&!s(U,o)||r.push(D[o]);return r};H||(l((I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(F,t),s(this,M)&&s(this[M],e)&&(this[M][e]=!1),q(this,e,k(1,t))};return r&&G&&q(U,e,{configurable:!0,set:o}),W(e)}).prototype,"toString",function(){return this._k}),S.f=J,E.f=K,t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f=X,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&l(U,"propertyIsEnumerable",X,!0),p.f=function(e){return W(m(e))}),i(i.G+i.W+i.F*!H,{Symbol:I});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)m(Q[ee++]);for(var oe=C(m.store),te=0;oe.length>te;)h(oe[te++]);i(i.S+i.F*!H,"Symbol",{for:function(e){return s(R,e+="")?R[e]:R[e]=I(e)},keyFor:function(e){if(!V(e))throw TypeError(e+" is not a symbol!");for(var o in R)if(R[o]===e)return o},useSetter:function(){G=!0},useSimple:function(){G=!1}}),i(i.S+i.F*!H,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),N&&i(i.S+i.F*(!H||d(function(){var e=I();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,n=[e],s=1;arguments.length>s;)n.push(arguments[s++]);if(t=o=n[1],(b(o)||void 0!==e)&&!V(e))return _(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!V(o))return o}),n[1]=o,A.apply(N,n)}}),I.prototype[L]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(I.prototype,L,I.prototype.valueOf),a(I,"Symbol"),a(Math,"Math",!0),a(n.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),u=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),a=t(/*! ./_shared */"./node_modules/core-js/modules/_shared.js"),c=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),f=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),m=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),p=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),h=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),j=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),_=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),v=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),g=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),y=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/modules/_object-gopn-ext.js"),E=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),S=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),T=E.f,B=S.f,O=w.f,I=n.Symbol,N=n.JSON,A=N&&N.stringify,M=m("_hidden"),L=m("toPrimitive"),P={}.propertyIsEnumerable,R=a("symbol-registry"),D=a("symbols"),F=a("op-symbols"),U=Object.prototype,z="function"==typeof I,H=n.QObject,G=!H||!H.prototype||!H.prototype.findChild,q=r&&d(function(){return 7!=x(B({},"a",{get:function(){return B(this,"a",{value:7}).a}})).a})?function(e,o,t){var n=T(U,o);n&&delete U[o],B(e,o,t),n&&e!==U&&B(U,o,n)}:B,W=function(e){var o=D[e]=x(I.prototype);return o._k=e,o},V=z&&"symbol"==typeof I.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof I},K=function(e,o,t){return e===U&&K(F,o,t),b(e),o=y(o,!0),b(t),s(D,o)?(t.enumerable?(s(e,M)&&e[M][o]&&(e[M][o]=!1),t=x(t,{enumerable:k(0,!1)})):(s(e,M)||B(e,M,k(1,{})),e[M][o]=!0),q(e,o,t)):B(e,o,t)},Y=function(e,o){b(e);for(var t,n=j(o=g(o)),s=0,r=n.length;r>s;)K(e,t=n[s++],o[t]);return e},X=function(e){var o=P.call(this,e=y(e,!0));return!(this===U&&s(D,e)&&!s(F,e))&&(!(o||!s(this,e)||!s(D,e)||s(this,M)&&this[M][e])||o)},J=function(e,o){if(e=g(e),o=y(o,!0),e!==U||!s(D,o)||s(F,o)){var t=T(e,o);return!t||!s(D,o)||s(e,M)&&e[M][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(g(e)),n=[],r=0;t.length>r;)s(D,o=t[r++])||o==M||o==u||n.push(o);return n},Z=function(e){for(var o,t=e===U,n=O(t?F:g(e)),r=[],i=0;n.length>i;)!s(D,o=n[i++])||t&&!s(U,o)||r.push(D[o]);return r};z||(l((I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(F,t),s(this,M)&&s(this[M],e)&&(this[M][e]=!1),q(this,e,k(1,t))};return r&&G&&q(U,e,{configurable:!0,set:o}),W(e)}).prototype,"toString",function(){return this._k}),E.f=J,S.f=K,t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f=X,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&l(U,"propertyIsEnumerable",X,!0),p.f=function(e){return W(m(e))}),i(i.G+i.W+i.F*!z,{Symbol:I});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)m(Q[ee++]);for(var oe=C(m.store),te=0;oe.length>te;)h(oe[te++]);i(i.S+i.F*!z,"Symbol",{for:function(e){return s(R,e+="")?R[e]:R[e]=I(e)},keyFor:function(e){if(!V(e))throw TypeError(e+" is not a symbol!");for(var o in R)if(R[o]===e)return o},useSetter:function(){G=!0},useSimple:function(){G=!1}}),i(i.S+i.F*!z,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),N&&i(i.S+i.F*(!z||d(function(){var e=I();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,n=[e],s=1;arguments.length>s;)n.push(arguments[s++]);if(t=o=n[1],(v(o)||void 0!==e)&&!V(e))return _(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!V(o))return o}),n[1]=o,A.apply(N,n)}}),I.prototype[L]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(I.prototype,L,I.prototype.valueOf),c(I,"Symbol"),c(Math,"Math",!0),c(n.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": /*!****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***! \****************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),r=t(/*! ./_typed-buffer */"./node_modules/core-js/modules/_typed-buffer.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),c=t(/*! ./_global */"./node_modules/core-js/modules/_global.js").ArrayBuffer,a=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),f=r.ArrayBuffer,m=r.DataView,p=s.ABV&&c.isView,h=f.prototype.slice,j=s.VIEW;n(n.G+n.W+n.F*(c!==f),{ArrayBuffer:f}),n(n.S+n.F*!s.CONSTR,"ArrayBuffer",{isView:function(e){return p&&p(e)||d(e)&&j in e}}),n(n.P+n.U+n.F*t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return!new f(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(e,o){if(void 0!==h&&void 0===o)return h.call(i(this),e);for(var t=i(this).byteLength,n=l(e,t),s=l(void 0===o?t:o,t),r=new(a(this,f))(u(s-n)),d=new m(this),c=new m(r),p=0;n0?arguments[0]:void 0)}},_={get:function(e){if(d(e)){var o=f(e);return!0===o?p(a(this,"WeakMap")).get(e):o?o[this._i]:void 0}},set:function(e,o){return u.def(a(this,"WeakMap"),e,o)}},v=e.exports=t(/*! ./_collection */"./node_modules/core-js/modules/_collection.js")("WeakMap",j,_,u,!0,!0);c(function(){return 7!=(new v).set((Object.freeze||Object)(h),7).get(h)})&&(l((n=u.getConstructor(j,"WeakMap")).prototype,_),i.NEED=!0,s(["delete","has","get","set"],function(e){var o=v.prototype,t=o[e];r(o,e,function(o,s){if(d(o)&&!m(o)){this._f||(this._f=new n);var r=this._f[e](o,s);return"set"==e?this:r}return t.call(this,o,s)})}))},"./node_modules/core-js/modules/es6.weak-set.js": +/*! no static exports found */function(e,o,t){"use strict";var n,s=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js")(0),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),l=t(/*! ./_object-assign */"./node_modules/core-js/modules/_object-assign.js"),u=t(/*! ./_collection-weak */"./node_modules/core-js/modules/_collection-weak.js"),d=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),a=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),c=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=i.getWeak,m=Object.isExtensible,p=u.ufstore,h={},j=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},_={get:function(e){if(d(e)){var o=f(e);return!0===o?p(c(this,"WeakMap")).get(e):o?o[this._i]:void 0}},set:function(e,o){return u.def(c(this,"WeakMap"),e,o)}},b=e.exports=t(/*! ./_collection */"./node_modules/core-js/modules/_collection.js")("WeakMap",j,_,u,!0,!0);a(function(){return 7!=(new b).set((Object.freeze||Object)(h),7).get(h)})&&(l((n=u.getConstructor(j,"WeakMap")).prototype,_),i.NEED=!0,s(["delete","has","get","set"],function(e){var o=b.prototype,t=o[e];r(o,e,function(o,s){if(d(o)&&!m(o)){this._f||(this._f=new n);var r=this._f[e](o,s);return"set"==e?this:r}return t.call(this,o,s)})}))},"./node_modules/core-js/modules/es6.weak-set.js": /*!******************************************************!*\ !*** ./node_modules/core-js/modules/es6.weak-set.js ***! \******************************************************/ @@ -1183,7 +1183,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************************************!*\ !*** ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js ***! \*********************************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_own-keys */"./node_modules/core-js/modules/_own-keys.js"),r=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),i=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),l=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){for(var o,t,n=r(e),u=i.f,d=s(n),c={},a=0;d.length>a;)void 0!==(t=u(n,o=d[a++]))&&l(c,o,t);return c}})},"./node_modules/core-js/modules/es7.object.values.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_own-keys */"./node_modules/core-js/modules/_own-keys.js"),r=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),i=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),l=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){for(var o,t,n=r(e),u=i.f,d=s(n),a={},c=0;d.length>c;)void 0!==(t=u(n,o=d[c++]))&&l(a,o,t);return a}})},"./node_modules/core-js/modules/es7.object.values.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es7.object.values.js ***! \***********************************************************/ @@ -1207,7 +1207,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/web.dom.iterable.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){for(var n=t(/*! ./es6.array.iterator */"./node_modules/core-js/modules/es6.array.iterator.js"),s=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),l=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),u=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),d=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),c=d("iterator"),a=d("toStringTag"),f=u.Array,m={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=s(m),h=0;h0;)o.insertBefore(u.childNodes[0],u);o.removeChild(u),this._sanitize(e,o);break}for(var h=0;h0;)o.insertBefore(u.childNodes[0],u);o.removeChild(u),this._sanitize(e,o);break}for(var h=0;h=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=a;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===a)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function S(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function E(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},i)}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=c;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===c)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},i)}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++nt.length-1&&(this.inputIndex=t.length-1),t}},{key:"currentInput",get:function(){return this.inputs[this.inputIndex]},set:function(e){var o=this.inputs.findIndex(function(o){return o===e||o.contains(e)});-1!==o&&(this.inputIndex=o)}},{key:"firstInput",get:function(){return this.inputs[0]}},{key:"lastInput",get:function(){var e=this.inputs;return e[e.length-1]}},{key:"nextInput",get:function(){return this.inputs[this.inputIndex+1]}},{key:"previousInput",get:function(){return this.inputs[this.inputIndex-1]}},{key:"pluginsContent",get:function(){var o=this.holder.querySelector(".".concat(e.CSS.content));return o&&o.childNodes.length?o.childNodes[0]:null}},{key:"data",get:function(){return this.save()}},{key:"sanitize",get:function(){return this.tool.sanitize}},{key:"mergeable",get:function(){return"function"==typeof this.tool.merge}},{key:"isEmpty",get:function(){var e=u.default.isEmpty(this.pluginsContent),o=!this.hasMedia;return e&&o}},{key:"hasMedia",get:function(){return!!this.holder.querySelector(["img","iframe","video","audio","source","input","textarea","twitterwidget"].join(","))}},{key:"focused",set:function(o){this.holder.classList.toggle(e.CSS.focused,o)}},{key:"selected",set:function(o){o?this.holder.classList.add(e.CSS.selected):this.holder.classList.remove(e.CSS.selected)},get:function(){return this.holder.classList.contains(e.CSS.selected)}},{key:"stretched",set:function(o){this.holder.classList.toggle(e.CSS.wrapperStretched,o)}},{key:"dropTarget",set:function(o){this.holder.classList.toggle(e.CSS.dropTarget,o)}}],[{key:"CSS",get:function(){return{wrapper:"ce-block",wrapperStretched:"ce-block--stretched",content:"ce-block__content",focused:"ce-block--focused",selected:"ce-block--selected",dropTarget:"ce-block--drop-target"}}}]),e}();n.default=p,p.displayName="Block",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/blocks.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts"),t(/*! ./block-tunes/block-tune-move-up */"./src/components/block-tunes/block-tune-move-up.ts"),t(/*! ./block-tunes/block-tune-delete */"./src/components/block-tunes/block-tune-delete.ts"),t(/*! ./block-tunes/block-tune-move-down */"./src/components/block-tunes/block-tune-move-down.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(){function e(o,t,n,s,r){(0,i.default)(this,e),this.inputIndex=0,this.name=o,this.tool=t,this.class=n,this.settings=s,this.api=r,this.holder=this.compose(),this.tunes=this.makeTunes()}return(0,l.default)(e,[{key:"call",value:function(e,o){this.tool[e]&&this.tool[e]instanceof Function&&this.tool[e].call(this.tool,o)}},{key:"mergeWith",value:function(){var e=(0,r.default)(s.default.mark(function e(o){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tool.merge(o);case 2:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tool.save(this.pluginsContent);case 2:return o=e.sent,t=window.performance.now(),e.abrupt("return",Promise.resolve(o).then(function(e){return n=window.performance.now(),{tool:r.name,data:e,time:n-t}}).catch(function(e){d.default.log("Saving proccess for ".concat(r.name," tool failed due to the ").concat(e),"log","red")}));case 5:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"validateData",value:function(e){var o=!0;return this.tool.validate instanceof Function&&(o=this.tool.validate(e)),!!o&&e}},{key:"makeTunes",value:function(){var e=this,o=[a.default,c.default,f.default];return o.map(function(o){return new o({api:e.api,settings:e.settings})})}},{key:"renderTunes",value:function(){var e=document.createDocumentFragment();return this.tunes.forEach(function(o){u.default.append(e,o.render())}),e}},{key:"compose",value:function(){var o=u.default.make("div",e.CSS.wrapper),t=u.default.make("div",e.CSS.content),n=this.tool.render();return t.appendChild(n),o.appendChild(t),o}},{key:"inputs",get:function(){var e=this.holder,o="[contenteditable], textarea, input, "+["text","password","email","number","search","tel","url"].map(function(e){return'input[type="'.concat(e,'"]')}).join(", "),t=d.default.array(e.querySelectorAll(o));return this.inputIndex>t.length-1&&(this.inputIndex=t.length-1),t}},{key:"currentInput",get:function(){return this.inputs[this.inputIndex]},set:function(e){var o=this.inputs.findIndex(function(o){return o===e||o.contains(e)});-1!==o&&(this.inputIndex=o)}},{key:"firstInput",get:function(){return this.inputs[0]}},{key:"lastInput",get:function(){var e=this.inputs;return e[e.length-1]}},{key:"nextInput",get:function(){return this.inputs[this.inputIndex+1]}},{key:"previousInput",get:function(){return this.inputs[this.inputIndex-1]}},{key:"pluginsContent",get:function(){var o=this.holder.querySelector(".".concat(e.CSS.content));return o&&o.childNodes.length?o.childNodes[0]:null}},{key:"data",get:function(){return this.save()}},{key:"sanitize",get:function(){return this.tool.sanitize}},{key:"mergeable",get:function(){return"function"==typeof this.tool.merge}},{key:"isEmpty",get:function(){var e=u.default.isEmpty(this.pluginsContent),o=!this.hasMedia;return e&&o}},{key:"hasMedia",get:function(){return!!this.holder.querySelector(["img","iframe","video","audio","source","input","textarea","twitterwidget"].join(","))}},{key:"focused",set:function(o){this.holder.classList.toggle(e.CSS.focused,o)}},{key:"selected",set:function(o){o?this.holder.classList.add(e.CSS.selected):this.holder.classList.remove(e.CSS.selected)},get:function(){return this.holder.classList.contains(e.CSS.selected)}},{key:"stretched",set:function(o){this.holder.classList.toggle(e.CSS.wrapperStretched,o)}},{key:"dropTarget",set:function(o){this.holder.classList.toggle(e.CSS.dropTarget,o)}}],[{key:"CSS",get:function(){return{wrapper:"ce-block",wrapperStretched:"ce-block--stretched",content:"ce-block__content",focused:"ce-block--focused",selected:"ce-block--selected",dropTarget:"ce-block--drop-target"}}}]),e}();n.default=p,p.displayName="Block",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/blocks.ts": /*!**********************************!*\ !*** ./src/components/blocks.ts ***! \**********************************/ @@ -1263,7 +1263,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!********************************!*\ !*** ./src/components/core.ts ***! \********************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=t("./src/components/modules sync recursive ^\\.\\/.*$"),m=[];f.keys().forEach(function(e){e.match(/^\.\/[^_][\w/]*\.([tj])s$/)&&m.push(f(e))});var p=function(){function e(o){var t,n,s=this;(0,l.default)(this,e),this.moduleInstances={},this.isReady=new Promise(function(e,o){t=e,n=o}),Promise.resolve().then((0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return s.configuration=o,e.next=3,s.validate();case 3:return e.next=5,s.init();case 5:return e.next=7,s.start();case 7:c.default.log("I'm ready! (ノ◕ヮ◕)ノ*:・゚✧","log","","color: #E24A75"),setTimeout(function(){t()},500);case 9:case"end":return e.stop()}},e,this)}))).catch(function(e){c.default.log("CodeX Editor does not ready because of ".concat(e),"error"),n(e)})}return(0,u.default)(e,[{key:"validate",value:function(){var e=(0,i.default)(r.default.mark(function e(){var o,t;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.config.holderId){e.next=2;break}throw Error("«holderId» param must being not empty");case 2:if(d.default.get(this.config.holderId)){e.next=4;break}throw Error("element with ID «".concat(this.config.holderId,"» is missing. Pass correct holder's ID."));case 4:e.t0=r.default.keys(this.config.tools);case 5:if((e.t1=e.t0()).done){e.next=13;break}if(o=e.t1.value,!this.config.tools.hasOwnProperty(o)){e.next=11;break}if(t=this.config.tools[o],c.default.isFunction(t)||c.default.isFunction(t.class)){e.next=11;break}throw Error("Tool «".concat(o,"» must be a constructor function or an object with function in the «class» property"));case 11:e.next=5;break;case 13:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"init",value:function(){this.constructModules(),this.configureModules()}},{key:"start",value:function(){var e=(0,i.default)(r.default.mark(function e(){var o,t=this;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=["Tools","UI","BlockManager","Paste","DragNDrop","ModificationsObserver","BlockSelection"],e.next=3,o.reduce(function(e,o){return e.then((0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.moduleInstances[o].prepare();case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),c.default.log("Module ".concat(o," was skipped because of %o"),"warn",e.t0);case 8:case"end":return e.stop()}},e,this,[[0,5]])})))},Promise.resolve());case 3:return e.abrupt("return",this.moduleInstances.Renderer.render(this.config.data.blocks));case 4:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"constructModules",value:function(){var e=this;m.forEach(function(o){try{e.moduleInstances[o.displayName]=new o({config:e.configuration})}catch(e){c.default.log("Module ".concat(o.displayName," skipped because"),"warn",e)}})}},{key:"configureModules",value:function(){for(var e in this.moduleInstances)this.moduleInstances.hasOwnProperty(e)&&(this.moduleInstances[e].state=this.getModulesDiff(e))}},{key:"getModulesDiff",value:function(e){var o={};for(var t in this.moduleInstances)t!==e&&(o[t]=this.moduleInstances[t]);return o}},{key:"configuration",set:function(e){"object"!==(0,s.default)(e)&&(e={holderId:e}),this.config=e,this.config.holderId&&"string"==typeof this.config.holderId||(this.config.holderId="codex-editor"),this.config.initialBlock=this.config.initialBlock||"paragraph";var o={type:this.config.initialBlock,data:{}};this.config.placeholder=this.config.placeholder||"write your story...",this.config.sanitizer=this.config.sanitizer||{p:!0,b:!0,a:!0},this.config.hideToolbar=!!this.config.hideToolbar&&this.config.hideToolbar,this.config.tools=this.config.tools||{},this.config.data=this.config.data||{},this.config.onReady=this.config.onReady||function(){},this.config.onChange=this.config.onChange||function(){},c.default.isEmpty(this.config.data)?(this.config.data={},this.config.data.blocks=[o]):this.config.data.blocks&&0!==this.config.data.blocks.length||(this.config.data.blocks=[o])},get:function(){return this.config}}]),e}();n.default=p,p.displayName="Core",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/dom.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=t("./src/components/modules sync recursive ^\\.\\/.*$"),m=[];f.keys().forEach(function(e){e.match(/^\.\/[^_][\w/]*\.([tj])s$/)&&m.push(f(e))});var p=function(){function e(o){var t,n,s=this;(0,l.default)(this,e),this.moduleInstances={},this.isReady=new Promise(function(e,o){t=e,n=o}),Promise.resolve().then((0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return s.configuration=o,e.next=3,s.validate();case 3:return e.next=5,s.init();case 5:return e.next=7,s.start();case 7:a.default.log("I'm ready! (ノ◕ヮ◕)ノ*:・゚✧","log","","color: #E24A75"),setTimeout(function(){t()},500);case 9:case"end":return e.stop()}},e,this)}))).catch(function(e){a.default.log("CodeX Editor does not ready because of ".concat(e),"error"),n(e)})}return(0,u.default)(e,[{key:"validate",value:function(){var e=(0,i.default)(r.default.mark(function e(){var o,t;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.config.holderId){e.next=2;break}throw Error("«holderId» param must being not empty");case 2:if(d.default.get(this.config.holderId)){e.next=4;break}throw Error("element with ID «".concat(this.config.holderId,"» is missing. Pass correct holder's ID."));case 4:e.t0=r.default.keys(this.config.tools);case 5:if((e.t1=e.t0()).done){e.next=13;break}if(o=e.t1.value,!this.config.tools.hasOwnProperty(o)){e.next=11;break}if(t=this.config.tools[o],a.default.isFunction(t)||a.default.isFunction(t.class)){e.next=11;break}throw Error("Tool «".concat(o,"» must be a constructor function or an object with function in the «class» property"));case 11:e.next=5;break;case 13:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"init",value:function(){this.constructModules(),this.configureModules()}},{key:"start",value:function(){var e=(0,i.default)(r.default.mark(function e(){var o,t=this;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=["Tools","UI","BlockManager","Paste","DragNDrop","ModificationsObserver","BlockSelection"],e.next=3,o.reduce(function(e,o){return e.then((0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.moduleInstances[o].prepare();case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),a.default.log("Module ".concat(o," was skipped because of %o"),"warn",e.t0);case 8:case"end":return e.stop()}},e,this,[[0,5]])})))},Promise.resolve());case 3:return e.abrupt("return",this.moduleInstances.Renderer.render(this.config.data.blocks));case 4:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"constructModules",value:function(){var e=this;m.forEach(function(o){try{e.moduleInstances[o.displayName]=new o({config:e.configuration})}catch(e){a.default.log("Module ".concat(o.displayName," skipped because"),"warn",e)}})}},{key:"configureModules",value:function(){for(var e in this.moduleInstances)this.moduleInstances.hasOwnProperty(e)&&(this.moduleInstances[e].state=this.getModulesDiff(e))}},{key:"getModulesDiff",value:function(e){var o={};for(var t in this.moduleInstances)t!==e&&(o[t]=this.moduleInstances[t]);return o}},{key:"configuration",set:function(e){"object"!==(0,s.default)(e)&&(e={holderId:e}),this.config=e,this.config.holderId&&"string"==typeof this.config.holderId||(this.config.holderId="codex-editor"),this.config.initialBlock=this.config.initialBlock||"paragraph";var o={type:this.config.initialBlock,data:{}};this.config.placeholder=this.config.placeholder||"write your story...",this.config.sanitizer=this.config.sanitizer||{p:!0,b:!0,a:!0},this.config.hideToolbar=!!this.config.hideToolbar&&this.config.hideToolbar,this.config.tools=this.config.tools||{},this.config.data=this.config.data||{},this.config.onReady=this.config.onReady||function(){},this.config.onChange=this.config.onChange||function(){},a.default.isEmpty(this.config.data)?(this.config.data={},this.config.data.blocks=[o]):this.config.data.blocks&&0!==this.config.data.blocks.length||(this.config.data.blocks=[o])},get:function(){return this.config}}]),e}();n.default=p,p.displayName="Core",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/dom.ts": /*!*******************************!*\ !*** ./src/components/dom.ts ***! \*******************************/ @@ -1279,7 +1279,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./src/components/inline-tools/inline-tool-link.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=d(s),r=d(r),i=d(i),l=d(l),u=d(u);var c=function(){function e(o){var t=o.api;(0,s.default)(this,e),this.commandLink="createLink",this.commandUnlink="unlink",this.ENTER_KEY=13,this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--link",buttonUnlink:"ce-inline-tool--unlink",input:"ce-inline-tool-input",inputShowed:"ce-inline-tool-input--showed"},this.nodes={button:null,input:null},this.inputOpened=!1,this.inlineToolbar=t.toolbar,this.selection=new i.default}return(0,r.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(l.default.svg("link",15,14)),this.nodes.button.appendChild(l.default.svg("unlink",16,18)),this.nodes.button}},{key:"renderActions",value:function(){var e=this;return this.nodes.input=document.createElement("input"),this.nodes.input.placeholder="Add a link",this.nodes.input.classList.add(this.CSS.input),this.nodes.input.addEventListener("keydown",function(o){o.keyCode===e.ENTER_KEY&&e.enterPressed(o)}),this.nodes.input}},{key:"surround",value:function(e){if(e){this.selection.save();var o=this.selection.findParentTag("A");if(o)return this.selection.expandToTag(o),this.unlink(),this.closeActions(),this.checkState(),void this.inlineToolbar.close()}this.toggleActions()}},{key:"checkState",value:function(e){var o=this.selection.findParentTag("A");if(o){this.nodes.button.classList.add(this.CSS.buttonUnlink),this.nodes.button.classList.add(this.CSS.buttonActive),this.openActions();var t=o.getAttribute("href");this.nodes.input.value="null"!==t?t:"",this.selection.save()}else this.nodes.button.classList.remove(this.CSS.buttonUnlink),this.nodes.button.classList.remove(this.CSS.buttonActive);return!!o}},{key:"clear",value:function(){this.closeActions()}},{key:"toggleActions",value:function(){this.inputOpened?this.closeActions(!1):this.openActions(!0)}},{key:"openActions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.nodes.input.classList.add(this.CSS.inputShowed),e&&this.nodes.input.focus(),this.inputOpened=!0}},{key:"closeActions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.nodes.input.classList.remove(this.CSS.inputShowed),this.nodes.input.value="",e&&this.selection.clearSaved(),this.inputOpened=!1}},{key:"enterPressed",value:function(e){var o=this.nodes.input.value||"";o.trim()||(this.selection.restore(),this.unlink(),e.preventDefault(),this.closeActions()),this.validateURL(o)?(o=this.prepareLink(o),this.selection.restore(),this.insertLink(o),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.closeActions(),this.inlineToolbar.close(),this.checkState()):u.default.log("Incorrect Link pasted","warn",o)}},{key:"validateURL",value:function(e){return!/\s/.test(e)}},{key:"prepareLink",value:function(e){return e=e.trim(),e=this.addProtocol(e)}},{key:"addProtocol",value:function(e){if(/^(\w+):\/\//.test(e))return e;var o=/^\/[^\/\s]/.test(e),t="#"===e.substring(0,1),n=/^\/\/[^\/\s]/.test(e);return o||t||n||(e="http://"+e),e}},{key:"insertLink",value:function(e){var o=this.selection.findParentTag("A");o&&this.selection.expandToTag(o),document.execCommand(this.commandLink,!1,e)}},{key:"unlink",value:function(){document.execCommand(this.commandUnlink)}},{key:"shortcut",get:function(){return"CMD+K"}}],[{key:"sanitize",get:function(){return{a:{href:!0,target:"_blank",rel:"nofollow"}}}}]),e}();n.default=c,c.displayName="LinkInlineTool",c.isInline=!0,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules sync recursive ^\\.\\/.*$": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=d(s),r=d(r),i=d(i),l=d(l),u=d(u);var a=function(){function e(o){var t=o.api;(0,s.default)(this,e),this.commandLink="createLink",this.commandUnlink="unlink",this.ENTER_KEY=13,this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--link",buttonUnlink:"ce-inline-tool--unlink",input:"ce-inline-tool-input",inputShowed:"ce-inline-tool-input--showed"},this.nodes={button:null,input:null},this.inputOpened=!1,this.inlineToolbar=t.toolbar,this.selection=new i.default}return(0,r.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(l.default.svg("link",15,14)),this.nodes.button.appendChild(l.default.svg("unlink",16,18)),this.nodes.button}},{key:"renderActions",value:function(){var e=this;return this.nodes.input=document.createElement("input"),this.nodes.input.placeholder="Add a link",this.nodes.input.classList.add(this.CSS.input),this.nodes.input.addEventListener("keydown",function(o){o.keyCode===e.ENTER_KEY&&e.enterPressed(o)}),this.nodes.input}},{key:"surround",value:function(e){if(e){this.selection.save();var o=this.selection.findParentTag("A");if(o)return this.selection.expandToTag(o),this.unlink(),this.closeActions(),this.checkState(),void this.inlineToolbar.close()}this.toggleActions()}},{key:"checkState",value:function(e){var o=this.selection.findParentTag("A");if(o){this.nodes.button.classList.add(this.CSS.buttonUnlink),this.nodes.button.classList.add(this.CSS.buttonActive),this.openActions();var t=o.getAttribute("href");this.nodes.input.value="null"!==t?t:"",this.selection.save()}else this.nodes.button.classList.remove(this.CSS.buttonUnlink),this.nodes.button.classList.remove(this.CSS.buttonActive);return!!o}},{key:"clear",value:function(){this.closeActions()}},{key:"toggleActions",value:function(){this.inputOpened?this.closeActions(!1):this.openActions(!0)}},{key:"openActions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.nodes.input.classList.add(this.CSS.inputShowed),e&&this.nodes.input.focus(),this.inputOpened=!0}},{key:"closeActions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.nodes.input.classList.remove(this.CSS.inputShowed),this.nodes.input.value="",e&&this.selection.clearSaved(),this.inputOpened=!1}},{key:"enterPressed",value:function(e){var o=this.nodes.input.value||"";o.trim()||(this.selection.restore(),this.unlink(),e.preventDefault(),this.closeActions()),this.validateURL(o)?(o=this.prepareLink(o),this.selection.restore(),this.insertLink(o),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.closeActions(),this.inlineToolbar.close(),this.checkState()):u.default.log("Incorrect Link pasted","warn",o)}},{key:"validateURL",value:function(e){return!/\s/.test(e)}},{key:"prepareLink",value:function(e){return e=e.trim(),e=this.addProtocol(e)}},{key:"addProtocol",value:function(e){if(/^(\w+):\/\//.test(e))return e;var o=/^\/[^\/\s]/.test(e),t="#"===e.substring(0,1),n=/^\/\/[^\/\s]/.test(e);return o||t||n||(e="http://"+e),e}},{key:"insertLink",value:function(e){var o=this.selection.findParentTag("A");o&&this.selection.expandToTag(o),document.execCommand(this.commandLink,!1,e)}},{key:"unlink",value:function(){document.execCommand(this.commandUnlink)}},{key:"shortcut",get:function(){return"CMD+K"}}],[{key:"sanitize",get:function(){return{a:{href:!0,target:"_blank",rel:"nofollow"}}}}]),e}();n.default=a,a.displayName="LinkInlineTool",a.isInline=!0,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules sync recursive ^\\.\\/.*$": /*!**********************************************!*\ !*** ./src/components/modules sync ^\.\/.*$ ***! \**********************************************/ @@ -1287,127 +1287,137 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************!*\ !*** ./src/components/modules/api/blocks.ts ***! \**********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"getBlocksCount",value:function(){return this.Editor.BlockManager.blocks.length}},{key:"getCurrentBlockIndex",value:function(){return this.Editor.BlockManager.currentBlockIndex}},{key:"getBlockByIndex",value:function(e){var o=this.Editor.BlockManager.getBlockByIndex(e);return o.holder}},{key:"swap",value:function(e,o){this.Editor.BlockManager.swap(e,o),this.Editor.Toolbar.move(!1)}},{key:"delete",value:function(e){this.Editor.BlockManager.removeBlock(e),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),this.Editor.Toolbar.close()}},{key:"clear",value:function(){this.Editor.BlockManager.clear(!0)}},{key:"render",value:function(e){return this.Editor.BlockManager.clear(),this.Editor.Renderer.render(e.blocks)}},{key:"stretchBlock",value:function(e){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this.Editor.BlockManager.getBlockByIndex(e);t&&(t.stretched=o)}},{key:"insertNewBlock",value:function(){var e=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(e)}},{key:"methods",get:function(){var e=this;return{clear:function(){return e.clear()},render:function(o){return e.render(o)},delete:function(){return e.delete()},swap:function(o,t){return e.swap(o,t)},getBlockByIndex:function(o){return e.getBlockByIndex(o)},getCurrentBlockIndex:function(){return e.getCurrentBlockIndex()},getBlocksCount:function(){return e.getBlocksCount()},stretchBlock:function(o){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.stretchBlock(o,t)},insertNewBlock:function(){return e.insertNewBlock()}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="BlocksAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/caret.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"getBlocksCount",value:function(){return this.Editor.BlockManager.blocks.length}},{key:"getCurrentBlockIndex",value:function(){return this.Editor.BlockManager.currentBlockIndex}},{key:"getBlockByIndex",value:function(e){var o=this.Editor.BlockManager.getBlockByIndex(e);return o.holder}},{key:"swap",value:function(e,o){this.Editor.BlockManager.swap(e,o),this.Editor.Toolbar.move(!1)}},{key:"delete",value:function(e){this.Editor.BlockManager.removeBlock(e),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),this.Editor.Toolbar.close()}},{key:"clear",value:function(){this.Editor.BlockManager.clear(!0)}},{key:"render",value:function(e){return this.Editor.BlockManager.clear(),this.Editor.Renderer.render(e.blocks)}},{key:"stretchBlock",value:function(e){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this.Editor.BlockManager.getBlockByIndex(e);t&&(t.stretched=o)}},{key:"insertNewBlock",value:function(){var e=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(e)}},{key:"methods",get:function(){var e=this;return{clear:function(){return e.clear()},render:function(o){return e.render(o)},delete:function(){return e.delete()},swap:function(o,t){return e.swap(o,t)},getBlockByIndex:function(o){return e.getBlockByIndex(o)},getCurrentBlockIndex:function(){return e.getCurrentBlockIndex()},getBlocksCount:function(){return e.getBlocksCount()},stretchBlock:function(o){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.stretchBlock(o,t)},insertNewBlock:function(){return e.insertNewBlock()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="BlocksAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/caret.ts": /*!*********************************************!*\ !*** ./src/components/modules/api/caret.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{}}}]),o}((d=c(d)).default);n.default=a,a.displayName="CaretAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/events.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{}}}]),o}((d=a(d)).default);n.default=c,c.displayName="CaretAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/events.ts": /*!**********************************************!*\ !*** ./src/components/modules/api/events.ts ***! \**********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o){this.Editor.Events.on(e,o)}},{key:"emit",value:function(e,o){this.Editor.Events.emit(e,o)}},{key:"off",value:function(e,o){this.Editor.Events.off(e,o)}},{key:"methods",get:function(){var e=this;return{emit:function(o,t){return e.emit(o,t)},off:function(o,t){return e.off(o,t)},on:function(o,t){return e.on(o,t)}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="EventsAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/index.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o){this.Editor.Events.on(e,o)}},{key:"emit",value:function(e,o){this.Editor.Events.emit(e,o)}},{key:"off",value:function(e,o){this.Editor.Events.off(e,o)}},{key:"methods",get:function(){var e=this;return{emit:function(o,t){return e.emit(o,t)},off:function(o,t){return e.off(o,t)},on:function(o,t){return e.on(o,t)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="EventsAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/index.ts": /*!*********************************************!*\ !*** ./src/components/modules/api/index.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{blocks:this.Editor.BlocksAPI.methods,caret:this.Editor.CaretAPI.methods,events:this.Editor.EventsAPI.methods,listeners:this.Editor.ListenersAPI.methods,notifier:this.Editor.NotifierAPI.methods,sanitizer:this.Editor.SanitizerAPI.methods,saver:this.Editor.SaverAPI.methods,selection:this.Editor.SelectionAPI.methods,styles:this.Editor.StylesAPI.classes,toolbar:this.Editor.ToolbarAPI.methods}}}]),o}((d=c(d)).default);n.default=a,a.displayName="API",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/listeners.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{blocks:this.Editor.BlocksAPI.methods,caret:this.Editor.CaretAPI.methods,events:this.Editor.EventsAPI.methods,listeners:this.Editor.ListenersAPI.methods,notifier:this.Editor.NotifierAPI.methods,sanitizer:this.Editor.SanitizerAPI.methods,saver:this.Editor.SaverAPI.methods,selection:this.Editor.SelectionAPI.methods,styles:this.Editor.StylesAPI.classes,toolbar:this.Editor.ToolbarAPI.methods}}}]),o}((d=a(d)).default);n.default=c,c.displayName="API",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/listeners.ts": /*!*************************************************!*\ !*** ./src/components/modules/api/listeners.ts ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o,t,n){this.Editor.Listeners.on(e,o,t,n)}},{key:"off",value:function(e,o,t){this.Editor.Listeners.off(e,o,t)}},{key:"methods",get:function(){var e=this;return{on:function(o,t,n,s){return e.on(o,t,n,s)},off:function(o,t,n){return e.off(o,t,n)}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="ListenersAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/notifier.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o,t,n){this.Editor.Listeners.on(e,o,t,n)}},{key:"off",value:function(e,o,t){this.Editor.Listeners.off(e,o,t)}},{key:"methods",get:function(){var e=this;return{on:function(o,t,n,s){return e.on(o,t,n,s)},off:function(o,t,n){return e.off(o,t,n)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="ListenersAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/notifier.ts": /*!************************************************!*\ !*** ./src/components/modules/api/notifier.ts ***! \************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){return this.Editor.Notifier.show(e)}},{key:"methods",get:function(){var e=this;return{show:function(o){return e.show(o)}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="NotifierAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/sanitizer.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){return this.Editor.Notifier.show(e)}},{key:"methods",get:function(){var e=this;return{show:function(o){return e.show(o)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="NotifierAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/sanitizer.ts": /*!*************************************************!*\ !*** ./src/components/modules/api/sanitizer.ts ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"clean",value:function(e,o){return this.Editor.Sanitizer.clean(e,o)}},{key:"methods",get:function(){var e=this;return{clean:function(o,t){return e.clean(o,t)}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="SanitizerAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/saver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"clean",value:function(e,o){return this.Editor.Sanitizer.clean(e,o)}},{key:"methods",get:function(){var e=this;return{clean:function(o,t){return e.clean(o,t)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="SanitizerAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/saver.ts": /*!*********************************************!*\ !*** ./src/components/modules/api/saver.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"save",value:function(){return this.Editor.Saver.save()}},{key:"methods",get:function(){var e=this;return{save:function(){return e.save()}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="SaverAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/selection.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"save",value:function(){return this.Editor.Saver.save()}},{key:"methods",get:function(){var e=this;return{save:function(){return e.save()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="SaverAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/selection.ts": /*!*************************************************!*\ !*** ./src/components/modules/api/selection.ts ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"findParentTag",value:function(e,o){return(new c.default).findParentTag(e,o)}},{key:"expandToTag",value:function(e){(new c.default).expandToTag(e)}},{key:"methods",get:function(){var e=this;return{findParentTag:function(o,t){return e.findParentTag(o,t)},expandToTag:function(o){return e.expandToTag(o)}}}}]),o}(d.default);n.default=f,f.displayName="SelectionAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/styles.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"findParentTag",value:function(e,o){return(new a.default).findParentTag(e,o)}},{key:"expandToTag",value:function(e){(new a.default).expandToTag(e)}},{key:"methods",get:function(){var e=this;return{findParentTag:function(o,t){return e.findParentTag(o,t)},expandToTag:function(o){return e.expandToTag(o)}}}}]),o}(d.default);n.default=f,f.displayName="SelectionAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/styles.ts": /*!**********************************************!*\ !*** ./src/components/modules/api/styles.ts ***! \**********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"classes",get:function(){return{block:"cdx-block",inlineToolButton:"ce-inline-tool",inlineToolButtonActive:"ce-inline-tool--active",input:"cdx-input",loader:"cdx-loader",button:"cdx-button",settingsButton:"cdx-settings-button",settingsButtonActive:"cdx-settings-button--active"}}}]),o}((d=c(d)).default);n.default=a,a.displayName="StylesAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/toolbar.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"classes",get:function(){return{block:"cdx-block",inlineToolButton:"ce-inline-tool",inlineToolButtonActive:"ce-inline-tool--active",input:"cdx-input",loader:"cdx-loader",button:"cdx-button",settingsButton:"cdx-settings-button",settingsButtonActive:"cdx-settings-button--active"}}}]),o}((d=a(d)).default);n.default=c,c.displayName="StylesAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/toolbar.ts": /*!***********************************************!*\ !*** ./src/components/modules/api/toolbar.ts ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"open",value:function(){this.Editor.Toolbar.open()}},{key:"close",value:function(){this.Editor.Toolbar.close()}},{key:"methods",get:function(){var e=this;return{close:function(){return e.close()},open:function(){return e.open()}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="ToolbarAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockEvents.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"open",value:function(){this.Editor.Toolbar.open()}},{key:"close",value:function(){this.Editor.Toolbar.close()}},{key:"methods",get:function(){var e=this;return{close:function(){return e.close()},open:function(){return e.open()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="ToolbarAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockEvents.ts": /*!***********************************************!*\ !*** ./src/components/modules/blockEvents.ts ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),c=f(c),a=f(a);var m=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"keydown",value:function(e){switch(this.beforeKeydownProcessing(e),e.keyCode){case c.default.keyCodes.BACKSPACE:this.backspace(e);break;case c.default.keyCodes.ENTER:this.enter(e);break;case c.default.keyCodes.DOWN:case c.default.keyCodes.RIGHT:this.arrowRightAndDown(e);break;case c.default.keyCodes.UP:case c.default.keyCodes.LEFT:this.arrowLeftAndUp(e);break;case c.default.keyCodes.TAB:this.tabPressed(e);break;case c.default.keyCodes.ESC:this.escapePressed(e);break;default:this.defaultHandler()}}},{key:"beforeKeydownProcessing",value:function(e){if(this.needToolbarClosing(e)){this.Editor.Toolbar.close();var o=e.ctrlKey||e.metaKey,t=e.altKey,n=e.shiftKey;o||t||n||(this.Editor.BlockManager.clearFocused(),e.keyCode!==c.default.keyCodes.ENTER&&e.keyCode!==c.default.keyCodes.BACKSPACE&&this.Editor.BlockSelection.clearSelection(!0))}}},{key:"keyup",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"mouseUp",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"tabPressed",value:function(e){var o=this.Editor.BlockManager.currentBlock;e.preventDefault(),e.stopPropagation();var t=e.shiftKey,n=t?"left":"right";this.Editor.Tools.isInitial(o.tool)&&(o.isEmpty&&(this.Editor.Toolbar.opened||(this.Editor.Toolbar.open(!1,!1),this.Editor.Toolbar.plusButton.show()),this.Editor.Toolbox.open()),this.Editor.Toolbox.opened&&this.Editor.Toolbox.leaf(n))}},{key:"escapePressed",value:function(e){}},{key:"dragOver",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!0}},{key:"dragLeave",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!1}},{key:"enter",value:function(e){var o=this.Editor.BlockManager.currentBlock,t=this.Editor.Tools.available[o.name];if(!t||!t[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){if(this.Editor.Toolbox.opened&&this.Editor.Toolbox.getActiveTool)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),void this.Editor.Toolbox.toolButtonActivate(e,this.Editor.Toolbox.getActiveTool);if(!e.shiftKey){var n=this.Editor.BlockManager.split();this.Editor.Caret.setToBlock(n),this.Editor.Tools.isInitial(n.tool)&&n.isEmpty&&(this.Editor.Toolbar.open(!1),this.Editor.Toolbar.plusButton.show()),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}}}},{key:"backspace",value:function(e){var o=this.Editor,t=o.BlockManager,n=o.BlockSelection,s=o.Caret,r=t.currentBlock,i=this.Editor.Tools.available[r.name];if(r.selected||t.currentBlock.isEmpty)return n.allBlocksSelected?this.removeAllBlocks():this.removeCurrentBlock(),void n.clearSelection();if(!i||!i[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){var l=0===t.currentBlockIndex,u=s.isAtStart&&!l;u&&(e.preventDefault(),this.mergeBlocks())}}},{key:"removeAllBlocks",value:function(){var e=this.Editor.BlockManager;return e.removeAllBlocks(),!0}},{key:"removeCurrentBlock",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret;return o.removeBlock(),0===o.currentBlockIndex?t.setToBlock(o.currentBlock):t.setToBlock(o.previousBlock,a.default.positions.END),this.Editor.Toolbar.close(),!0}},{key:"mergeBlocks",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret,n=e.Toolbar,s=o.getBlockByIndex(o.currentBlockIndex-1),r=o.currentBlock;r.name===s.name&&s.mergeable?(t.createShadow(s.pluginsContent),o.mergeBlocks(s,r).then(function(){t.restoreCaret(s.pluginsContent),s.pluginsContent.normalize(),n.close()})):t.navigatePrevious()&&n.close()}},{key:"arrowRightAndDown",value:function(e){this.Editor.Caret.navigateNext()&&e.preventDefault()}},{key:"arrowLeftAndUp",value:function(e){this.Editor.Caret.navigatePrevious()&&e.preventDefault()}},{key:"defaultHandler",value:function(){}},{key:"needToolbarClosing",value:function(e){var o=e.keyCode===c.default.keyCodes.ENTER&&this.Editor.Toolbox.opened,t=e.keyCode===c.default.keyCodes.TAB;return!(e.shiftKey||t||o)}}]),o}(d.default);n.default=m,m.displayName="BlockEvents",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockManager.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),a=f(a),c=f(c);var m=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"keydown",value:function(e){switch(this.beforeKeydownProcessing(e),e.keyCode){case a.default.keyCodes.BACKSPACE:this.backspace(e);break;case a.default.keyCodes.ENTER:this.enter(e);break;case a.default.keyCodes.DOWN:case a.default.keyCodes.RIGHT:this.arrowRightAndDown(e);break;case a.default.keyCodes.UP:case a.default.keyCodes.LEFT:this.arrowLeftAndUp(e);break;case a.default.keyCodes.TAB:this.tabPressed(e);break;case a.default.keyCodes.ESC:this.escapePressed(e);break;default:this.defaultHandler()}}},{key:"beforeKeydownProcessing",value:function(e){if(this.needToolbarClosing(e)){this.Editor.Toolbar.close();var o=e.ctrlKey||e.metaKey,t=e.altKey,n=e.shiftKey;o||t||n||(this.Editor.BlockManager.clearFocused(),e.keyCode!==a.default.keyCodes.ENTER&&e.keyCode!==a.default.keyCodes.BACKSPACE&&this.Editor.BlockSelection.clearSelection(!0))}}},{key:"keyup",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"mouseUp",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"tabPressed",value:function(e){var o=this.Editor.BlockManager.currentBlock;e.preventDefault(),e.stopPropagation();var t=e.shiftKey,n=t?"left":"right";this.Editor.Tools.isInitial(o.tool)&&(o.isEmpty&&(this.Editor.Toolbar.opened||(this.Editor.Toolbar.open(!1,!1),this.Editor.Toolbar.plusButton.show()),this.Editor.Toolbox.open()),this.Editor.Toolbox.opened&&this.Editor.Toolbox.leaf(n))}},{key:"escapePressed",value:function(e){}},{key:"dragOver",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!0}},{key:"dragLeave",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!1}},{key:"enter",value:function(e){var o=this.Editor.BlockManager.currentBlock,t=this.Editor.Tools.available[o.name];if(!t||!t[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){if(this.Editor.Toolbox.opened&&this.Editor.Toolbox.getActiveTool)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),void this.Editor.Toolbox.toolButtonActivate(e,this.Editor.Toolbox.getActiveTool);if(!e.shiftKey){var n=this.Editor.BlockManager.split();this.Editor.Caret.setToBlock(n),this.Editor.Tools.isInitial(n.tool)&&n.isEmpty&&(this.Editor.Toolbar.open(!1),this.Editor.Toolbar.plusButton.show()),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}}}},{key:"backspace",value:function(e){var o=this.Editor,t=o.BlockManager,n=o.BlockSelection,s=o.Caret,r=t.currentBlock,i=this.Editor.Tools.available[r.name];if(r.selected||t.currentBlock.isEmpty)return n.allBlocksSelected?this.removeAllBlocks():this.removeCurrentBlock(),void n.clearSelection();if(!i||!i[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){var l=0===t.currentBlockIndex,u=s.isAtStart&&!l;u&&(e.preventDefault(),this.mergeBlocks())}}},{key:"removeAllBlocks",value:function(){var e=this.Editor.BlockManager;return e.removeAllBlocks(),!0}},{key:"removeCurrentBlock",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret;return o.removeBlock(),0===o.currentBlockIndex?t.setToBlock(o.currentBlock):t.setToBlock(o.previousBlock,c.default.positions.END),this.Editor.Toolbar.close(),!0}},{key:"mergeBlocks",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret,n=e.Toolbar,s=o.getBlockByIndex(o.currentBlockIndex-1),r=o.currentBlock;r.name===s.name&&s.mergeable?(t.createShadow(s.pluginsContent),o.mergeBlocks(s,r).then(function(){t.restoreCaret(s.pluginsContent),s.pluginsContent.normalize(),n.close()})):t.navigatePrevious()&&n.close()}},{key:"arrowRightAndDown",value:function(e){this.Editor.Caret.navigateNext()&&e.preventDefault()}},{key:"arrowLeftAndUp",value:function(e){this.Editor.Caret.navigatePrevious()&&e.preventDefault()}},{key:"defaultHandler",value:function(){}},{key:"needToolbarClosing",value:function(e){var o=e.keyCode===a.default.keyCodes.ENTER&&this.Editor.Toolbox.opened,t=e.keyCode===a.default.keyCodes.TAB;return!(e.shiftKey||t||o)}}]),o}(d.default);n.default=m,m.displayName="BlockEvents",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockManager.ts": /*!************************************************!*\ !*** ./src/components/modules/blockManager.ts ***! \************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../block */"./src/components/block.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../blocks */"./src/components/blocks.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=j(s),r=j(r),i=j(i),l=j(l),u=j(u),d=j(d),c=j(c),a=j(a),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).currentBlockIndex=-1,e._blocks=null,e}return(0,c.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:o=new p.default(this.Editor.UI.nodes.redactor),this._blocks=new Proxy(o,{set:p.default.set,get:p.default.get});case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"composeBlock",value:function(e,o,t){var n=this.Editor.Tools.construct(e,o),s=this.Editor.Tools.available[e],r=new a.default(e,n,s,t,this.Editor.API.methods);return this.bindEvents(r),r}},{key:"insert",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.initialBlock,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=++this.currentBlockIndex,s=this.composeBlock(e,o,t);return this._blocks[n]=s,s}},{key:"insertAtEnd",value:function(){return this.currentBlockIndex=this.blocks.length-1,this.insert()}},{key:"mergeBlocks",value:function(){var e=(0,r.default)(s.default.mark(function e(o,t){var n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this._blocks.indexOf(t),!t.isEmpty){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,t.data;case 5:return r=e.sent,e.next=8,o.mergeWith(r);case 8:this.removeBlock(n),this.currentBlockIndex=this._blocks.indexOf(o);case 10:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()},{key:"removeBlock",value:function(e){e||(e=this.currentBlockIndex),this._blocks.remove(e),this.blocks.length||(this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus())}},{key:"removeAllBlocks",value:function(){for(var e=this.blocks.length-1;e>=0;e--)this._blocks.remove(e);this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus()}},{key:"split",value:function(){var e=this.Editor.Caret.extractFragmentFromCaretPosition(),o=m.default.make("div");o.append(e);var t={text:m.default.isEmpty(o)?"":o.innerHTML};return this.insert(this.config.initialBlock,t)}},{key:"replace",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=this.composeBlock(e,o);return this._blocks.insert(this.currentBlockIndex,t,!0),t}},{key:"getBlockByIndex",value:function(e){return this._blocks[e]}},{key:"getBlock",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=this._blocks.nodes,t=e.closest(".".concat(a.default.CSS.wrapper)),n=o.indexOf(t);if(n>=0)return this._blocks[n]}},{key:"highlightCurrentNode",value:function(){this.clearFocused(),this.currentBlock.focused=!0}},{key:"clearFocused",value:function(){this.blocks.forEach(function(e){return e.focused=!1})}},{key:"setCurrentBlockByChildNode",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.default.positions.DEFAULT;m.default.isElement(e)||(e=e.parentNode);var t=e.closest(".".concat(a.default.CSS.wrapper));if(!t)throw new Error("Can not find a Block from this child Node");this.currentBlockIndex=this._blocks.nodes.indexOf(t),this.Editor.Caret.setToInput(e,o)}},{key:"getBlockByChildNode",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=e.closest(".".concat(a.default.CSS.wrapper));return this.blocks.find(function(e){return e.holder===o})}},{key:"swap",value:function(e,o){this._blocks.swap(e,o),this.currentBlockIndex=o}},{key:"dropPointer",value:function(){this.currentBlockIndex=-1,this.clearFocused()}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._blocks.removeAll(),this.dropPointer(),e&&this.insert(this.config.initialBlock)}},{key:"bindEvents",value:function(e){var o=this.Editor,t=o.BlockEvents,n=o.Listeners;n.on(e.holder,"keydown",function(e){return t.keydown(e)},!0),n.on(e.holder,"mouseup",function(e){return t.mouseUp(e)}),n.on(e.holder,"keyup",function(e){return t.keyup(e)}),n.on(e.holder,"dragover",function(e){return t.dragOver(e)}),n.on(e.holder,"dragleave",function(e){return t.dragLeave(e)})}},{key:"lastBlock",get:function(){return this._blocks[this._blocks.length-1]}},{key:"currentBlock",get:function(){return this._blocks[this.currentBlockIndex]}},{key:"nextBlock",get:function(){var e=this.currentBlockIndex===this._blocks.length-1;return e?null:this._blocks[this.currentBlockIndex+1]}},{key:"nextContentfulBlock",get:function(){var e=this.blocks.slice(this.currentBlockIndex+1);return e.find(function(e){return!!e.inputs.length})}},{key:"previousContentfulBlock",get:function(){var e=this.blocks.slice(0,this.currentBlockIndex).reverse();return e.find(function(e){return!!e.inputs.length})}},{key:"previousBlock",get:function(){var e=0===this.currentBlockIndex;return e?null:this._blocks[this.currentBlockIndex-1]}},{key:"blocks",get:function(){return this._blocks.array}}]),o}(f.default);n.default=_,_.displayName="BlockManager",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockSelection.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../block */"./src/components/block.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../blocks */"./src/components/blocks.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).currentBlockIndex=-1,e._blocks=null,e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:o=new h.default(this.Editor.UI.nodes.redactor),this._blocks=new Proxy(o,{set:h.default.set,get:h.default.get});case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"composeBlock",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=this.Editor.Tools.construct(e,o),s=this.Editor.Tools.available[e],r=new c.default(e,n,s,t,this.Editor.API.methods);return this.bindEvents(r),r}},{key:"insert",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.initialBlock,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=++this.currentBlockIndex,s=this.composeBlock(e,o,t);return this._blocks[n]=s,s}},{key:"paste",value:function(e,o){var t,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=n?this.replace(e):this.insert(e);try{t.call("onPaste",o)}catch(o){p.default.log("".concat(e,": onPaste callback call is failed"),"error",o)}return t}},{key:"insertAtEnd",value:function(){return this.currentBlockIndex=this.blocks.length-1,this.insert()}},{key:"mergeBlocks",value:function(){var e=(0,r.default)(s.default.mark(function e(o,t){var n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this._blocks.indexOf(t),!t.isEmpty){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,t.data;case 5:return r=e.sent,e.next=8,o.mergeWith(r);case 8:this.removeBlock(n),this.currentBlockIndex=this._blocks.indexOf(o);case 10:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()},{key:"removeBlock",value:function(e){e||(e=this.currentBlockIndex),this._blocks.remove(e),this.blocks.length||(this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus())}},{key:"removeAllBlocks",value:function(){for(var e=this.blocks.length-1;e>=0;e--)this._blocks.remove(e);this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus()}},{key:"split",value:function(){var e=this.Editor.Caret.extractFragmentFromCaretPosition(),o=m.default.make("div");o.append(e);var t={text:m.default.isEmpty(o)?"":o.innerHTML};return this.insert(this.config.initialBlock,t)}},{key:"replace",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=this.composeBlock(e,o);return this._blocks.insert(this.currentBlockIndex,t,!0),t}},{key:"getBlockByIndex",value:function(e){return this._blocks[e]}},{key:"getBlock",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=this._blocks.nodes,t=e.closest(".".concat(c.default.CSS.wrapper)),n=o.indexOf(t);if(n>=0)return this._blocks[n]}},{key:"highlightCurrentNode",value:function(){this.clearFocused(),this.currentBlock.focused=!0}},{key:"clearFocused",value:function(){this.blocks.forEach(function(e){return e.focused=!1})}},{key:"setCurrentBlockByChildNode",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j.default.positions.DEFAULT;m.default.isElement(e)||(e=e.parentNode);var t=e.closest(".".concat(c.default.CSS.wrapper));if(!t)throw new Error("Can not find a Block from this child Node");this.currentBlockIndex=this._blocks.nodes.indexOf(t),this.Editor.Caret.setToInput(e,o)}},{key:"getBlockByChildNode",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=e.closest(".".concat(c.default.CSS.wrapper));return this.blocks.find(function(e){return e.holder===o})}},{key:"swap",value:function(e,o){this._blocks.swap(e,o),this.currentBlockIndex=o}},{key:"dropPointer",value:function(){this.currentBlockIndex=-1,this.clearFocused()}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._blocks.removeAll(),this.dropPointer(),e&&this.insert(this.config.initialBlock)}},{key:"bindEvents",value:function(e){var o=this.Editor,t=o.BlockEvents,n=o.Listeners;n.on(e.holder,"keydown",function(e){return t.keydown(e)},!0),n.on(e.holder,"mouseup",function(e){return t.mouseUp(e)}),n.on(e.holder,"keyup",function(e){return t.keyup(e)}),n.on(e.holder,"dragover",function(e){return t.dragOver(e)}),n.on(e.holder,"dragleave",function(e){return t.dragLeave(e)})}},{key:"lastBlock",get:function(){return this._blocks[this._blocks.length-1]}},{key:"currentBlock",get:function(){return this._blocks[this.currentBlockIndex]}},{key:"nextBlock",get:function(){var e=this.currentBlockIndex===this._blocks.length-1;return e?null:this._blocks[this.currentBlockIndex+1]}},{key:"nextContentfulBlock",get:function(){var e=this.blocks.slice(this.currentBlockIndex+1);return e.find(function(e){return!!e.inputs.length})}},{key:"previousContentfulBlock",get:function(){var e=this.blocks.slice(0,this.currentBlockIndex).reverse();return e.find(function(e){return!!e.inputs.length})}},{key:"previousBlock",get:function(){var e=0===this.currentBlockIndex;return e?null:this._blocks[this.currentBlockIndex-1]}},{key:"blocks",get:function(){return this._blocks.array}}]),o}(f.default);n.default=b,b.displayName="BlockManager",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockSelection.ts": /*!**************************************************!*\ !*** ./src/components/modules/blockSelection.ts ***! \**************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).needToSelectAll=!1,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"prepare",value:function(){var e=this,o=this.Editor.Shortcuts;o.add({name:"CMD+A",handler:function(o){e.handleCommandA(o)}}),o.add({name:"CMD+C",handler:function(o){e.handleCommandC(o)}}),this.selection=new f.default}},{key:"clearSelection",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.Editor.BlockManager,t=o.blocks.some(function(e){return!0===e.selected});this.allBlocksSelected=!1,this.needToSelectAll=!1,t&&e&&this.selection.restore()}},{key:"handleCommandA",value:function(e){e.preventDefault(),this.needToSelectAll?(this.selectAllBlocks(),this.needToSelectAll=!1):(this.selectBlockByIndex(),this.needToSelectAll=!0)}},{key:"handleCommandC",value:function(e){var o=this,t=this.Editor,n=t.BlockManager,s=t.Sanitizer,r=n.blocks.some(function(e){return!0===e.selected});if(r){var i=a.default.make("div");n.blocks.filter(function(e){return e.selected}).forEach(function(e){var t=s.clean(e.holder.innerHTML,o.sanitizerConfig),n=a.default.make("p");n.innerHTML=t,i.appendChild(n)}),c.default.copyTextToClipboard(i.innerHTML)}}},{key:"selectAllBlocks",value:function(){this.Editor.BlockManager,this.allBlocksSelected=!0}},{key:"selectBlockByIndex",value:function(e){var o,t=this.Editor.BlockManager;t.clearFocused(),o=isNaN(e)?t.currentBlock:t.getBlockByIndex(e),this.selection.save(),f.default.get().removeAllRanges(),o.selected=!0}},{key:"sanitizerConfig",get:function(){return{p:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},ol:{},ul:{},li:{},br:!0,img:{src:!0,width:!0,height:!0},a:{href:!0},b:{},i:{},u:{}}}},{key:"allBlocksSelected",get:function(){var e=this.Editor.BlockManager;return e.blocks.every(function(e){return!0===e.selected})},set:function(e){var o=this.Editor.BlockManager;o.blocks.forEach(function(o){return o.selected=e})}}]),o}(d.default);n.default=p,p.displayName="BlockSelection",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/caret.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).needToSelectAll=!1,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"prepare",value:function(){var e=this,o=this.Editor.Shortcuts;o.add({name:"CMD+A",handler:function(o){e.handleCommandA(o)}}),o.add({name:"CMD+C",handler:function(o){e.handleCommandC(o)}}),this.selection=new f.default}},{key:"clearSelection",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.Editor.BlockManager,t=o.blocks.some(function(e){return!0===e.selected});this.allBlocksSelected=!1,this.needToSelectAll=!1,t&&e&&this.selection.restore()}},{key:"handleCommandA",value:function(e){e.preventDefault(),this.needToSelectAll?(this.selectAllBlocks(),this.needToSelectAll=!1):(this.selectBlockByIndex(),this.needToSelectAll=!0)}},{key:"handleCommandC",value:function(e){var o=this,t=this.Editor,n=t.BlockManager,s=t.Sanitizer,r=n.blocks.some(function(e){return!0===e.selected});if(r){var i=c.default.make("div");n.blocks.filter(function(e){return e.selected}).forEach(function(e){var t=s.clean(e.holder.innerHTML,o.sanitizerConfig),n=c.default.make("p");n.innerHTML=t,i.appendChild(n)}),a.default.copyTextToClipboard(i.innerHTML)}}},{key:"selectAllBlocks",value:function(){this.Editor.BlockManager,this.allBlocksSelected=!0}},{key:"selectBlockByIndex",value:function(e){var o,t=this.Editor.BlockManager;t.clearFocused(),o=isNaN(e)?t.currentBlock:t.getBlockByIndex(e),this.selection.save(),f.default.get().removeAllRanges(),o.selected=!0}},{key:"sanitizerConfig",get:function(){return{p:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},ol:{},ul:{},li:{},br:!0,img:{src:!0,width:!0,height:!0},a:{href:!0},b:{},i:{},u:{}}}},{key:"allBlocksSelected",get:function(){var e=this.Editor.BlockManager;return e.blocks.every(function(e){return!0===e.selected})},set:function(e){var o=this.Editor.BlockManager;o.blocks.forEach(function(o){return o.selected=e})}}]),o}(d.default);n.default=p,p.displayName="BlockSelection",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/caret.ts": /*!*****************************************!*\ !*** ./src/components/modules/caret.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"setToBlock",value:function(e){var t,n=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=this.Editor.BlockManager;switch(s){case o.positions.START:t=e.firstInput;break;case o.positions.END:t=e.lastInput;break;default:t=e.currentInput}if(t){var l=a.default.getDeepestNode(t,s===o.positions.END),u=a.default.getContentLength(l);switch(!0){case s===o.positions.START:r=0;break;case s===o.positions.END:case r>u:r=u}f.default.delay(function(){n.set(l,r)},20)(),i.setCurrentBlockByChildNode(e.holder),i.currentBlock.currentInput=t}}},{key:"setToInput",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=this.Editor.BlockManager.currentBlock,r=a.default.getDeepestNode(e);switch(t){case o.positions.START:this.set(r,0);break;case o.positions.END:var i=a.default.getContentLength(r);this.set(r,i);break;default:n&&this.set(r,n)}s.currentInput=e}},{key:"set",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=document.createRange(),n=d.default.get();if(a.default.isNativeInput(e))return e.focus(),void(e.selectionStart=e.selectionEnd=o);t.setStart(e,o),t.setEnd(e,o),n.removeAllRanges(),n.addRange(t);var s=t.getBoundingClientRect(),r=s.top,i=s.bottom,l=window,u=l.innerHeight;r<0&&window.scrollBy(0,r),i>u&&window.scrollBy(0,i-u)}},{key:"setToTheLastBlock",value:function(){var e=this.Editor.BlockManager.lastBlock;if(e)if(e.isEmpty)this.setToBlock(e);else{var o=this.Editor.BlockManager.insertAtEnd();this.setToBlock(o)}}},{key:"extractFragmentFromCaretPosition",value:function(){var e=d.default.get();if(e.rangeCount){var o=e.getRangeAt(0),t=this.Editor.BlockManager.currentBlock.currentInput;if(o.deleteContents(),t){var n=o.cloneRange();return n.selectNodeContents(t),n.setStart(o.endContainer,o.endOffset),n.extractContents()}}}},{key:"navigateNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.nextContentfulBlock,r=n.nextInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.START),0):!this.isAtEnd||(r?this.setToInput(r,o.positions.START):this.setToBlock(s,o.positions.START),0)))}},{key:"navigatePrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.previousContentfulBlock;if(!n)return!1;var r=n.previousInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.END),0):!this.isAtStart||(r?this.setToInput(r,o.positions.END):this.setToBlock(s,o.positions.END),0)))}},{key:"createShadow",value:function(e){var t=document.createElement("span");t.classList.add(o.CSS.shadowCaret),e.insertAdjacentElement("beforeEnd",t)}},{key:"restoreCaret",value:function(e){var t=e.querySelector(".".concat(o.CSS.shadowCaret));if(t){var n=new d.default;n.expandToTag(t),setTimeout(function(){var e=document.createRange();e.selectNode(t),e.extractContents()},50)}}},{key:"getHigherLevelSiblings",value:function(e,o){for(var t=e,n=[];t.parentNode&&"true"!==t.parentNode.contentEditable;)t=t.parentNode;for(var s="left"===o?"previousSibling":"nextSibling";t[s];)t=t[s],n.push(t);return n}},{key:"isAtStart",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=a.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);if(a.default.isNativeInput(t))return 0===t.selectionEnd;var n=o.textContent.search(/\S/);if(-1===n&&(n=0),a.default.isEmpty(t)){var s=this.getHigherLevelSiblings(o,"left"),r=s.every(function(e){return a.default.isEmpty(e)});if(r&&e.anchorOffset===n)return!0}return null===t||o===t&&e.anchorOffset<=n}},{key:"isAtEnd",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=a.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput,!0);if(a.default.isNativeInput(t))return t.selectionEnd===t.value.length;if(a.default.isEmpty(t)){var n=this.getHigherLevelSiblings(o,"right"),s=n.every(function(e){return a.default.isEmpty(e)});if(s&&e.anchorOffset===o.textContent.length)return!0}var r=t.textContent.replace(/\s+$/,"");return o===t&&e.anchorOffset>=r.length}}],[{key:"positions",get:function(){return{START:"start",END:"end",DEFAULT:"default"}}},{key:"CSS",get:function(){return{shadowCaret:"cdx-shadow-caret"}}}]),o}(c.default);n.default=p,p.displayName="Caret",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/dragNDrop.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"setToBlock",value:function(e){var t,n=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=this.Editor.BlockManager;switch(s){case o.positions.START:t=e.firstInput;break;case o.positions.END:t=e.lastInput;break;default:t=e.currentInput}if(t){var l=c.default.getDeepestNode(t,s===o.positions.END),u=c.default.getContentLength(l);switch(!0){case s===o.positions.START:r=0;break;case s===o.positions.END:case r>u:r=u}f.default.delay(function(){n.set(l,r)},20)(),i.setCurrentBlockByChildNode(e.holder),i.currentBlock.currentInput=t}}},{key:"setToInput",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=this.Editor.BlockManager.currentBlock,r=c.default.getDeepestNode(e);switch(t){case o.positions.START:this.set(r,0);break;case o.positions.END:var i=c.default.getContentLength(r);this.set(r,i);break;default:n&&this.set(r,n)}s.currentInput=e}},{key:"set",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=document.createRange(),n=d.default.get();if(c.default.isNativeInput(e))return e.focus(),void(e.selectionStart=e.selectionEnd=o);t.setStart(e,o),t.setEnd(e,o),n.removeAllRanges(),n.addRange(t);var s=t.getBoundingClientRect(),r=s.top,i=s.bottom,l=window,u=l.innerHeight;r<0&&window.scrollBy(0,r),i>u&&window.scrollBy(0,i-u)}},{key:"setToTheLastBlock",value:function(){var e=this.Editor.BlockManager.lastBlock;if(e)if(e.isEmpty)this.setToBlock(e);else{var o=this.Editor.BlockManager.insertAtEnd();this.setToBlock(o)}}},{key:"extractFragmentFromCaretPosition",value:function(){var e=d.default.get();if(e.rangeCount){var o=e.getRangeAt(0),t=this.Editor.BlockManager.currentBlock.currentInput;if(o.deleteContents(),t){var n=o.cloneRange();return n.selectNodeContents(t),n.setStart(o.endContainer,o.endOffset),n.extractContents()}}}},{key:"navigateNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.nextContentfulBlock,r=n.nextInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.START),0):!this.isAtEnd||(r?this.setToInput(r,o.positions.START):this.setToBlock(s,o.positions.START),0)))}},{key:"navigatePrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.previousContentfulBlock;if(!n)return!1;var r=n.previousInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.END),0):!this.isAtStart||(r?this.setToInput(r,o.positions.END):this.setToBlock(s,o.positions.END),0)))}},{key:"createShadow",value:function(e){var t=document.createElement("span");t.classList.add(o.CSS.shadowCaret),e.insertAdjacentElement("beforeEnd",t)}},{key:"restoreCaret",value:function(e){var t=e.querySelector(".".concat(o.CSS.shadowCaret));if(t){var n=new d.default;n.expandToTag(t),setTimeout(function(){var e=document.createRange();e.selectNode(t),e.extractContents()},50)}}},{key:"getHigherLevelSiblings",value:function(e,o){for(var t=e,n=[];t.parentNode&&"true"!==t.parentNode.contentEditable;)t=t.parentNode;for(var s="left"===o?"previousSibling":"nextSibling";t[s];)t=t[s],n.push(t);return n}},{key:"isAtStart",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=c.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);if(c.default.isNativeInput(t))return 0===t.selectionEnd;var n=o.textContent.search(/\S/);if(-1===n&&(n=0),c.default.isEmpty(t)){var s=this.getHigherLevelSiblings(o,"left"),r=s.every(function(e){return c.default.isEmpty(e)});if(r&&e.anchorOffset===n)return!0}return null===t||o===t&&e.anchorOffset<=n}},{key:"isAtEnd",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=c.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput,!0);if(c.default.isNativeInput(t))return t.selectionEnd===t.value.length;if(c.default.isEmpty(t)){var n=this.getHigherLevelSiblings(o,"right"),s=n.every(function(e){return c.default.isEmpty(e)});if(s&&e.anchorOffset===o.textContent.length)return!0}var r=t.textContent.replace(/\s+$/,"");return o===t&&e.anchorOffset>=r.length}}],[{key:"positions",get:function(){return{START:"start",END:"end",DEFAULT:"default"}}},{key:"CSS",get:function(){return{shadowCaret:"cdx-shadow-caret"}}}]),o}(a.default);n.default=p,p.displayName="Caret",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/dragNDrop.ts": /*!*********************************************!*\ !*** ./src/components/modules/dragNDrop.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),c=p(c),a=p(a),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).isStartedAtEditor=!1,e.processDrop=function(){var o=(0,r.default)(s.default.mark(function o(t){var n,r,i;return s.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=e.Editor,r=n.BlockManager,i=n.Paste,t.preventDefault(),r.blocks.forEach(function(e){return e.dropTarget=!1}),a.default.isAtEditor&&!a.default.isCollapsed&&e.isStartedAtEditor&&document.execCommand("delete"),e.isStartedAtEditor=!1;try{r.setCurrentBlockByChildNode(t.target,m.default.positions.END)}catch(e){r.setCurrentBlockByChildNode(r.lastBlock.holder,m.default.positions.END)}i.processDataTransfer(t.dataTransfer,!0);case 7:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,c.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){this.bindEvents()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"drop",this.processDrop,!0),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragstart",function(o){a.default.isAtEditor&&!a.default.isCollapsed&&(e.isStartedAtEditor=!0),e.Editor.InlineToolbar.close()}),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragover",function(e){return e.preventDefault()},!0)}}]),o}(f.default);n.default=h,h.displayName="DragNDrop",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/events.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),a=p(a),c=p(c),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).isStartedAtEditor=!1,e.processDrop=function(){var o=(0,r.default)(s.default.mark(function o(t){var n,r,i;return s.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=e.Editor,r=n.BlockManager,i=n.Paste,t.preventDefault(),r.blocks.forEach(function(e){return e.dropTarget=!1}),c.default.isAtEditor&&!c.default.isCollapsed&&e.isStartedAtEditor&&document.execCommand("delete"),e.isStartedAtEditor=!1;try{r.setCurrentBlockByChildNode(t.target,m.default.positions.END)}catch(e){r.setCurrentBlockByChildNode(r.lastBlock.holder,m.default.positions.END)}i.processDataTransfer(t.dataTransfer,!0);case 7:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){this.bindEvents()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"drop",this.processDrop,!0),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragstart",function(o){c.default.isAtEditor&&!c.default.isCollapsed&&(e.isStartedAtEditor=!0),e.Editor.InlineToolbar.close()}),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragover",function(e){return e.preventDefault()},!0)}}]),o}(f.default);n.default=h,h.displayName="DragNDrop",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/events.ts": /*!******************************************!*\ !*** ./src/components/modules/events.ts ***! \******************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).subscribers={},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o){e in this.subscribers||(this.subscribers[e]=[]),this.subscribers[e].push(o)}},{key:"emit",value:function(e,o){this.subscribers[e]&&this.subscribers[e].reduce(function(e,o){var t=o(e);return t||e},o)}},{key:"off",value:function(e,o){for(var t=0;t3&&void 0!==arguments[3]&&arguments[3],s={element:e,eventType:o,handler:t,useCapture:n},r=this.findOne(e,o,t);r||(this.allListeners.push(s),e.addEventListener(o,t,n))}},{key:"off",value:function(e,o,t){var n=this,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.findAll(e,o,t);r.forEach(function(e,o){var t=n.allListeners.indexOf(r[o]);t>0&&n.allListeners.splice(t,1)}),e.removeEventListener(o,t,s)}},{key:"findOne",value:function(e,o,t){var n=this.findAll(e,o,t);return n.length>0?n[0]:null}},{key:"findAll",value:function(e,o,t){var n=e?this.findByEventTarget(e):[];return e&&o&&t?n.filter(function(e){return e.eventType===o&&e.handler===t}):e&&o?n.filter(function(e){return e.eventType===o}):n}},{key:"removeAll",value:function(){this.allListeners.map(function(e){e.element.removeEventListener(e.eventType,e.handler)}),this.allListeners=[]}},{key:"findByEventTarget",value:function(e){return this.allListeners.filter(function(o){if(o.element===e)return o})}},{key:"findByType",value:function(e){return this.allListeners.filter(function(o){if(o.eventType===e)return o})}},{key:"findByHandler",value:function(e){return this.allListeners.filter(function(o){if(o.handler===e)return o})}}]),o}((d=c(d)).default);n.default=a,a.displayName="Listeners",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/modificationsObserver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).allListeners=[],e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o,t){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s={element:e,eventType:o,handler:t,useCapture:n},r=this.findOne(e,o,t);r||(this.allListeners.push(s),e.addEventListener(o,t,n))}},{key:"off",value:function(e,o,t){var n=this,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.findAll(e,o,t);r.forEach(function(e,o){var t=n.allListeners.indexOf(r[o]);t>0&&n.allListeners.splice(t,1)}),e.removeEventListener(o,t,s)}},{key:"findOne",value:function(e,o,t){var n=this.findAll(e,o,t);return n.length>0?n[0]:null}},{key:"findAll",value:function(e,o,t){var n=e?this.findByEventTarget(e):[];return e&&o&&t?n.filter(function(e){return e.eventType===o&&e.handler===t}):e&&o?n.filter(function(e){return e.eventType===o}):n}},{key:"removeAll",value:function(){this.allListeners.map(function(e){e.element.removeEventListener(e.eventType,e.handler)}),this.allListeners=[]}},{key:"findByEventTarget",value:function(e){return this.allListeners.filter(function(o){if(o.element===e)return o})}},{key:"findByType",value:function(e){return this.allListeners.filter(function(o){if(o.eventType===e)return o})}},{key:"findByHandler",value:function(e){return this.allListeners.filter(function(o){if(o.handler===e)return o})}}]),o}((d=a(d)).default);n.default=c,c.displayName="Listeners",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/modificationsObserver.ts": /*!*********************************************************!*\ !*** ./src/components/modules/modificationsObserver.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).mutationDebouncer=f.default.debounce(function(){e.config.onChange()},o.DebounceTimer),e}return(0,c.default)(o,e),(0,l.default)(o,[{key:"destroy",value:function(){this.mutationDebouncer=null}},{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.setTimeout(function(){o.setObserver()},1e3);case 1:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"setObserver",value:function(){var e=this,o=this.Editor,t=o.Listeners,n=o.UI;t.on(n.nodes.redactor,"DOMSubtreeModified",function(){e.mutationDebouncer()},!1)}}]),o}(a.default);n.default=p,p.displayName="ModificationsObserver",p.DebounceTimer=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/notifier.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).mutationDebouncer=f.default.debounce(function(){e.config.onChange()},o.DebounceTimer),e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"destroy",value:function(){this.mutationDebouncer=null}},{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.setTimeout(function(){o.setObserver()},1e3);case 1:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"setObserver",value:function(){var e=this,o=this.Editor,t=o.Listeners,n=o.UI;t.on(n.nodes.redactor,"DOMSubtreeModified",function(){e.mutationDebouncer()},!1)}}]),o}(c.default);n.default=p,p.displayName="ModificationsObserver",p.DebounceTimer=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/notifier.ts": /*!********************************************!*\ !*** ./src/components/modules/notifier.ts ***! \********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! codex-notifier */"./node_modules/codex-notifier/dist/bundle.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){c.default.show(e)}}]),o}(d.default);n.default=f,f.displayName="Notifier",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/paste.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! codex-notifier */"./node_modules/codex-notifier/dist/bundle.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){a.default.show(e)}}]),o}(d.default);n.default=f,f.displayName="Notifier",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/paste.ts": /*!*****************************************!*\ !*** ./src/components/modules/paste.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/toConsumableArray */"./node_modules/@babel/runtime/helpers/toConsumableArray.js"),t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ./caret */"./src/components/modules/caret.ts"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m,p,h,j,_){"use strict";var v=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=v(s),r=v(r),i=v(i),l=v(l),u=v(u),d=v(d),c=v(c),a=v(a),f=v(f),m=v(m),p=v(p),h=v(h),j=v(j),_=v(_);var b=function(e){function o(){var e;return(0,u.default)(this,o),(e=(0,c.default)(this,(0,a.default)(o).apply(this,arguments))).toolsTags={},e.tagsByTool={},e.toolsPatterns=[],e.toolsFiles={},e.processTool=function(o){var t=(0,l.default)(o,2),n=t[0],s=t[1];try{var r=s.onPaste||{};e.getTagsConfig(n,r),e.getFilesConfig(n,r),e.getPatternsConfig(n,r)}catch(e){_.default.log("Paste handling for «".concat(n,"» Tool hasn't been set up because of the error"),"warn",e)}},e.handlePasteEvent=function(){var o=(0,i.default)(r.default.mark(function o(t){return r.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(!e.isNativeBehaviour(t.target)||t.clipboardData.types.includes("Files")){o.next=2;break}return o.abrupt("return");case 2:t.preventDefault(),e.processDataTransfer(t.clipboardData);case 4:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,f.default)(o,e),(0,d.default)(o,[{key:"prepare",value:function(){var e=(0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.setCallback(),this.processTools();case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"processDataTransfer",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,i,l,u,d,c=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=c.length>1&&void 0!==c[1]&&c[1],n=this.Editor.Sanitizer,!o.types.includes("Files")){e.next=6;break}return e.next=5,this.processFiles(o.items);case 5:return e.abrupt("return");case 6:if(s=o.getData("text/plain"),i=o.getData("text/html"),t&&s.trim()&&i.trim()&&(i="

"+(i.trim()?i:s)+"

"),l=Object.keys(this.toolsTags).reduce(function(e,o){return e[o.toLowerCase()]=!0,e},{}),u=Object.assign({},l,n.getAllInlineToolsConfig()),(d=n.clean(i,u)).trim()&&d.trim()!==s&&j.default.isHTMLString(d)){e.next=17;break}return e.next=15,this.processText(s);case 15:e.next=19;break;case 17:return e.next=19,this.processText(d,!0);case 19:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"setCallback",value:function(){var e=this.Editor,o=e.Listeners,t=e.UI;o.on(t.nodes.redactor,"paste",this.handlePasteEvent)}},{key:"processTools",value:function(){var e=this.Editor.Tools.blockTools;Object.entries(e).forEach(this.processTool)}},{key:"getTagsConfig",value:function(e,o){var t=this;if(this.config.initialBlock!==e||o.handler||_.default.log("«".concat(e,"» Tool must provide a paste handler."),"warn"),o.handler)if("function"==typeof o.handler){var n=o.tags||[];n.forEach(function(n){t.toolsTags.hasOwnProperty(n)?_.default.log("Paste handler for «".concat(e,"» Tool on «").concat(n,"» tag is skipped ")+"because it is already used by «".concat(t.toolsTags[n].tool,"» Tool."),"warn"):t.toolsTags[n.toUpperCase()]={handler:o.handler,tool:e}}),this.tagsByTool[e]=n.map(function(e){return e.toUpperCase()})}else _.default.log("Paste handler for «".concat(e,"» Tool should be a function."),"warn")}},{key:"getFilesConfig",value:function(e,o){var t=o.fileHandler,n=o.files,s=void 0===n?{}:n,r=s.extensions,i=s.mimeTypes;t&&(r||i)&&("function"==typeof t?(r&&!Array.isArray(r)&&(_.default.log("«extensions» property of the onDrop config for «".concat(e,"» Tool should be an array")),r=[]),i&&!Array.isArray(i)&&(_.default.log("«mimeTypes» property of the onDrop config for «".concat(e,"» Tool should be an array")),i=[]),i&&(i=i.filter(function(o){return!!_.default.isValidMimeType(o)||(_.default.log("MIME type value «".concat(o,"» for the «").concat(e,"» Tool is not a valid MIME type"),"warn"),!1)})),this.toolsFiles[e]={extensions:r||[],mimeTypes:i||[],handler:t}):_.default.log("Drop handler for «".concat(e,"» Tool should be a function.")))}},{key:"getPatternsConfig",value:function(e,o){var t=this;o.patternHandler&&!_.default.isEmpty(o.patterns)&&("function"==typeof o.patternHandler?Object.entries(o.patterns).forEach(function(n){var s=(0,l.default)(n,2),r=s[0],i=s[1];i instanceof RegExp||_.default.log("Pattern ".concat(i," for «").concat(e,"» Tool is skipped because it should be a Regexp instance."),"warn"),t.toolsPatterns.push({key:r,pattern:i,handler:o.patternHandler,tool:e})}):_.default.log("Pattern parser for «".concat(e,"» Tool should be a function."),"warn"))}},{key:"isNativeBehaviour",value:function(e){var o=this.Editor.BlockManager;if(j.default.isNativeInput(e))return!0;var t=o.getBlock(e);return!t}},{key:"processFiles",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n=this;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.Editor.BlockManager,e.next=3,Promise.all(Array.from(o).map(function(e){return n.processFile(e)}));case 3:e.sent.filter(function(e){return!!e}).forEach(function(e,o){0===o&&t.currentBlock&&t.currentBlock.isEmpty?t.replace(e.type,e.data):t.insert(e.type,e.data)});case 6:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processFile",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,i,u,d;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!==o.kind){e.next=2;break}return e.abrupt("return");case 2:if(t=o.getAsFile(),n=_.default.getFileExtension(t),s=Object.entries(this.toolsFiles).find(function(e){var o=(0,l.default)(e,2),s=(o[0],o[1]),r=s.mimeTypes,i=s.extensions,u=t.type.split("/"),d=(0,l.default)(u,2),c=d[0],a=d[1],f=i.find(function(e){return e.toLowerCase()===n.toLowerCase()}),m=r.find(function(e){var o=e.split("/"),t=(0,l.default)(o,2),n=t[0],s=t[1];return n===c&&(s===a||"*"===s)});return!!f||!!m})){e.next=7;break}return e.abrupt("return");case 7:return i=(0,l.default)(s,2),u=i[0],d=i[1].handler,e.next=10,d(t);case 10:return e.t0=e.sent,e.t1=u,e.abrupt("return",{data:e.t0,type:e.t1});case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processText",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,l,u,d=this,c=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=c.length>1&&void 0!==c[1]&&c[1],n=this.Editor,s=n.Caret,l=n.BlockManager,(u=t?this.processHTML(o):this.processPlain(o)).length){e.next=5;break}return e.abrupt("return");case 5:if(1!==u.length||u[0].isBlock){e.next=8;break}return this.processSingleBlock(u.pop()),e.abrupt("return");case 8:return p.default.isAtEditor&&!s.isAtEnd&&p.default.isCollapsed&&this.splitBlock(),e.next=11,Promise.all(u.map(function(){var e=(0,i.default)(r.default.mark(function e(o,t){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.insertBlock(o,0===t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()));case 11:s.setToBlock(l.currentBlock,m.default.positions.END);case 12:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processHTML",value:function(e){var o=this,t=this.Editor,n=t.Tools,s=t.Sanitizer,r=this.config.initialBlock,i=j.default.make("DIV");i.innerHTML=e;var l=this.getNodes(i);return l.map(function(e){var t,i=r,l=!1;switch(e.nodeType){case Node.DOCUMENT_FRAGMENT_NODE:(t=j.default.make("div")).appendChild(e);break;case Node.ELEMENT_NODE:t=e,l=!0,o.toolsTags[t.tagName]&&(i=o.toolsTags[t.tagName].tool)}var u=n.blockTools[i].onPaste,d=u.handler,c=u.tags,a=c.reduce(function(e,o){return e[o.toLowerCase()]={},e},{}),f=Object.assign({},a,s.getInlineToolsConfig(i));return t.innerHTML=s.clean(t.innerHTML,f),{content:t,isBlock:l,handler:d,tool:i}}).filter(function(e){return!j.default.isNodeEmpty(e.content)||j.default.isSingleTag(e.content)})}},{key:"processPlain",value:function(e){var o=this.config.initialBlock,t=this.Editor.Tools;if(!e)return[];var n=o,s=t.blockTools[n].onPaste.handler;return e.split(/\r?\n/).filter(function(e){return e.trim()}).map(function(e){var o=j.default.make("div");return o.innerHTML=e,{content:o,tool:n,isBlock:!1,handler:s}})}},{key:"processSingleBlock",value:function(){var e=(0,i.default)(r.default.mark(function e(t){var n,s,i,l,u,d,c,a,f,p,h;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.config.initialBlock,s=this.Editor,i=s.BlockManager,l=s.Caret,u=s.Sanitizer,d=t.content,!((c=t.tool)===n&&d.textContent.length1&&void 0!==c[1]&&c[1],e.next=3,o.handler(o.content);case 3:if(n=e.sent,s=this.Editor,i=s.BlockManager,l=s.Caret,u=i.currentBlock,!(t&&u&&u.isEmpty)){e.next=11;break}return i.replace(o.tool,n),e.abrupt("return");case 11:d=i.insert(o.tool,n),l.setToBlock(d);case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"splitBlock",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret;o.currentBlock&&(o.currentBlock.isEmpty||t.isAtEnd||(o.split(),o.currentBlockIndex--))}},{key:"getNodes",value:function(e){var o=this,t=Array.from(e.childNodes),n=Object.keys(this.toolsTags);return t.reduce(function e(t,r){if(j.default.isEmpty(r)&&!j.default.isSingleTag(r))return t;var i=t[t.length-1],l=new DocumentFragment;switch(i&&j.default.isFragment(i)&&(l=t.pop()),r.nodeType){case Node.ELEMENT_NODE:var u=r,d=o.toolsTags[u.tagName]||{},c=d.tool,a=void 0===c?"":c,f=o.tagsByTool[a]||[],m=n.includes(u.tagName),p=j.default.blockElements.includes(u.tagName.toLowerCase()),h=Array.from(u.children).some(function(e){var o=e.tagName;return n.includes(o)&&!f.includes(o)}),_=Array.from(u.children).some(function(e){var o=e.tagName;return j.default.blockElements.includes(o.toLowerCase())});if(!p&&!m)return l.appendChild(u),(0,s.default)(t).concat([l]);if(m&&!h||p&&!_&&!h)return(0,s.default)(t).concat([l,u]);break;case Node.TEXT_NODE:return l.appendChild(r),(0,s.default)(t).concat([l]);default:return(0,s.default)(t).concat([l])}return(0,s.default)(t).concat((0,s.default)(Array.from(r.childNodes).reduce(e,[])))},[])}}]),o}(h.default);n.default=b,b.displayName="Paste",b.PATTERN_PROCESSING_MAX_LENGTH=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/renderer.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/toConsumableArray */"./node_modules/@babel/runtime/helpers/toConsumableArray.js"),t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ./caret */"./src/components/modules/caret.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(){var e;return(0,u.default)(this,o),(e=(0,a.default)(this,(0,c.default)(o).apply(this,arguments))).toolsTags={},e.tagsByTool={},e.toolsPatterns=[],e.toolsFiles={},e.processTool=function(o){var t=(0,l.default)(o,2),n=t[0],s=t[1];try{var r=new e.Editor.Tools.blockTools[n]({api:e.Editor.API.methods,config:{},data:{}});if(!r.onPaste||"function"!=typeof r.onPaste)return;var i=s.pasteConfig||{};e.getTagsConfig(n,i),e.getFilesConfig(n,i),e.getPatternsConfig(n,i)}catch(e){j.default.log("Paste handling for «".concat(n,"» Tool hasn't been set up because of the error"),"warn",e)}},e.handlePasteEvent=function(){var o=(0,i.default)(r.default.mark(function o(t){return r.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(!e.isNativeBehaviour(t.target)||t.clipboardData.types.includes("Files")){o.next=2;break}return o.abrupt("return");case 2:t.preventDefault(),e.processDataTransfer(t.clipboardData);case 4:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,f.default)(o,e),(0,d.default)(o,[{key:"prepare",value:function(){var e=(0,i.default)(r.default.mark(function e(){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.setCallback(),this.processTools();case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"processDataTransfer",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,i,l,u,d,a=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>1&&void 0!==a[1]&&a[1],n=this.Editor.Sanitizer,!o.types.includes("Files")){e.next=6;break}return e.next=5,this.processFiles(o.files);case 5:return e.abrupt("return");case 6:if(s=o.getData("text/plain"),i=o.getData("text/html"),t&&s.trim()&&i.trim()&&(i="

"+(i.trim()?i:s)+"

"),l=Object.keys(this.toolsTags).reduce(function(e,o){return e[o.toLowerCase()]=!0,e},{}),u=Object.assign({},l,n.getAllInlineToolsConfig()),(d=n.clean(i,u)).trim()&&d.trim()!==s&&h.default.isHTMLString(d)){e.next=17;break}return e.next=15,this.processText(s);case 15:e.next=19;break;case 17:return e.next=19,this.processText(d,!0);case 19:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"setCallback",value:function(){var e=this.Editor,o=e.Listeners,t=e.UI;o.on(t.nodes.redactor,"paste",this.handlePasteEvent)}},{key:"processTools",value:function(){var e=this.Editor.Tools.blockTools;Object.entries(e).forEach(this.processTool)}},{key:"getTagsConfig",value:function(e,o){var t=this,n=o.tags||[];n.forEach(function(o){t.toolsTags.hasOwnProperty(o)?j.default.log("Paste handler for «".concat(e,"» Tool on «").concat(o,"» tag is skipped ")+"because it is already used by «".concat(t.toolsTags[o].tool,"» Tool."),"warn"):t.toolsTags[o.toUpperCase()]={tool:e}}),this.tagsByTool[e]=n.map(function(e){return e.toUpperCase()})}},{key:"getFilesConfig",value:function(e,o){var t=o.files,n=void 0===t?{}:t,s=n.extensions,r=n.mimeTypes;(s||r)&&(s&&!Array.isArray(s)&&(j.default.log("«extensions» property of the onDrop config for «".concat(e,"» Tool should be an array")),s=[]),r&&!Array.isArray(r)&&(j.default.log("«mimeTypes» property of the onDrop config for «".concat(e,"» Tool should be an array")),r=[]),r&&(r=r.filter(function(o){return!!j.default.isValidMimeType(o)||(j.default.log("MIME type value «".concat(o,"» for the «").concat(e,"» Tool is not a valid MIME type"),"warn"),!1)})),this.toolsFiles[e]={extensions:s||[],mimeTypes:r||[]})}},{key:"getPatternsConfig",value:function(e,o){var t=this;o.patterns&&!j.default.isEmpty(o.patterns)&&Object.entries(o.patterns).forEach(function(o){var n=(0,l.default)(o,2),s=n[0],r=n[1];r instanceof RegExp||j.default.log("Pattern ".concat(r," for «").concat(e,"» Tool is skipped because it should be a Regexp instance."),"warn"),t.toolsPatterns.push({key:s,pattern:r,tool:e})})}},{key:"isNativeBehaviour",value:function(e){var o=this.Editor.BlockManager;if(h.default.isNativeInput(e))return!0;var t=o.getBlock(e);return!t}},{key:"processFiles",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n=this;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.Editor.BlockManager,e.next=3,Promise.all(Array.from(o).map(function(e){return n.processFile(e)}));case 3:e.sent.filter(function(e){return!!e}).forEach(function(e,o){0===o&&t.currentBlock&&t.currentBlock.isEmpty?t.paste(e.type,e.event,!0):t.paste(e.type,e.event)});case 6:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processFile",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,i,u;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=j.default.getFileExtension(o),n=Object.entries(this.toolsFiles).find(function(e){var n=(0,l.default)(e,2),s=(n[0],n[1]),r=s.mimeTypes,i=s.extensions,u=o.type.split("/"),d=(0,l.default)(u,2),a=d[0],c=d[1],f=i.find(function(e){return e.toLowerCase()===t.toLowerCase()}),m=r.find(function(e){var o=e.split("/"),t=(0,l.default)(o,2),n=t[0],s=t[1];return n===a&&(s===c||"*"===s)});return!!f||!!m})){e.next=4;break}return e.abrupt("return");case 4:return s=(0,l.default)(n,1),i=s[0],u=this.composePasteEvent("file",{file:o}),e.abrupt("return",{event:u,type:i});case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processText",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,l,u,d,a,c,f=this,p=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=p.length>1&&void 0!==p[1]&&p[1],n=this.Editor,s=n.Caret,l=n.BlockManager,u=n.Tools,(d=t?this.processHTML(o):this.processPlain(o)).length){e.next=5;break}return e.abrupt("return");case 5:if(1!==d.length||d[0].isBlock){e.next=8;break}return this.processSingleBlock(d.pop()),e.abrupt("return");case 8:return a=u.isInitial(l.currentBlock.tool),c=a&&l.currentBlock.isEmpty,e.next=12,Promise.all(d.map(function(){var e=(0,i.default)(r.default.mark(function e(o,t){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,f.insertBlock(o,0===t&&c);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()));case 12:s.setToBlock(l.currentBlock,m.default.positions.END);case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processHTML",value:function(e){var o=this,t=this.Editor,n=t.Tools,s=t.Sanitizer,r=this.config.initialBlock,i=h.default.make("DIV");i.innerHTML=e;var l=this.getNodes(i);return l.map(function(e){var t,i=r,l=!1;switch(e.nodeType){case Node.DOCUMENT_FRAGMENT_NODE:(t=h.default.make("div")).appendChild(e);break;case Node.ELEMENT_NODE:t=e,l=!0,o.toolsTags[t.tagName]&&(i=o.toolsTags[t.tagName].tool)}var u=n.blockTools[i].pasteConfig.tags,d=u.reduce(function(e,o){return e[o.toLowerCase()]={},e},{}),a=Object.assign({},d,s.getInlineToolsConfig(i));t.innerHTML=s.clean(t.innerHTML,a);var c=o.composePasteEvent("tag",{data:t});return{content:t,isBlock:l,tool:i,event:c}}).filter(function(e){return!h.default.isNodeEmpty(e.content)||h.default.isSingleTag(e.content)})}},{key:"processPlain",value:function(e){var o=this,t=this.config.initialBlock;if(this.Editor.Tools,!e)return[];var n=t;return e.split(/\r?\n/).filter(function(e){return e.trim()}).map(function(e){var t=h.default.make("div");t.innerHTML=e;var s=o.composePasteEvent("tag",{data:t});return{content:t,tool:n,isBlock:!1,event:s}})}},{key:"processSingleBlock",value:function(){var e=(0,i.default)(r.default.mark(function e(t){var n,s,i,l,u,d,a,c,f,p,h;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.config.initialBlock,s=this.Editor,i=s.BlockManager,l=s.Caret,u=s.Sanitizer,d=s.Tools,a=t.content,!(t.tool===n&&a.textContent.length1&&void 0!==d[1]&&d[1],n=this.Editor,s=n.BlockManager,i=n.Caret,l=s.currentBlock,!(t&&l&&l.isEmpty)){e.next=6;break}return s.paste(o.tool,o.event,!0),e.abrupt("return");case 6:u=s.paste(o.tool,o.event),i.setToBlock(u);case 8:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"getNodes",value:function(e){var o=this,t=Array.from(e.childNodes),n=Object.keys(this.toolsTags);return t.reduce(function e(t,r){if(h.default.isEmpty(r)&&!h.default.isSingleTag(r))return t;var i=t[t.length-1],l=new DocumentFragment;switch(i&&h.default.isFragment(i)&&(l=t.pop()),r.nodeType){case Node.ELEMENT_NODE:var u=r,d=o.toolsTags[u.tagName]||{},a=d.tool,c=void 0===a?"":a,f=o.tagsByTool[c]||[],m=n.includes(u.tagName),p=h.default.blockElements.includes(u.tagName.toLowerCase()),j=Array.from(u.children).some(function(e){var o=e.tagName;return n.includes(o)&&!f.includes(o)}),_=Array.from(u.children).some(function(e){var o=e.tagName;return h.default.blockElements.includes(o.toLowerCase())});if(!p&&!m)return l.appendChild(u),(0,s.default)(t).concat([l]);if(m&&!j||p&&!_&&!j)return(0,s.default)(t).concat([l,u]);break;case Node.TEXT_NODE:return l.appendChild(r),(0,s.default)(t).concat([l]);default:return(0,s.default)(t).concat([l])}return(0,s.default)(t).concat((0,s.default)(Array.from(r.childNodes).reduce(e,[])))},[])}},{key:"composePasteEvent",value:function(e,o){return new CustomEvent(e,{detail:o})}}]),o}(p.default);n.default=b,b.displayName="Paste",b.PATTERN_PROCESSING_MAX_LENGTH=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/renderer.ts": /*!********************************************!*\ !*** ./src/components/modules/renderer.ts ***! \********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).apply(this,arguments))}return(0,c.default)(o,e),(0,l.default)(o,[{key:"render",value:function(e){var o=this,t=e.map(function(e){return{function:function(){return o.insertBlock(e)}}});return f.default.sequence(t)}},{key:"insertBlock",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.type,n=o.data,r=o.settings,!(t in this.Editor.Tools.available)){e.next=14;break}e.prev=4,this.Editor.BlockManager.insert(t,n,r),e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(4),f.default.log("Block «".concat(t,"» skipped because of plugins error"),"warn",n),Error(e.t0);case 12:e.next=15;break;case 14:f.default.log("Tool «".concat(t,"» is not found. Check 'tools' property at your initial CodeX Editor config."),"warn");case 15:case"end":return e.stop()}},e,this,[[4,8]])}));return function(o){return e.apply(this,arguments)}}()}]),o}(a.default);n.default=p,p.displayName="Renderer",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/sanitizer.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).apply(this,arguments))}return(0,a.default)(o,e),(0,l.default)(o,[{key:"render",value:function(e){var o=this,t=e.map(function(e){return{function:function(){return o.insertBlock(e)}}});return f.default.sequence(t)}},{key:"insertBlock",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.type,n=o.data,r=o.settings,!(t in this.Editor.Tools.available)){e.next=14;break}e.prev=4,this.Editor.BlockManager.insert(t,n,r),e.next=12;break;case 8:throw e.prev=8,e.t0=e.catch(4),f.default.log("Block «".concat(t,"» skipped because of plugins error"),"warn",n),Error(e.t0);case 12:e.next=15;break;case 14:f.default.log("Tool «".concat(t,"» is not found. Check 'tools' property at your initial CodeX Editor config."),"warn");case 15:case"end":return e.stop()}},e,this,[[4,8]])}));return function(o){return e.apply(this,arguments)}}()}]),o}(c.default);n.default=p,p.displayName="Renderer",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/sanitizer.ts": /*!*********************************************!*\ !*** ./src/components/modules/sanitizer.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! html-janitor */"./node_modules/html-janitor/src/html-janitor.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),c=p(c),a=p(a),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).configCache={},e.inlineToolsConfigCache=null,e}return(0,c.default)(o,e),(0,l.default)(o,[{key:"sanitizeBlocks",value:function(e){var o=this;return e.map(function(e){var t=o.composeToolConfig(e.tool);return f.default.isEmpty(t)?e:(e.data=o.deepSanitize(e.data,t),e)})}},{key:"deepSanitize",value:function(e,o){return Array.isArray(e)?this.cleanArray(e,o):"object"===(0,r.default)(e)?this.cleanObject(e,o):"string"==typeof e?this.cleanOneItem(e,o):e}},{key:"clean",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={tags:o},n=this.createHTMLJanitorInstance(t);return n.clean(e)}},{key:"composeToolConfig",value:function(e){if(this.configCache[e])return this.configCache[e];var o=this.Editor.Tools.apiSettings.SANITIZE_CONFIG,t=this.Editor.Tools.available[e],n=this.getInlineToolsConfig(e);if(!t.sanitize||t[o]&&f.default.isEmpty(t[o]))return n;var s=t.sanitize,i={};for(var l in s)if(s.hasOwnProperty(l)){var u=s[l];"object"===(0,r.default)(u)?i[l]=Object.assign({},n,u):i[l]=u}return this.configCache[e]=i,i}},{key:"getInlineToolsConfig",value:function(e){var o=this.Editor.Tools,t=o.getToolSettings(e),n=t.inlineToolbar||[],s={};return"boolean"==typeof n&&n?s=this.getAllInlineToolsConfig():n.map(function(e){s=Object.assign(s,o.inline[e][o.apiSettings.SANITIZE_CONFIG])}),s}},{key:"getAllInlineToolsConfig",value:function(){var e=this.Editor.Tools;if(this.inlineToolsConfigCache)return this.inlineToolsConfigCache;var o={};return Object.entries(e.inline).forEach(function(t){var n=(0,s.default)(t,2),r=(n[0],n[1]);Object.assign(o,r[e.apiSettings.SANITIZE_CONFIG])}),this.inlineToolsConfigCache=o,this.inlineToolsConfigCache}},{key:"cleanArray",value:function(e,o){var t=this;return e.map(function(e){return t.deepSanitize(e,o)})}},{key:"cleanObject",value:function(e,o){var t={};for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=this.isRule(o[n])?o[n]:o;t[n]=this.deepSanitize(s,r)}return t}},{key:"cleanOneItem",value:function(e,o){return"object"===(0,r.default)(o)?this.clean(e,o):!1===o?this.clean(e,{}):e}},{key:"isRule",value:function(e){return"object"===(0,r.default)(e)||"boolean"==typeof e||"function"==typeof e}},{key:"createHTMLJanitorInstance",value:function(e){return e?new m.default(e):null}}]),o}(a.default);n.default=h,h.displayName="Sanitizer",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/saver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! html-janitor */"./node_modules/html-janitor/src/html-janitor.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),a=p(a),c=p(c),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).configCache={},e.inlineToolsConfigCache=null,e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"sanitizeBlocks",value:function(e){var o=this;return e.map(function(e){var t=o.composeToolConfig(e.tool);return f.default.isEmpty(t)?e:(e.data=o.deepSanitize(e.data,t),e)})}},{key:"deepSanitize",value:function(e,o){return Array.isArray(e)?this.cleanArray(e,o):"object"===(0,r.default)(e)?this.cleanObject(e,o):"string"==typeof e?this.cleanOneItem(e,o):e}},{key:"clean",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={tags:o},n=this.createHTMLJanitorInstance(t);return n.clean(e)}},{key:"composeToolConfig",value:function(e){if(this.configCache[e])return this.configCache[e];var o=this.Editor.Tools.apiSettings.SANITIZE_CONFIG,t=this.Editor.Tools.available[e],n=this.getInlineToolsConfig(e);if(!t.sanitize||t[o]&&f.default.isEmpty(t[o]))return n;var s=t.sanitize,i={};for(var l in s)if(s.hasOwnProperty(l)){var u=s[l];"object"===(0,r.default)(u)?i[l]=Object.assign({},n,u):i[l]=u}return this.configCache[e]=i,i}},{key:"getInlineToolsConfig",value:function(e){var o=this.Editor.Tools,t=o.getToolSettings(e),n=t.inlineToolbar||[],s={};return"boolean"==typeof n&&n?s=this.getAllInlineToolsConfig():n.map(function(e){s=Object.assign(s,o.inline[e][o.apiSettings.SANITIZE_CONFIG])}),s}},{key:"getAllInlineToolsConfig",value:function(){var e=this.Editor.Tools;if(this.inlineToolsConfigCache)return this.inlineToolsConfigCache;var o={};return Object.entries(e.inline).forEach(function(t){var n=(0,s.default)(t,2),r=(n[0],n[1]);Object.assign(o,r[e.apiSettings.SANITIZE_CONFIG])}),this.inlineToolsConfigCache=o,this.inlineToolsConfigCache}},{key:"cleanArray",value:function(e,o){var t=this;return e.map(function(e){return t.deepSanitize(e,o)})}},{key:"cleanObject",value:function(e,o){var t={};for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=this.isRule(o[n])?o[n]:o;t[n]=this.deepSanitize(s,r)}return t}},{key:"cleanOneItem",value:function(e,o){return"object"===(0,r.default)(o)?this.clean(e,o):!1===o?this.clean(e,{}):e}},{key:"isRule",value:function(e){return"object"===(0,r.default)(e)||"boolean"==typeof e||"function"==typeof e} +/** + * If developer uses editor's API, then he can customize sanitize restrictions. + * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere + * At least, if there is no config overrides, that API uses Default configuration + * + * @uses https://www.npmjs.com/package/html-janitor + * @license https://github.com/guardian/html-janitor/blob/master/LICENSE + * + * @param {SanitizerConfig} config - sanitizer extension + */},{key:"createHTMLJanitorInstance",value:function(e){return e?new m.default(e):null}}]),o}(c.default);n.default=h,h.displayName="Sanitizer",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/saver.ts": /*!*****************************************!*\ !*** ./src/components/modules/saver.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),c=f(c);var m=function(e){function o(){return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).apply(this,arguments))}return(0,c.default)(o,e),(0,l.default)(o,[{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=this.Editor.BlockManager.blocks,t=[],o.forEach(function(e){t.push(e.data)}),e.next=4,Promise.all(t);case 4:return n=e.sent,e.next=7,this.Editor.Sanitizer.sanitizeBlocks(n);case 7:return r=e.sent,e.abrupt("return",this.makeOutput(r));case 9:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"makeOutput",value:function(e){var o=0,t=[];return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«".concat(e.tool,"» saving info"),e),o+=e.time,t.push({type:e.tool,data:e.data})}),console.log("Total",o),console.groupEnd(),{time:+new Date,blocks:t,version:"2.5.6"}}}]),o}((a=f(a)).default);n.default=m,m.displayName="Saver",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/shortcuts.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),a=f(a);var m=function(e){function o(){return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).apply(this,arguments))}return(0,a.default)(o,e),(0,l.default)(o,[{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=this.Editor.BlockManager.blocks,t=[],o.forEach(function(e){t.push(e.data)}),e.next=4,Promise.all(t);case 4:return n=e.sent,e.next=7,this.Editor.Sanitizer.sanitizeBlocks(n);case 7:return r=e.sent,e.abrupt("return",this.makeOutput(r));case 9:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"makeOutput",value:function(e){var o=0,t=[];return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«".concat(e.tool,"» saving info"),e),o+=e.time,t.push({type:e.tool,data:e.data})}),console.log("Total",o),console.groupEnd(),{time:+new Date,blocks:t,version:"2.6.0"}}}]),o}((c=f(c)).default);n.default=m,m.displayName="Saver",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/shortcuts.ts": /*!*********************************************!*\ !*** ./src/components/modules/shortcuts.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! @codexteam/shortcuts */"./node_modules/@codexteam/shortcuts/lib/shortcuts.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).registeredShortcuts=[],e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"add",value:function(e){var o=this.Editor.UI,t=new d.default({name:e.name,on:o.nodes.redactor,callback:e.handler});this.registeredShortcuts.push(t)}},{key:"remove",value:function(e){var o=this.registeredShortcuts.findIndex(function(o){return o.name===e});this.registeredShortcuts[o].remove(),this.registeredShortcuts.splice(o,1)}}]),o}((c=a(c)).default);n.default=f,f.displayName="Shortcuts",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/blockSettings.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! @codexteam/shortcuts */"./node_modules/@codexteam/shortcuts/lib/shortcuts.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).registeredShortcuts=[],e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"add",value:function(e){var o=this.Editor.UI,t=new d.default({name:e.name,on:o.nodes.redactor,callback:e.handler});this.registeredShortcuts.push(t)}},{key:"remove",value:function(e){var o=this.registeredShortcuts.findIndex(function(o){return o.name===e});this.registeredShortcuts[o].remove(),this.registeredShortcuts.splice(o,1)}}]),o}((a=c(a)).default);n.default=f,f.displayName="Shortcuts",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/blockSettings.ts": /*!*********************************************************!*\ !*** ./src/components/modules/toolbar/blockSettings.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,toolSettings:null,defaultSettings:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.wrapper=c.default.make("div",o.CSS.wrapper),this.nodes.toolSettings=c.default.make("div",o.CSS.toolSettings),this.nodes.defaultSettings=c.default.make("div",o.CSS.defaultSettings),c.default.append(this.nodes.wrapper,[this.nodes.toolSettings,this.nodes.defaultSettings])}},{key:"open",value:function(){this.nodes.wrapper.classList.add(o.CSS.wrapperOpened),this.addToolSettings(),this.addDefaultSettings(),this.Editor.Events.emit(this.events.opened)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.wrapperOpened),this.nodes.toolSettings.innerHTML="",this.nodes.defaultSettings.innerHTML="",this.Editor.Events.emit(this.events.closed)}},{key:"addToolSettings",value:function(){"function"==typeof this.Editor.BlockManager.currentBlock.tool.renderSettings&&c.default.append(this.nodes.toolSettings,this.Editor.BlockManager.currentBlock.tool.renderSettings())}},{key:"addDefaultSettings",value:function(){c.default.append(this.nodes.defaultSettings,this.Editor.BlockManager.currentBlock.renderTunes())}},{key:"events",get:function(){return{opened:"block-settings-opened",closed:"block-settings-closed"}}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.wrapperOpened)}}],[{key:"CSS",get:function(){return{wrapper:"ce-settings",wrapperOpened:"ce-settings--opened",toolSettings:"ce-settings__plugin-zone",defaultSettings:"ce-settings__default-zone",button:"ce-settings__button"}}}]),o}(d.default);n.default=f,f.displayName="BlockSettings",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/index.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,toolSettings:null,defaultSettings:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.wrapper=a.default.make("div",o.CSS.wrapper),this.nodes.toolSettings=a.default.make("div",o.CSS.toolSettings),this.nodes.defaultSettings=a.default.make("div",o.CSS.defaultSettings),a.default.append(this.nodes.wrapper,[this.nodes.toolSettings,this.nodes.defaultSettings])}},{key:"open",value:function(){this.nodes.wrapper.classList.add(o.CSS.wrapperOpened),this.addToolSettings(),this.addDefaultSettings(),this.Editor.Events.emit(this.events.opened)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.wrapperOpened),this.nodes.toolSettings.innerHTML="",this.nodes.defaultSettings.innerHTML="",this.Editor.Events.emit(this.events.closed)}},{key:"addToolSettings",value:function(){"function"==typeof this.Editor.BlockManager.currentBlock.tool.renderSettings&&a.default.append(this.nodes.toolSettings,this.Editor.BlockManager.currentBlock.tool.renderSettings())}},{key:"addDefaultSettings",value:function(){a.default.append(this.nodes.defaultSettings,this.Editor.BlockManager.currentBlock.renderTunes())}},{key:"events",get:function(){return{opened:"block-settings-opened",closed:"block-settings-closed"}}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.wrapperOpened)}}],[{key:"CSS",get:function(){return{wrapper:"ce-settings",wrapperOpened:"ce-settings--opened",toolSettings:"ce-settings__plugin-zone",defaultSettings:"ce-settings__default-zone",button:"ce-settings__button"}}}]),o}(d.default);n.default=f,f.displayName="BlockSettings",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/index.ts": /*!*************************************************!*\ !*** ./src/components/modules/toolbar/index.ts ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,content:null,actions:null,plusButton:null,blockActionsButtons:null,settingsToggler:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){var e=this;this.nodes.wrapper=c.default.make("div",o.CSS.toolbar),["content","actions"].forEach(function(t){e.nodes[t]=c.default.make("div",o.CSS[t]),c.default.append(e.nodes.wrapper,e.nodes[t])}),this.nodes.plusButton=c.default.make("div",o.CSS.plusButton),c.default.append(this.nodes.plusButton,c.default.svg("plus",14,14)),c.default.append(this.nodes.content,this.nodes.plusButton),this.Editor.Listeners.on(this.nodes.plusButton,"click",function(){return e.plusButtonClicked()},!1),this.Editor.Toolbox.make(),this.nodes.blockActionsButtons=c.default.make("div",o.CSS.blockActionsButtons),this.nodes.settingsToggler=c.default.make("span",o.CSS.settingsToggler);var t=c.default.svg("dots",18,4);c.default.append(this.nodes.settingsToggler,t),c.default.append(this.nodes.blockActionsButtons,this.nodes.settingsToggler),c.default.append(this.nodes.actions,this.nodes.blockActionsButtons),this.Editor.BlockSettings.make(),c.default.append(this.nodes.actions,this.Editor.BlockSettings.nodes.wrapper),c.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.bindEvents()}},{key:"move",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e&&(this.Editor.Toolbox.close(),this.Editor.BlockSettings.close());var o=this.Editor.BlockManager.currentBlock.holder;if(o){var t=Math.floor(o.offsetHeight/2);this.nodes.plusButton.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.Editor.Toolbox.nodes.toolbox.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.nodes.wrapper.style.transform="translate3D(0, ".concat(Math.floor(o.offsetTop),"px, 0)")}}},{key:"open",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];setTimeout(function(){e.move(n),e.nodes.wrapper.classList.add(o.CSS.toolbarOpened),t?e.blockActions.show():e.blockActions.hide()},50)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.toolbarOpened),this.blockActions.hide(),this.Editor.Toolbox.close(),this.Editor.BlockSettings.close()}},{key:"plusButtonClicked",value:function(){this.Editor.Toolbox.toggle()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.settingsToggler,"click",function(){return e.settingsTogglerClicked()})}},{key:"settingsTogglerClicked",value:function(){this.Editor.BlockSettings.opened?this.Editor.BlockSettings.close():this.Editor.BlockSettings.open()}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.toolbarOpened)}},{key:"plusButton",get:function(){var e=this;return{hide:function(){return e.nodes.plusButton.classList.add(o.CSS.plusButtonHidden)},show:function(){e.Editor.Toolbox.isEmpty||e.nodes.plusButton.classList.remove(o.CSS.plusButtonHidden)}}}},{key:"blockActions",get:function(){var e=this;return{hide:function(){e.nodes.actions.classList.remove(o.CSS.actionsOpened)},show:function(){e.nodes.actions.classList.add(o.CSS.actionsOpened)}}}}],[{key:"CSS",get:function(){return{toolbar:"ce-toolbar",content:"ce-toolbar__content",actions:"ce-toolbar__actions",actionsOpened:"ce-toolbar__actions--opened",toolbarOpened:"ce-toolbar--opened",plusButton:"ce-toolbar__plus",plusButtonHidden:"ce-toolbar__plus--hidden",blockActionsButtons:"ce-toolbar__actions-buttons",settingsToggler:"ce-toolbar__settings-btn"}}}]),o}(d.default);n.default=f,f.displayName="Toolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/inline.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,content:null,actions:null,plusButton:null,blockActionsButtons:null,settingsToggler:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){var e=this;this.nodes.wrapper=a.default.make("div",o.CSS.toolbar),["content","actions"].forEach(function(t){e.nodes[t]=a.default.make("div",o.CSS[t]),a.default.append(e.nodes.wrapper,e.nodes[t])}),this.nodes.plusButton=a.default.make("div",o.CSS.plusButton),a.default.append(this.nodes.plusButton,a.default.svg("plus",14,14)),a.default.append(this.nodes.content,this.nodes.plusButton),this.Editor.Listeners.on(this.nodes.plusButton,"click",function(){return e.plusButtonClicked()},!1),this.Editor.Toolbox.make(),this.nodes.blockActionsButtons=a.default.make("div",o.CSS.blockActionsButtons),this.nodes.settingsToggler=a.default.make("span",o.CSS.settingsToggler);var t=a.default.svg("dots",18,4);a.default.append(this.nodes.settingsToggler,t),a.default.append(this.nodes.blockActionsButtons,this.nodes.settingsToggler),a.default.append(this.nodes.actions,this.nodes.blockActionsButtons),this.Editor.BlockSettings.make(),a.default.append(this.nodes.actions,this.Editor.BlockSettings.nodes.wrapper),a.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.bindEvents()}},{key:"move",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e&&(this.Editor.Toolbox.close(),this.Editor.BlockSettings.close());var o=this.Editor.BlockManager.currentBlock.holder;if(o){var t=Math.floor(o.offsetHeight/2);this.nodes.plusButton.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.Editor.Toolbox.nodes.toolbox.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.nodes.wrapper.style.transform="translate3D(0, ".concat(Math.floor(o.offsetTop),"px, 0)")}}},{key:"open",value:function(){var e=this,t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];setTimeout(function(){e.move(n),e.nodes.wrapper.classList.add(o.CSS.toolbarOpened),t?e.blockActions.show():e.blockActions.hide()},50)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.toolbarOpened),this.blockActions.hide(),this.Editor.Toolbox.close(),this.Editor.BlockSettings.close()}},{key:"plusButtonClicked",value:function(){this.Editor.Toolbox.toggle()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.settingsToggler,"click",function(){return e.settingsTogglerClicked()})}},{key:"settingsTogglerClicked",value:function(){this.Editor.BlockSettings.opened?this.Editor.BlockSettings.close():this.Editor.BlockSettings.open()}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.toolbarOpened)}},{key:"plusButton",get:function(){var e=this;return{hide:function(){return e.nodes.plusButton.classList.add(o.CSS.plusButtonHidden)},show:function(){e.Editor.Toolbox.isEmpty||e.nodes.plusButton.classList.remove(o.CSS.plusButtonHidden)}}}},{key:"blockActions",get:function(){var e=this;return{hide:function(){e.nodes.actions.classList.remove(o.CSS.actionsOpened)},show:function(){e.nodes.actions.classList.add(o.CSS.actionsOpened)}}}}],[{key:"CSS",get:function(){return{toolbar:"ce-toolbar",content:"ce-toolbar__content",actions:"ce-toolbar__actions",actionsOpened:"ce-toolbar__actions--opened",toolbarOpened:"ce-toolbar--opened",plusButton:"ce-toolbar__plus",plusButtonHidden:"ce-toolbar__plus--hidden",blockActionsButtons:"ce-toolbar__actions-buttons",settingsToggler:"ce-toolbar__settings-btn"}}}]),o}(d.default);n.default=f,f.displayName="Toolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/inline.ts": /*!**************************************************!*\ !*** ./src/components/modules/toolbar/inline.ts ***! \**************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts"),t(/*! ../../selection */"./src/components/selection.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),c=_(c),a=_(a),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var v=function(e){function o(){var e;return(0,r.default)(this,o),(e=(0,l.default)(this,(0,u.default)(o).apply(this,arguments))).CSS={inlineToolbar:"ce-inline-toolbar",inlineToolbarShowed:"ce-inline-toolbar--showed",buttonsWrapper:"ce-inline-toolbar__buttons",actionsWrapper:"ce-inline-toolbar__actions",inlineToolButton:"ce-inline-tool",inlineToolButtonLast:"ce-inline-tool--last"},e.nodes={wrapper:null,buttons:null,actions:null},e.toolbarVerticalMargin=20,e}return(0,d.default)(o,e),(0,i.default)(o,[{key:"make",value:function(){this.nodes.wrapper=a.default.make("div",this.CSS.inlineToolbar),this.nodes.buttons=a.default.make("div",this.CSS.buttonsWrapper),this.nodes.actions=a.default.make("div",this.CSS.actionsWrapper),a.default.append(this.nodes.wrapper,[this.nodes.buttons,this.nodes.actions]),a.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.addTools()}},{key:"handleShowingEvent",value:function(e){this.allowedToShow(e)?(this.move(),this.open(),this.checkToolsState(),this.Editor.BlockSelection.clearSelection()):this.close()}},{key:"move",value:function(){var e=h.default.rect,o=this.Editor.UI.nodes.wrapper.getBoundingClientRect(),t={x:e.x-o.left,y:e.y+e.height-o.top+this.toolbarVerticalMargin};e.width&&(t.x+=Math.floor(e.width/2)),this.nodes.wrapper.style.left=Math.floor(t.x)+"px",this.nodes.wrapper.style.top=Math.floor(t.y)+"px"}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e,o){"function"==typeof e.clear&&e.clear()})}},{key:"open",value:function(){this.filterTools(),this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e){"function"==typeof e.clear&&e.clear()})}},{key:"allowedToShow",value:function(e){if(e&&["IMG","INPUT"].includes(e.target.tagName))return!1;var o=h.default.get(),t=h.default.text;if(!o||!o.anchorNode)return!1;if(o.isCollapsed||t.length<1)return!1;var n=this.Editor.BlockManager.getBlock(o.anchorNode);if(!n)return!1;var s=this.Editor.Tools.getToolSettings(n.name);return s&&s[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]}},{key:"filterTools",value:function(){var e=this,o=h.default.get(),t=this.Editor.BlockManager.getBlock(o.anchorNode),n=this.Editor.Tools.getToolSettings(t.name),s=n&&n[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR],r=Array.from(this.nodes.buttons.querySelectorAll(".".concat(this.CSS.inlineToolButton)));r.forEach(function(o){o.hidden=!1,o.classList.remove(e.CSS.inlineToolButtonLast)}),Array.isArray(s)&&r.forEach(function(e){e.hidden=!s.includes(e.dataset.tool)});var i=r.filter(function(e){return!e.hidden}).pop();i&&i.classList.add(this.CSS.inlineToolButtonLast)}},{key:"addTools",value:function(){var e=this;this.tools.forEach(function(o,t){e.addTool(t,o)})}},{key:"addTool",value:function(e,o){var t=this,n=this.Editor,r=n.Listeners,i=n.Tools,l=o.render();if(l){if(l.dataset.tool=e,this.nodes.buttons.appendChild(l),"function"==typeof o.renderActions){var u=o.renderActions();this.nodes.actions.appendChild(u)}r.on(l,"click",function(e){t.toolClicked(o),e.preventDefault()});var d=i.getToolSettings(e),c=null,a=Object.entries(i.internalTools).filter(function(e){var o=(0,s.default)(e,2),t=(o[0],o[1]);return j.default.isFunction(t)?t[i.apiSettings.IS_INLINE]:t.class[i.apiSettings.IS_INLINE]}).map(function(e){var o=(0,s.default)(e,2),t=o[0];return o[1],t});a.includes(e)?c=this.inlineTools[e].shortcut:d&&d[i.apiSettings.SHORTCUT]&&(c=d[i.apiSettings.SHORTCUT]),c&&this.enableShortcuts(o,c)}else j.default.log("Render method must return an instance of Node","warn",e)}},{key:"enableShortcuts",value:function(e,o){var t=this;this.Editor.Shortcuts.add({name:o,handler:function(o){var n=t.Editor.BlockManager.currentBlock;if(n){var s=t.Editor.Tools.getToolSettings(n.name);s&&s[t.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]&&(o.preventDefault(),t.toolClicked(e))}}})}},{key:"toolClicked",value:function(e){var o=h.default.range;e.surround(o),this.checkToolsState()}},{key:"checkToolsState",value:function(){this.tools.forEach(function(e){e.checkState(h.default.get())})}},{key:"internalTools",get:function(){return{bold:this.Editor.Tools.constructInline(f.default),italic:this.Editor.Tools.constructInline(m.default),link:this.Editor.Tools.constructInline(p.default)}}},{key:"externalTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}},{key:"tools",get:function(){if(!this.toolsInstances||0===this.toolsInstances.size){var e=this.inlineTools;for(var o in this.toolsInstances=new Map,e)e.hasOwnProperty(o)&&this.toolsInstances.set(o,e[o])}return this.toolsInstances}},{key:"inlineTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}}]),o}(c.default);n.default=v,v.displayName="InlineToolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/toolbox.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts"),t(/*! ../../selection */"./src/components/selection.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(){var e;return(0,r.default)(this,o),(e=(0,l.default)(this,(0,u.default)(o).apply(this,arguments))).CSS={inlineToolbar:"ce-inline-toolbar",inlineToolbarShowed:"ce-inline-toolbar--showed",buttonsWrapper:"ce-inline-toolbar__buttons",actionsWrapper:"ce-inline-toolbar__actions",inlineToolButton:"ce-inline-tool",inlineToolButtonLast:"ce-inline-tool--last"},e.nodes={wrapper:null,buttons:null,actions:null},e.toolbarVerticalMargin=20,e}return(0,d.default)(o,e),(0,i.default)(o,[{key:"make",value:function(){this.nodes.wrapper=c.default.make("div",this.CSS.inlineToolbar),this.nodes.buttons=c.default.make("div",this.CSS.buttonsWrapper),this.nodes.actions=c.default.make("div",this.CSS.actionsWrapper),c.default.append(this.nodes.wrapper,[this.nodes.buttons,this.nodes.actions]),c.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.addTools()}},{key:"handleShowingEvent",value:function(e){this.allowedToShow(e)?(this.move(),this.open(),this.checkToolsState(),this.Editor.BlockSelection.clearSelection()):this.close()}},{key:"move",value:function(){var e=h.default.rect,o=this.Editor.UI.nodes.wrapper.getBoundingClientRect(),t={x:e.x-o.left,y:e.y+e.height-o.top+this.toolbarVerticalMargin};e.width&&(t.x+=Math.floor(e.width/2)),this.nodes.wrapper.style.left=Math.floor(t.x)+"px",this.nodes.wrapper.style.top=Math.floor(t.y)+"px"}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e,o){"function"==typeof e.clear&&e.clear()})}},{key:"open",value:function(){this.filterTools(),this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e){"function"==typeof e.clear&&e.clear()})}},{key:"allowedToShow",value:function(e){if(e&&["IMG","INPUT"].includes(e.target.tagName))return!1;var o=h.default.get(),t=h.default.text;if(!o||!o.anchorNode)return!1;if(o.isCollapsed||t.length<1)return!1;var n=this.Editor.BlockManager.getBlock(o.anchorNode);if(!n)return!1;var s=this.Editor.Tools.getToolSettings(n.name);return s&&s[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]}},{key:"filterTools",value:function(){var e=this,o=h.default.get(),t=this.Editor.BlockManager.getBlock(o.anchorNode),n=this.Editor.Tools.getToolSettings(t.name),s=n&&n[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR],r=Array.from(this.nodes.buttons.querySelectorAll(".".concat(this.CSS.inlineToolButton)));r.forEach(function(o){o.hidden=!1,o.classList.remove(e.CSS.inlineToolButtonLast)}),Array.isArray(s)&&r.forEach(function(e){e.hidden=!s.includes(e.dataset.tool)});var i=r.filter(function(e){return!e.hidden}).pop();i&&i.classList.add(this.CSS.inlineToolButtonLast)}},{key:"addTools",value:function(){var e=this;this.tools.forEach(function(o,t){e.addTool(t,o)})}},{key:"addTool",value:function(e,o){var t=this,n=this.Editor,r=n.Listeners,i=n.Tools,l=o.render();if(l){if(l.dataset.tool=e,this.nodes.buttons.appendChild(l),"function"==typeof o.renderActions){var u=o.renderActions();this.nodes.actions.appendChild(u)}r.on(l,"click",function(e){t.toolClicked(o),e.preventDefault()});var d=i.getToolSettings(e),a=null,c=Object.entries(i.internalTools).filter(function(e){var o=(0,s.default)(e,2),t=(o[0],o[1]);return j.default.isFunction(t)?t[i.apiSettings.IS_INLINE]:t.class[i.apiSettings.IS_INLINE]}).map(function(e){var o=(0,s.default)(e,2),t=o[0];return o[1],t});c.includes(e)?a=this.inlineTools[e].shortcut:d&&d[i.apiSettings.SHORTCUT]&&(a=d[i.apiSettings.SHORTCUT]),a&&this.enableShortcuts(o,a)}else j.default.log("Render method must return an instance of Node","warn",e)}},{key:"enableShortcuts",value:function(e,o){var t=this;this.Editor.Shortcuts.add({name:o,handler:function(o){var n=t.Editor.BlockManager.currentBlock;if(n){var s=t.Editor.Tools.getToolSettings(n.name);s&&s[t.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]&&(o.preventDefault(),t.toolClicked(e))}}})}},{key:"toolClicked",value:function(e){var o=h.default.range;e.surround(o),this.checkToolsState()}},{key:"checkToolsState",value:function(){this.tools.forEach(function(e){e.checkState(h.default.get())})}},{key:"internalTools",get:function(){return{bold:this.Editor.Tools.constructInline(f.default),italic:this.Editor.Tools.constructInline(m.default),link:this.Editor.Tools.constructInline(p.default)}}},{key:"externalTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}},{key:"tools",get:function(){if(!this.toolsInstances||0===this.toolsInstances.size){var e=this.inlineTools;for(var o in this.toolsInstances=new Map,e)e.hasOwnProperty(o)&&this.toolsInstances.set(o,e[o])}return this.toolsInstances}},{key:"inlineTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}}]),o}(a.default);n.default=b,b.displayName="InlineToolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/toolbox.ts": /*!***************************************************!*\ !*** ./src/components/modules/toolbar/toolbox.ts ***! \***************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),c=f(c),a=f(a);var m=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).opened=!1,e.nodes={toolbox:null,buttons:[]},e.activeButtonIndex=-1,e.displayedToolsCount=0,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.toolbox=c.default.make("div",o.CSS.toolbox),c.default.append(this.Editor.Toolbar.nodes.content,this.nodes.toolbox),this.addTools()}},{key:"toolButtonActivate",value:function(e,o){var t=this.Editor.Tools.toolsClasses[o];this.insertNewBlock(t,o)}},{key:"open",value:function(){this.isEmpty||(this.nodes.toolbox.classList.add(o.CSS.toolboxOpened),this.opened=!0)}},{key:"close",value:function(){this.nodes.toolbox.classList.remove(o.CSS.toolboxOpened),this.opened=!1,this.activeButtonIndex=-1;var e=this.nodes.toolbox.querySelector(".".concat(o.CSS.toolboxButtonActive));e&&e.classList.remove(o.CSS.toolboxButtonActive)}},{key:"toggle",value:function(){this.opened?this.close():this.open()}},{key:"leaf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.LEAF_DIRECTIONS.RIGHT,t=this.nodes.toolbox.childNodes;-1===this.activeButtonIndex?this.activeButtonIndex=e===o.LEAF_DIRECTIONS.RIGHT?-1:0:t[this.activeButtonIndex].classList.remove(o.CSS.toolboxButtonActive),e===o.LEAF_DIRECTIONS.RIGHT?this.activeButtonIndex=(this.activeButtonIndex+1)%t.length:this.activeButtonIndex=(t.length+this.activeButtonIndex-1)%t.length,t[this.activeButtonIndex].classList.add(o.CSS.toolboxButtonActive)}},{key:"addTools",value:function(){var e=this.Editor.Tools.available;for(var o in e)e.hasOwnProperty(o)&&this.addTool(o,e[o])}},{key:"addTool",value:function(e,t){var n=this,s=this.Editor.Tools.apiSettings;if(!t[s.IS_DISPLAYED_IN_TOOLBOX]||t[s.TOOLBAR_ICON]){if(t[s.IS_DISPLAYED_IN_TOOLBOX]){var r=c.default.make("li",[o.CSS.toolboxButton],{title:e});r.innerHTML=t.toolboxIcon,c.default.append(this.nodes.toolbox,r),this.nodes.toolbox.appendChild(r),this.nodes.buttons.push(r),this.Editor.Listeners.on(r,"click",function(o){n.toolButtonActivate(o,e)});var i=this.Editor.Tools.getToolSettings(e);i&&i[this.Editor.Tools.apiSettings.SHORTCUT]&&this.enableShortcut(t,e,i[this.Editor.Tools.apiSettings.SHORTCUT]),this.displayedToolsCount++}}else a.default.log("Toolbar icon is missed. Tool %o skipped","warn",e)}},{key:"enableShortcut",value:function(e,o,t){var n=this;this.Editor.Shortcuts.add({name:t,handler:function(t){t.preventDefault(),n.insertNewBlock(e,o)}})}},{key:"insertNewBlock",value:function(e,o){var t,n=this.Editor.BlockManager.currentBlock;(t=n.isEmpty?this.Editor.BlockManager.replace(o):this.Editor.BlockManager.insert(o)).call("appendCallback",{}),this.Editor.Caret.setToBlock(t),this.Editor.Toolbar.close()}},{key:"getActiveTool",get:function(){var e=this.nodes.toolbox.childNodes;return-1===this.activeButtonIndex?null:e[this.activeButtonIndex].title}},{key:"isEmpty",get:function(){return 0===this.displayedToolsCount}}],[{key:"CSS",get:function(){return{toolbox:"ce-toolbox",toolboxButton:"ce-toolbox__button",toolboxButtonActive:"ce-toolbox__button--active",toolboxOpened:"ce-toolbox--opened"}}}]),o}(d.default);n.default=m,m.displayName="Toolbox",m.LEAF_DIRECTIONS={RIGHT:"right",LEFT:"left"},e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/tools.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),a=f(a),c=f(c);var m=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).opened=!1,e.nodes={toolbox:null,buttons:[]},e.activeButtonIndex=-1,e.displayedToolsCount=0,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.toolbox=a.default.make("div",o.CSS.toolbox),a.default.append(this.Editor.Toolbar.nodes.content,this.nodes.toolbox),this.addTools()}},{key:"toolButtonActivate",value:function(e,o){var t=this.Editor.Tools.toolsClasses[o];this.insertNewBlock(t,o)}},{key:"open",value:function(){this.isEmpty||(this.nodes.toolbox.classList.add(o.CSS.toolboxOpened),this.opened=!0)}},{key:"close",value:function(){this.nodes.toolbox.classList.remove(o.CSS.toolboxOpened),this.opened=!1,this.activeButtonIndex=-1;var e=this.nodes.toolbox.querySelector(".".concat(o.CSS.toolboxButtonActive));e&&e.classList.remove(o.CSS.toolboxButtonActive)}},{key:"toggle",value:function(){this.opened?this.close():this.open()}},{key:"leaf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.LEAF_DIRECTIONS.RIGHT,t=this.nodes.toolbox.childNodes;-1===this.activeButtonIndex?this.activeButtonIndex=e===o.LEAF_DIRECTIONS.RIGHT?-1:0:t[this.activeButtonIndex].classList.remove(o.CSS.toolboxButtonActive),e===o.LEAF_DIRECTIONS.RIGHT?this.activeButtonIndex=(this.activeButtonIndex+1)%t.length:this.activeButtonIndex=(t.length+this.activeButtonIndex-1)%t.length,t[this.activeButtonIndex].classList.add(o.CSS.toolboxButtonActive)}},{key:"addTools",value:function(){var e=this.Editor.Tools.available;for(var o in e)e.hasOwnProperty(o)&&this.addTool(o,e[o])}},{key:"addTool",value:function(e,t){var n=this,s=this.Editor.Tools.apiSettings;if(!t[s.IS_DISPLAYED_IN_TOOLBOX]||t[s.TOOLBAR_ICON]){if(t[s.IS_DISPLAYED_IN_TOOLBOX]){var r=a.default.make("li",[o.CSS.toolboxButton],{title:e});r.innerHTML=t.toolboxIcon,a.default.append(this.nodes.toolbox,r),this.nodes.toolbox.appendChild(r),this.nodes.buttons.push(r),this.Editor.Listeners.on(r,"click",function(o){n.toolButtonActivate(o,e)});var i=this.Editor.Tools.getToolSettings(e);i&&i[this.Editor.Tools.apiSettings.SHORTCUT]&&this.enableShortcut(t,e,i[this.Editor.Tools.apiSettings.SHORTCUT]),this.displayedToolsCount++}}else c.default.log("Toolbar icon is missed. Tool %o skipped","warn",e)}},{key:"enableShortcut",value:function(e,o,t){var n=this;this.Editor.Shortcuts.add({name:t,handler:function(t){t.preventDefault(),n.insertNewBlock(e,o)}})}},{key:"insertNewBlock",value:function(e,o){var t,n=this.Editor.BlockManager.currentBlock;(t=n.isEmpty?this.Editor.BlockManager.replace(o):this.Editor.BlockManager.insert(o)).call("appendCallback",{}),this.Editor.Caret.setToBlock(t),this.Editor.Toolbar.close()}},{key:"getActiveTool",get:function(){var e=this.nodes.toolbox.childNodes;return-1===this.activeButtonIndex?null:e[this.activeButtonIndex].title}},{key:"isEmpty",get:function(){return 0===this.displayedToolsCount}}],[{key:"CSS",get:function(){return{toolbox:"ce-toolbox",toolboxButton:"ce-toolbox__button",toolboxButtonActive:"ce-toolbox__button--active",toolboxOpened:"ce-toolbox--opened"}}}]),o}(d.default);n.default=m,m.displayName="Toolbox",m.LEAF_DIRECTIONS={RIGHT:"right",LEFT:"left"},e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/tools.ts": /*!*****************************************!*\ !*** ./src/components/modules/tools.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../tools/paragraph/dist/bundle */"./src/components/tools/paragraph/dist/bundle.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),c=_(c),a=_(a),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var v=function(e){function o(e){var t,n=e.config;return(0,i.default)(this,o),(t=(0,u.default)(this,(0,d.default)(o).call(this,{config:n}))).toolsClasses={},t.toolsAvailable={},t.toolsUnavailable={},t.toolsSettings={},t._inlineTools={},t.toolsClasses={},t.toolsSettings={},t.toolsAvailable={},t.toolsUnavailable={},t._inlineTools=null,t}return(0,c.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=this;if(Object.assign(this.config.tools,this.internalTools),!this.config.hasOwnProperty("tools")||0===Object.keys(this.config.tools).length)throw Error("Can't start without tools");for(var o in this.config.tools)"object"===(0,r.default)(this.config.tools[o])?(this.toolsClasses[o]=this.config.tools[o].class,this.toolsSettings[o]=this.config.tools[o],delete this.toolsSettings[o].class):(this.toolsClasses[o]=this.config.tools[o],this.toolsSettings[o]={class:this.config.tools[o]});var t=this.getListOfPrepareFunctions();return 0===t.length?Promise.resolve():m.default.sequence(t,function(o){e.success(o)},function(o){e.fallback(o)})}},{key:"success",value:function(e){this.toolsAvailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"fallback",value:function(e){this.toolsUnavailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"construct",value:function(e,o){var t=this.toolsClasses[e],n=this.toolsSettings[e][this.apiSettings.CONFIG],s={api:this.Editor.API.methods,config:n||{},data:o};return new t(s)}},{key:"constructInline",value:function(e){var o={api:this.Editor.API.methods};return new e(o)}},{key:"isInitial",value:function(e){return e instanceof this.available[this.config.initialBlock]}},{key:"getToolSettings",value:function(e){return this.toolsSettings[e]}},{key:"getListOfPrepareFunctions",value:function(){var e=[];for(var o in this.toolsClasses)if(this.toolsClasses.hasOwnProperty(o)){var t=this.toolsClasses[o];"function"==typeof t.prepare?e.push({function:t.prepare,data:{toolName:o,config:this.toolsSettings[o][this.apiSettings.CONFIG]}}):this.toolsAvailable[o]=t}return e}},{key:"available",get:function(){return this.toolsAvailable}},{key:"unavailable",get:function(){return this.toolsUnavailable}},{key:"inline",get:function(){var e=this;if(this._inlineTools)return this._inlineTools;var o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);if(!n[e.apiSettings.IS_INLINE])return!1;var r=["render","surround","checkState"].filter(function(o){return!e.constructInline(n)[o]});return!r.length||(m.default.log("Incorrect Inline Tool: ".concat(n.name,". Some of required methods is not implemented %o"),"warn",r),!1)}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),this._inlineTools=t,this._inlineTools}},{key:"blockTools",get:function(){var e=this,o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);return!n[e.apiSettings.IS_INLINE]}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),t}},{key:"apiSettings",get:function(){return{CONFIG:"config",IS_DISPLAYED_IN_TOOLBOX:"displayInToolbox",IS_ENABLED_INLINE_TOOLBAR:"inlineToolbar",IS_ENABLED_LINE_BREAKS:"enableLineBreaks",IS_INLINE:"isInline",IS_PASTE_DISALLOWED:"disallowPaste",SHORTCUT:"shortcut",TOOLBAR_ICON:"toolboxIcon",SANITIZE_CONFIG:"sanitize"}}},{key:"internalTools",get:function(){return{bold:p.default,italic:h.default,link:j.default,paragraph:{class:a.default,inlineToolbar:!0}}}}]),o}(f.default);n.default=v,v.displayName="Tools",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/ui.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../tools/paragraph/dist/bundle */"./src/components/tools/paragraph/dist/bundle.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(e){var t,n=e.config;return(0,i.default)(this,o),(t=(0,u.default)(this,(0,d.default)(o).call(this,{config:n}))).toolsClasses={},t.toolsAvailable={},t.toolsUnavailable={},t.toolsSettings={},t._inlineTools={},t.toolsClasses={},t.toolsSettings={},t.toolsAvailable={},t.toolsUnavailable={},t._inlineTools=null,t}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=this;if(Object.assign(this.config.tools,this.internalTools),!this.config.hasOwnProperty("tools")||0===Object.keys(this.config.tools).length)throw Error("Can't start without tools");for(var o in this.config.tools)"object"===(0,r.default)(this.config.tools[o])?(this.toolsClasses[o]=this.config.tools[o].class,this.toolsSettings[o]=this.config.tools[o],delete this.toolsSettings[o].class):(this.toolsClasses[o]=this.config.tools[o],this.toolsSettings[o]={class:this.config.tools[o]});var t=this.getListOfPrepareFunctions();return 0===t.length?Promise.resolve():m.default.sequence(t,function(o){e.success(o)},function(o){e.fallback(o)})}},{key:"success",value:function(e){this.toolsAvailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"fallback",value:function(e){this.toolsUnavailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"construct",value:function(e,o){var t=this.toolsClasses[e],n=this.toolsSettings[e][this.apiSettings.CONFIG],s={api:this.Editor.API.methods,config:n||{},data:o};return new t(s)}},{key:"constructInline",value:function(e){var o={api:this.Editor.API.methods};return new e(o)}},{key:"isInitial",value:function(e){return e instanceof this.available[this.config.initialBlock]}},{key:"getToolSettings",value:function(e){return this.toolsSettings[e]}},{key:"getListOfPrepareFunctions",value:function(){var e=[];for(var o in this.toolsClasses)if(this.toolsClasses.hasOwnProperty(o)){var t=this.toolsClasses[o];"function"==typeof t.prepare?e.push({function:t.prepare,data:{toolName:o,config:this.toolsSettings[o][this.apiSettings.CONFIG]}}):this.toolsAvailable[o]=t}return e}},{key:"available",get:function(){return this.toolsAvailable}},{key:"unavailable",get:function(){return this.toolsUnavailable}},{key:"inline",get:function(){var e=this;if(this._inlineTools)return this._inlineTools;var o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);if(!n[e.apiSettings.IS_INLINE])return!1;var r=["render","surround","checkState"].filter(function(o){return!e.constructInline(n)[o]});return!r.length||(m.default.log("Incorrect Inline Tool: ".concat(n.name,". Some of required methods is not implemented %o"),"warn",r),!1)}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),this._inlineTools=t,this._inlineTools}},{key:"blockTools",get:function(){var e=this,o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);return!n[e.apiSettings.IS_INLINE]}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),t}},{key:"apiSettings",get:function(){return{CONFIG:"config",IS_DISPLAYED_IN_TOOLBOX:"displayInToolbox",IS_ENABLED_INLINE_TOOLBAR:"inlineToolbar",IS_ENABLED_LINE_BREAKS:"enableLineBreaks",IS_INLINE:"isInline",IS_PASTE_DISALLOWED:"disallowPaste",SHORTCUT:"shortcut",TOOLBAR_ICON:"toolboxIcon",SANITIZE_CONFIG:"sanitize"}}},{key:"internalTools",get:function(){return{bold:p.default,italic:h.default,link:j.default,paragraph:{class:c.default,inlineToolbar:!0}}}}]),o}(f.default);n.default=b,b.displayName="Tools",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/ui.ts": /*!**************************************!*\ !*** ./src/components/modules/ui.ts ***! \**************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../../build/sprite.svg */"./build/sprite.svg"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=j(s),r=j(r),i=j(i),l=j(l),u=j(u),d=j(d),c=j(c),a=j(a),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).nodes={holder:null,wrapper:null,redactor:null},e}return(0,c.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.make();case 2:return e.next=4,this.appendSVGSprite();case 4:return e.next=6,this.Editor.Toolbar.make();case 6:return e.next=8,this.Editor.InlineToolbar.make();case 8:return e.next=10,this.loadStyles();case 10:return e.next=12,this.bindEvents();case 12:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"destroy",value:function(){this.nodes.holder.innerHTML=""}},{key:"make",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.nodes.holder=document.getElementById(this.config.holderId),this.nodes.holder){e.next=3;break}throw Error("Holder wasn't found by ID: #"+this.config.holderId);case 3:this.nodes.wrapper=m.default.make("div",this.CSS.editorWrapper),this.nodes.redactor=m.default.make("div",this.CSS.editorZone),this.nodes.wrapper.appendChild(this.nodes.redactor),this.nodes.holder.appendChild(this.nodes.wrapper);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"loadStyles",value:function(){var e=t(/*! ../../styles/main.css */"./src/styles/main.css"),o=m.default.make("style",null,{textContent:e.toString()});m.default.prepend(document.head,o)}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.redactor,"click",function(o){return e.redactorClicked(o)},!1),this.Editor.Listeners.on(document,"keydown",function(o){return e.documentKeydown(o)},!0),this.Editor.Listeners.on(document,"click",function(o){return e.documentClicked(o)},!1)}},{key:"documentKeydown",value:function(e){switch(e.keyCode){case p.default.keyCodes.ENTER:this.enterPressed(e);break;default:this.defaultBehaviour(e)}}},{key:"defaultBehaviour",value:function(e){var o=e.target.closest(".".concat(this.CSS.editorWrapper));o||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close())}},{key:"enterPressed",value:function(e){var o=this.Editor.BlockManager.currentBlockIndex>=0;if(o&&"BODY"===e.target.tagName){var t=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(t),this.Editor.BlockManager.highlightCurrentNode(),this.Editor.Toolbar.move(),this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"documentClicked",value:function(e){var o=e.target,t=o.closest(".".concat(this.Editor.InlineToolbar.CSS.inlineToolbar)),n=o.closest(".".concat(this.CSS.editorWrapper));n||h.default.isAtEditor||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close()),t||this.Editor.InlineToolbar.handleShowingEvent(e),h.default.isAtEditor&&this.Editor.BlockManager.setCurrentBlockByChildNode(h.default.anchorNode),this.Editor.BlockSelection.clearSelection()}},{key:"redactorClicked",value:function(e){var o=e.target;try{this.Editor.BlockManager.setCurrentBlockByChildNode(o),this.Editor.BlockManager.highlightCurrentNode()}catch(e){this.Editor.Caret.setToTheLastBlock()}e.stopImmediatePropagation(),e.stopPropagation(),this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.hide(),this.Editor.BlockManager.currentBlock||this.Editor.BlockManager.insert();var t=this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool);if(t){var n=this.Editor.BlockManager.currentBlock.isEmpty;n&&this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"appendSVGSprite",value:function(){var e=m.default.make("div");e.hidden=!0,e.style.display="none",e.innerHTML=a.default,m.default.append(this.nodes.wrapper,e)}},{key:"CSS",get:function(){return{editorWrapper:"codex-editor",editorZone:"codex-editor__redactor"}}}]),o}(f.default);n.default=_,_.displayName="UI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/polyfills.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../../build/sprite.svg */"./build/sprite.svg"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=j(s),r=j(r),i=j(i),l=j(l),u=j(u),d=j(d),a=j(a),c=j(c),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).nodes={holder:null,wrapper:null,redactor:null},e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.make();case 2:return e.next=4,this.appendSVGSprite();case 4:return e.next=6,this.Editor.Toolbar.make();case 6:return e.next=8,this.Editor.InlineToolbar.make();case 8:return e.next=10,this.loadStyles();case 10:return e.next=12,this.bindEvents();case 12:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"destroy",value:function(){this.nodes.holder.innerHTML=""}},{key:"make",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.nodes.holder=document.getElementById(this.config.holderId),this.nodes.holder){e.next=3;break}throw Error("Holder wasn't found by ID: #"+this.config.holderId);case 3:this.nodes.wrapper=m.default.make("div",this.CSS.editorWrapper),this.nodes.redactor=m.default.make("div",this.CSS.editorZone),this.nodes.wrapper.appendChild(this.nodes.redactor),this.nodes.holder.appendChild(this.nodes.wrapper);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"loadStyles",value:function(){var e=t(/*! ../../styles/main.css */"./src/styles/main.css"),o=m.default.make("style",null,{textContent:e.toString()});m.default.prepend(document.head,o)}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.redactor,"click",function(o){return e.redactorClicked(o)},!1),this.Editor.Listeners.on(document,"keydown",function(o){return e.documentKeydown(o)},!0),this.Editor.Listeners.on(document,"click",function(o){return e.documentClicked(o)},!1)}},{key:"documentKeydown",value:function(e){switch(e.keyCode){case p.default.keyCodes.ENTER:this.enterPressed(e);break;default:this.defaultBehaviour(e)}}},{key:"defaultBehaviour",value:function(e){var o=e.target.closest(".".concat(this.CSS.editorWrapper));o||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close())}},{key:"enterPressed",value:function(e){var o=this.Editor.BlockManager.currentBlockIndex>=0;if(o&&"BODY"===e.target.tagName){var t=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(t),this.Editor.BlockManager.highlightCurrentNode(),this.Editor.Toolbar.move(),this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"documentClicked",value:function(e){var o=e.target,t=o.closest(".".concat(this.Editor.InlineToolbar.CSS.inlineToolbar)),n=o.closest(".".concat(this.CSS.editorWrapper));n||h.default.isAtEditor||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close()),t||this.Editor.InlineToolbar.handleShowingEvent(e),h.default.isAtEditor&&this.Editor.BlockManager.setCurrentBlockByChildNode(h.default.anchorNode),this.Editor.BlockSelection.clearSelection()}},{key:"redactorClicked",value:function(e){var o=e.target;try{this.Editor.BlockManager.setCurrentBlockByChildNode(o),this.Editor.BlockManager.highlightCurrentNode()}catch(e){this.Editor.Caret.setToTheLastBlock()}e.stopImmediatePropagation(),e.stopPropagation(),this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.hide(),this.Editor.BlockManager.currentBlock||this.Editor.BlockManager.insert();var t=this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool);if(t){var n=this.Editor.BlockManager.currentBlock.isEmpty;n&&this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"appendSVGSprite",value:function(){var e=m.default.make("div");e.hidden=!0,e.style.display="none",e.innerHTML=c.default,m.default.append(this.nodes.wrapper,e)}},{key:"CSS",get:function(){return{editorWrapper:"codex-editor",editorZone:"codex-editor__redactor"}}}]),o}(f.default);n.default=_,_.displayName="UI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/polyfills.ts": /*!*************************************!*\ !*** ./src/components/polyfills.ts ***! \*************************************/ @@ -1429,15 +1439,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu * @license The MIT License (MIT) * @version 2.0.0 */ -var s=function(){function e(o){var t=o.data,n=(o.config,o.api);!function(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this,e),this.api=n,this._CSS={block:this.api.styles.block,wrapper:"ce-paragraph"},this._data={},this._element=this.drawView(),this.data=t}return n(e,null,[{key:"displayInToolbox",get:function(){return!1}}]),n(e,[{key:"drawView",value:function(){var e=document.createElement("DIV");return e.classList.add(this._CSS.wrapper,this._CSS.block),e.contentEditable=!0,e}},{key:"render",value:function(){return this._element}},{key:"merge",value:function(e){var o={text:this.data.text+e.text};this.data=o}},{key:"validate",value:function(e){return""!==e.text.trim()}},{key:"save",value:function(e){return{text:e.innerHTML}}},{key:"sanitize",get:function(){return{text:{a:{href:!0,target:"_blank",rel:"nofollow"},b:{},i:{},br:!0,span:{class:"inline-code"},mark:{class:"cdx-marker"}}}}},{key:"data",get:function(){var e=this._element.innerHTML;return this._data.text=e,this._data},set:function(e){this._data=e||{},this._element.innerHTML=this._data.text||""}}],[{key:"onPaste",get:function(){return{tags:["P"],handler:function(e){return{text:e.innerHTML}}}}}]),e}();e.exports=s},function(e,o,t){var n=t(2);"string"==typeof n&&(n=[[e.i,n,""]]),t(4)(n,{hmr:!0,transform:void 0,insertInto:void 0}),n.locals&&(e.exports=n.locals)},function(e,o,t){(e.exports=t(3)(!1)).push([e.i,".ce-paragraph {\n line-height: 1.6em;\n outline: none;\n}\n\n.ce-paragraph p:first-of-type{\n margin-top: 0;\n}\n\n.ce-paragraph p:last-of-type{\n margin-bottom: 0;\n}\n",""])},function(e,o){e.exports=function(e){var o=[];return o.toString=function(){return this.map(function(o){var t=function(e,o){var t=e[1]||"",n=e[3];if(!n)return t;if(o&&"function"==typeof btoa){var s=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(n),r=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[t].concat(r).concat([s]).join("\n")}return[t].join("\n")}(o,e);return o[2]?"@media "+o[2]+"{"+t+"}":t}).join("")},o.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},s=0;s=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=v.bind(null,t,u,!1),s=v.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=a(e,o);return c(t,o),function(e){for(var s=[],r=0;r=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=b.bind(null,t,u,!1),s=b.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=c(e,o);return a(t,o),function(e){for(var s=[],r=0;r1&&void 0!==arguments[1]?arguments[1]:"log",t=arguments.length>2?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"color: inherit";if("console"in window&&window.console[o]){var s="Editor.js ".concat("2.5.6"),r="line-height: 1em;\n color: #006FEA;\n display: inline-block;\n font-size: 11px;\n line-height: 1em;\n background-color: #fff;\n padding: 4px 9px;\n border-radius: 30px;\n border: 1px solid rgba(56, 138, 229, 0.16);\n margin: 4px 5px 4px 0;";try{["time","timeEnd"].includes(o)?console[o]("( ".concat(s," ) ").concat(e)):t?console[o]("%c".concat(s,"%c ").concat(e," %o"),r,n,t):console[o]("%c".concat(s,"%c ").concat(e),r,n)}catch(e){}}}},{key:"sequence",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,i,l,u=arguments;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){return(l=(0,r.default)(s.default.mark(function e(o,t,n){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.function(o.data);case 3:return e.next=5,t(void 0!==o.data?o.data:{});case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),n(void 0!==o.data?o.data:{});case 10:case"end":return e.stop()}},e,this,[[0,7]])}))).apply(this,arguments)},i=function(e,o,t){return l.apply(this,arguments)},t=u.length>1&&void 0!==u[1]?u[1]:function(){},n=u.length>2&&void 0!==u[2]?u[2]:function(){},e.next=6,o.reduce(function(){var e=(0,r.default)(s.default.mark(function e(o,r){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o;case 2:return e.abrupt("return",i(r,t,n));case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}(),Promise.resolve());case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"array",value:function(e){return Array.prototype.slice.call(e)}},{key:"isFunction",value:function(e){return"function"==typeof e}},{key:"isClass",value:function(e){return"function"==typeof e&&/^\s*class\s+/.test(e.toString())}},{key:"isEmpty",value:function(e){return 0===Object.keys(e).length&&e.constructor===Object}},{key:"isPromise",value:function(e){return Promise.resolve(e)===e}},{key:"isContentEditable",value:function(e){return"true"===e.contentEditable}},{key:"delay",value:function(e,o){return function(){var t=this,n=arguments;window.setTimeout(function(){return e.apply(t,n)},o)}}},{key:"getFileExtension",value:function(e){return e.name.split(".").pop()}},{key:"isValidMimeType",value:function(e){return/^[-\w]+\/([-+\w]+|\*)$/.test(e)}},{key:"debounce",value:function(e,o,t){var n,s=this,r=arguments;return function(){var i=s,l=r,u=t&&!n;window.clearTimeout(n),n=window.setTimeout(function(){n=null,t||e.apply(i,l)},o),u&&e.apply(i,l)}}},{key:"copyTextToClipboard",value:function(e){var o=u.default.make("div","codex-editor-clipboard",{innerHTML:e});document.body.appendChild(o);var t=window.getSelection(),n=document.createRange();n.selectNode(o),window.getSelection().removeAllRanges(),t.addRange(n),document.execCommand("copy"),document.body.removeChild(o)}},{key:"keyCodes",get:function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,LEFT:37,UP:38,DOWN:40,RIGHT:39,DELETE:46,META:91}}}]),e}();n.default=c,c.displayName="Util",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/styles/main.css": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=d(s),r=d(r),i=d(i),l=d(l),u=d(u);var a=function(){function e(){(0,i.default)(this,e)}return(0,l.default)(e,null,[{key:"log",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log",t=arguments.length>2?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"color: inherit";if("console"in window&&window.console[o]){var s="Editor.js ".concat("2.6.0"),r="line-height: 1em;\n color: #006FEA;\n display: inline-block;\n font-size: 11px;\n line-height: 1em;\n background-color: #fff;\n padding: 4px 9px;\n border-radius: 30px;\n border: 1px solid rgba(56, 138, 229, 0.16);\n margin: 4px 5px 4px 0;";try{["time","timeEnd"].includes(o)?console[o]("( ".concat(s," ) ").concat(e)):t?console[o]("%c".concat(s,"%c ").concat(e," %o"),r,n,t):console[o]("%c".concat(s,"%c ").concat(e),r,n)}catch(e){}}}},{key:"sequence",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,i,l,u=arguments;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){return(l=(0,r.default)(s.default.mark(function e(o,t,n){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.function(o.data);case 3:return e.next=5,t(void 0!==o.data?o.data:{});case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),n(void 0!==o.data?o.data:{});case 10:case"end":return e.stop()}},e,this,[[0,7]])}))).apply(this,arguments)},i=function(e,o,t){return l.apply(this,arguments)},t=u.length>1&&void 0!==u[1]?u[1]:function(){},n=u.length>2&&void 0!==u[2]?u[2]:function(){},e.next=6,o.reduce(function(){var e=(0,r.default)(s.default.mark(function e(o,r){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o;case 2:return e.abrupt("return",i(r,t,n));case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}(),Promise.resolve());case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"array",value:function(e){return Array.prototype.slice.call(e)}},{key:"isFunction",value:function(e){return"function"==typeof e}},{key:"isClass",value:function(e){return"function"==typeof e&&/^\s*class\s+/.test(e.toString())}},{key:"isEmpty",value:function(e){return 0===Object.keys(e).length&&e.constructor===Object}},{key:"isPromise",value:function(e){return Promise.resolve(e)===e}},{key:"isContentEditable",value:function(e){return"true"===e.contentEditable}},{key:"delay",value:function(e,o){return function(){var t=this,n=arguments;window.setTimeout(function(){return e.apply(t,n)},o)}}},{key:"getFileExtension",value:function(e){return e.name.split(".").pop()}},{key:"isValidMimeType",value:function(e){return/^[-\w]+\/([-+\w]+|\*)$/.test(e)}},{key:"debounce",value:function(e,o,t){var n,s=this,r=arguments;return function(){var i=s,l=r,u=t&&!n;window.clearTimeout(n),n=window.setTimeout(function(){n=null,t||e.apply(i,l)},o),u&&e.apply(i,l)}}},{key:"copyTextToClipboard",value:function(e){var o=u.default.make("div","codex-editor-clipboard",{innerHTML:e});document.body.appendChild(o);var t=window.getSelection(),n=document.createRange();n.selectNode(o),window.getSelection().removeAllRanges(),t.addRange(n),document.execCommand("copy"),document.body.removeChild(o)}},{key:"keyCodes",get:function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,LEFT:37,UP:38,DOWN:40,RIGHT:39,DELETE:46,META:91}}}]),e}();n.default=a,a.displayName="Util",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/styles/main.css": /*!*****************************!*\ !*** ./src/styles/main.css ***! \*****************************/ -/*! no static exports found */function(e,o,t){(e.exports=t(/*! ../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,":root {\n /**\n * Selection color\n */\n --selectionColor: #a8d6ff;\n\n /**\n * Toolbar buttons\n */\n --bg-light: #eff2f5;\n\n /**\n * All gray texts: placeholders, settings\n */\n --grayText: #707684;\n\n /**\n * Blue icons\n */\n --color-active-icon: #388AE5;\n\n /**\n * Gray border, loaders\n */\n --color-gray-border: rgba(201, 201, 204, 0.48);\n\n /**\n * Block content width\n */\n --content-width: 650px;\n\n /**\n * Toolbar buttons height and width\n */\n --toolbar-buttons-size: 34px;\n\n /**\n * Toolbar Plus Button and Toolbox buttons height and width\n */\n --toolbox-buttons-size: 24px;\n\n /**\n * Confirm deletion bg\n */\n --color-confirm: #E24A4A;\n}\n/**\n* Editor wrapper\n*/\n.codex-editor {\n position: relative;\n box-sizing: border-box;\n}\n.codex-editor .hide {\n display: none;\n }\n.codex-editor__redactor {\n padding-bottom: 300px;\n }\n.codex-editor-copyable {\n position: absolute;\n height: 1px;\n width: 1px;\n top: -400%;\n opacity: 0.001;\n }\n.codex-editor svg {\n fill: currentColor;\n vertical-align: middle;\n max-height: 100%;\n }\n/**\n * Set color for native selection\n */\n::selection{\n background-color: #a8d6ff;\n background-color: var(--selectionColor);\n}\n/**\n * Add placeholder to content editable elements with data attribute\n * data-placeholder=\"Hello world!\"\n */\n[contentEditable=true][data-placeholder]:empty::before{\n content: attr(data-placeholder);\n color: #707684;\n color: var(--grayText);\n font-weight: normal;\n}\n[contentEditable=true][data-placeholder]:empty:focus::before {\n opacity: 0.3;\n}\n.ce-toolbar {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n /*opacity: 0;*/\n /*visibility: hidden;*/\n transition: opacity 100ms ease;\n will-change: opacity, transform;\n display: none;\n}\n.ce-toolbar--opened {\n display: block;\n /*opacity: 1;*/\n /*visibility: visible;*/\n }\n.ce-toolbar__content {\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n position: relative;\n }\n.ce-toolbar__plus {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center\n }\n.ce-toolbar__plus:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbar__plus {\n\n position: absolute;\n left: calc(calc(24px + 10px) * -1);\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\n }\n.ce-toolbar__plus:hover,\n .ce-toolbar__plus--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbar__plus--active{\n animation: bounceIn 0.75s 1;\n animation-fill-mode: forwards;\n }\n.ce-toolbar__plus--hidden {\n display: none;\n }\n.ce-toolbar__plus,\n .ce-toolbar .ce-toolbox {\n top: 50%;\n transform: translateY(-50%);\n }\n/**\n * Block actions Zone\n * -------------------------\n */\n.ce-toolbar__actions {\n position: absolute;\n right: 0;\n top: 10px;\n padding-right: 16px;\n opacity: 0;\n }\n.ce-toolbar__actions--opened {\n opacity: 1;\n }\n.ce-toolbar__actions-buttons {\n text-align: right;\n }\n.ce-toolbar__settings-btn {\n display: inline-block;\n width: 24px;\n height: 24px;\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n }\n.ce-toolbox {\n position: absolute;\n visibility: hidden;\n transition: opacity 100ms ease;\n will-change: opacity;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.ce-toolbox--opened {\n opacity: 1;\n visibility: visible;\n }\n.ce-toolbox__button {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n }\n.ce-toolbox__button:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbox__button:hover,\n .ce-toolbox__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbox__button--active{\n animation: bounceIn 0.75s 1;\n animation-fill-mode: forwards;\n }\n.ce-inline-toolbar {\n position: absolute;\n background-color: #FFFFFF;\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-inline-toolbar::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-inline-toolbar {\n padding: 6px;\n transform: translateX(-50%);\n display: none;\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\n}\n.ce-inline-toolbar--showed {\n display: block;\n }\n.ce-inline-toolbar [hidden] {\n display: none !important;\n }\n.ce-inline-tool {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.ce-inline-tool:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-inline-tool:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-inline-tool {\n line-height: normal;\n}\n.ce-inline-tool > svg,\n .ce-inline-tool .icon {\n margin: auto;\n }\n.ce-inline-tool--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-inline-tool--last {\n margin-right: 0 !important;\n }\n.ce-inline-tool--link .icon {\n margin-top: -2px;\n }\n.ce-inline-tool--link .icon--unlink {\n display: none;\n }\n.ce-inline-tool--unlink .icon--link {\n display: none;\n }\n.ce-inline-tool--unlink .icon--unlink {\n display: inline-block;\n }\n.ce-inline-tool-input {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n outline: none;\n border: 0;\n border-radius: 3px;\n margin: 6px 0 0;\n font-size: 13px;\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n display: none\n }\n.ce-inline-tool-input:-ms-input-placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input::placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input--showed {\n display: block;\n }\n.ce-settings {\n position: absolute;\n background-color: #FFFFFF;\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-settings::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-settings {\n right: 5px;\n top: 35px;\n min-width: 124px\n}\n.ce-settings::before{\n left: auto;\n right: 12px;\n }\n.ce-settings {\n\n display: none;\n}\n.ce-settings--opened {\n display: block;\n animation-duration: 0.5s;\n animation-name: bounceIn;\n }\n.ce-settings__plugin-zone:not(:empty){\n padding: 6px 6px 0;\n }\n.ce-settings__default-zone:not(:empty){\n padding: 6px;\n }\n.ce-settings__button {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n }\n.ce-settings__button:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-settings__button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-settings__button {\n line-height: 32px;\n }\n.ce-settings__button > svg,\n .ce-settings__button .icon {\n margin: auto;\n }\n.ce-settings__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--disabled {\n cursor: not-allowed !important;\n opacity: .3;\n }\n.ce-settings__button--selected {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--delete {\n transition: background-color 300ms ease;\n will-change: background-color;\n }\n.ce-settings__button--delete .icon {\n transition: transform 200ms ease-out;\n will-change: transform;\n }\n.ce-settings__button--confirm {\n background-color: #E24A4A;\n background-color: var(--color-confirm);\n color: #fff\n }\n.ce-settings__button--confirm:hover {\n background-color: rgb(213, 74, 74) !important;\n background-color: rgb(213, 74, 74) !important;\n }\n.ce-settings__button--confirm .icon {\n transform: rotate(90deg);\n }\n.ce-block:first-of-type {\n margin-top: 0;\n }\n.ce-block--focused {\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\n border-radius: 3px;\n }\n.ce-block--selected .ce-block__content {\n background: #a8d6ff;\n background: var(--selectionColor);\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\n animation: selectionBounce 0.2s 1;\n animation-fill-mode: forwards;\n }\n.ce-block--selected .ce-block__content img {\n opacity: 0.55;\n }\n.ce-block--stretched .ce-block__content {\n max-width: none;\n }\n.ce-block__content {\n position: relative;\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n }\n.ce-block--drop-target .ce-block__content:before {\n content: '';\n position: absolute;\n top: 100%;\n left: -20px;\n margin-top: -1px;\n height: 8px;\n width: 8px;\n border: solid #388AE5;\n border: solid var(--color-active-icon);\n border-width: 1px 1px 0 0;\n transform-origin: right;\n transform: rotate(45deg);\n }\n.ce-block--drop-target .ce-block__content:after {\n content: '';\n position: absolute;\n top: 100%;\n height: 1px;\n width: 100%;\n color: #388AE5;\n color: var(--color-active-icon);\n background: repeating-linear-gradient(\n 90deg,\n #388AE5,\n #388AE5 1px,\n #fff 1px,\n #fff 6px\n );\n background: repeating-linear-gradient(\n 90deg,\n var(--color-active-icon),\n var(--color-active-icon) 1px,\n #fff 1px,\n #fff 6px\n );\n }\n.wobble {\n animation-name: wobble;\n animation-duration: 400ms;\n}\n/**\n * @author Nick Pettit - https://github.com/nickpettit/glide\n */\n@keyframes wobble {\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 20% {\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 60% {\n transform: scale3d(1, 1, 1);\n }\n}\n@keyframes selectionBounce {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 50% {\n transform: scale3d(1.01, 1.01, 1.01);\n }\n\n 70% {\n transform: scale3d(1, 1, 1);\n }\n}\n/**\n * Block Tool wrapper\n */\n.cdx-block {\n padding: 0.7em 0;\n}\n/**\n * Input\n */\n.cdx-input {\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\n border-radius: 3px;\n padding: 10px 12px;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n}\n/**\n * Settings\n */\n.cdx-settings-button {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.cdx-settings-button:not(:last-of-type){\n margin-right: 5px;\n }\n.cdx-settings-button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.cdx-settings-button > svg,\n .cdx-settings-button .icon {\n margin: auto;\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n/**\n * Loader\n */\n.cdx-loader {\n position: relative;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border)\n}\n.cdx-loader::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n width: 18px;\n height: 18px;\n margin: -11px 0 0 -11px;\n border: 2px solid rgba(201, 201, 204, 0.48);\n border: 2px solid var(--color-gray-border);\n border-left-color: #388AE5;\n border-left-color: var(--color-active-icon);\n border-radius: 50%;\n animation: cdxRotation 1.2s infinite linear;\n }\n@keyframes cdxRotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n/**\n * Button\n */\n.cdx-button {\n padding: 13px;\n border-radius: 3px;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n font-size: 14.9px;\n background: #fff;\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\n color: #707684;\n color: var(--grayText);\n text-align: center;\n cursor: pointer\n}\n.cdx-button:hover {\n background: #FBFCFE;\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\n }\n.cdx-button svg {\n height: 20px;\n margin-right: 0.2em;\n margin-top: -2px;\n }\n",""])},0: +/*! no static exports found */function(e,o,t){(e.exports=t(/*! ../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,":root {\n /**\n * Selection color\n */\n --selectionColor: #a8d6ff;\n\n /**\n * Toolbar buttons\n */\n --bg-light: #eff2f5;\n\n /**\n * All gray texts: placeholders, settings\n */\n --grayText: #707684;\n\n /**\n * Blue icons\n */\n --color-active-icon: #388AE5;\n\n /**\n * Gray border, loaders\n */\n --color-gray-border: rgba(201, 201, 204, 0.48);\n\n /**\n * Block content width\n */\n --content-width: 650px;\n\n /**\n * Toolbar buttons height and width\n */\n --toolbar-buttons-size: 34px;\n\n /**\n * Toolbar Plus Button and Toolbox buttons height and width\n */\n --toolbox-buttons-size: 24px;\n\n /**\n * Confirm deletion bg\n */\n --color-confirm: #E24A4A;\n}\n/**\n* Editor wrapper\n*/\n.codex-editor {\n position: relative;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.codex-editor .hide {\n display: none;\n }\n.codex-editor__redactor {\n padding-bottom: 300px;\n }\n.codex-editor-copyable {\n position: absolute;\n height: 1px;\n width: 1px;\n top: -400%;\n opacity: 0.001;\n }\n.codex-editor svg {\n fill: currentColor;\n vertical-align: middle;\n max-height: 100%;\n }\n/**\n * Set color for native selection\n */\n::-moz-selection{\n background-color: #a8d6ff;\n background-color: var(--selectionColor);\n}\n::selection{\n background-color: #a8d6ff;\n background-color: var(--selectionColor);\n}\n/**\n * Add placeholder to content editable elements with data attribute\n * data-placeholder=\"Hello world!\"\n */\n[contentEditable=true][data-placeholder]:empty::before{\n content: attr(data-placeholder);\n color: #707684;\n color: var(--grayText);\n font-weight: normal;\n}\n[contentEditable=true][data-placeholder]:empty:focus::before {\n opacity: 0.3;\n}\n.ce-toolbar {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n /*opacity: 0;*/\n /*visibility: hidden;*/\n -webkit-transition: opacity 100ms ease;\n transition: opacity 100ms ease;\n will-change: opacity, transform;\n display: none;\n}\n.ce-toolbar--opened {\n display: block;\n /*opacity: 1;*/\n /*visibility: visible;*/\n }\n.ce-toolbar__content {\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n position: relative;\n }\n.ce-toolbar__plus {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center\n }\n.ce-toolbar__plus:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbar__plus {\n\n position: absolute;\n left: calc(calc(24px + 10px) * -1);\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\n }\n.ce-toolbar__plus:hover,\n .ce-toolbar__plus--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbar__plus--active{\n -webkit-animation: bounceIn 0.75s 1;\n animation: bounceIn 0.75s 1;\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n }\n.ce-toolbar__plus--hidden {\n display: none;\n }\n.ce-toolbar__plus,\n .ce-toolbar .ce-toolbox {\n top: 50%;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n }\n/**\n * Block actions Zone\n * -------------------------\n */\n.ce-toolbar__actions {\n position: absolute;\n right: 0;\n top: 10px;\n padding-right: 16px;\n opacity: 0;\n }\n.ce-toolbar__actions--opened {\n opacity: 1;\n }\n.ce-toolbar__actions-buttons {\n text-align: right;\n }\n.ce-toolbar__settings-btn {\n display: inline-block;\n width: 24px;\n height: 24px;\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n }\n.ce-toolbox {\n position: absolute;\n visibility: hidden;\n -webkit-transition: opacity 100ms ease;\n transition: opacity 100ms ease;\n will-change: opacity;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.ce-toolbox--opened {\n opacity: 1;\n visibility: visible;\n }\n.ce-toolbox__button {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n }\n.ce-toolbox__button:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbox__button:hover,\n .ce-toolbox__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbox__button--active{\n -webkit-animation: bounceIn 0.75s 1;\n animation: bounceIn 0.75s 1;\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n }\n.ce-inline-toolbar {\n position: absolute;\n background-color: #FFFFFF;\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-inline-toolbar::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-inline-toolbar {\n padding: 6px;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n display: none;\n -webkit-box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\n}\n.ce-inline-toolbar--showed {\n display: block;\n }\n.ce-inline-toolbar [hidden] {\n display: none !important;\n }\n.ce-inline-tool {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.ce-inline-tool:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-inline-tool:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-inline-tool {\n line-height: normal;\n}\n.ce-inline-tool > svg,\n .ce-inline-tool .icon {\n margin: auto;\n }\n.ce-inline-tool--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-inline-tool--last {\n margin-right: 0 !important;\n }\n.ce-inline-tool--link .icon {\n margin-top: -2px;\n }\n.ce-inline-tool--link .icon--unlink {\n display: none;\n }\n.ce-inline-tool--unlink .icon--link {\n display: none;\n }\n.ce-inline-tool--unlink .icon--unlink {\n display: inline-block;\n }\n.ce-inline-tool-input {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n outline: none;\n border: 0;\n border-radius: 3px;\n margin: 6px 0 0;\n font-size: 13px;\n padding: 8px;\n width: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: none\n }\n.ce-inline-tool-input::-webkit-input-placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input::-ms-input-placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input::placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input--showed {\n display: block;\n }\n.ce-settings {\n position: absolute;\n background-color: #FFFFFF;\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-settings::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-settings {\n right: 5px;\n top: 35px;\n min-width: 124px\n}\n.ce-settings::before{\n left: auto;\n right: 12px;\n }\n.ce-settings {\n\n display: none;\n}\n.ce-settings--opened {\n display: block;\n -webkit-animation-duration: 0.5s;\n animation-duration: 0.5s;\n -webkit-animation-name: bounceIn;\n animation-name: bounceIn;\n }\n.ce-settings__plugin-zone:not(:empty){\n padding: 6px 6px 0;\n }\n.ce-settings__default-zone:not(:empty){\n padding: 6px;\n }\n.ce-settings__button {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n }\n.ce-settings__button:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-settings__button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-settings__button {\n line-height: 32px;\n }\n.ce-settings__button > svg,\n .ce-settings__button .icon {\n margin: auto;\n }\n.ce-settings__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--disabled {\n cursor: not-allowed !important;\n opacity: .3;\n }\n.ce-settings__button--selected {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--delete {\n -webkit-transition: background-color 300ms ease;\n transition: background-color 300ms ease;\n will-change: background-color;\n }\n.ce-settings__button--delete .icon {\n -webkit-transition: -webkit-transform 200ms ease-out;\n transition: -webkit-transform 200ms ease-out;\n transition: transform 200ms ease-out;\n transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;\n will-change: transform;\n }\n.ce-settings__button--confirm {\n background-color: #E24A4A;\n background-color: var(--color-confirm);\n color: #fff\n }\n.ce-settings__button--confirm:hover {\n background-color: rgb(213, 74, 74) !important;\n background-color: rgb(213, 74, 74) !important;\n }\n.ce-settings__button--confirm .icon {\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n }\n.ce-block:first-of-type {\n margin-top: 0;\n }\n.ce-block--focused {\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\n border-radius: 3px;\n }\n.ce-block--selected .ce-block__content {\n background: #a8d6ff;\n background: var(--selectionColor);\n -webkit-box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\n -webkit-animation: selectionBounce 0.2s 1;\n animation: selectionBounce 0.2s 1;\n -webkit-animation-fill-mode: forwards;\n animation-fill-mode: forwards;\n }\n.ce-block--selected .ce-block__content img {\n opacity: 0.55;\n }\n.ce-block--stretched .ce-block__content {\n max-width: none;\n }\n.ce-block__content {\n position: relative;\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n }\n.ce-block--drop-target .ce-block__content:before {\n content: '';\n position: absolute;\n top: 100%;\n left: -20px;\n margin-top: -1px;\n height: 8px;\n width: 8px;\n border: solid #388AE5;\n border: solid var(--color-active-icon);\n border-width: 1px 1px 0 0;\n -webkit-transform-origin: right;\n transform-origin: right;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n.ce-block--drop-target .ce-block__content:after {\n content: '';\n position: absolute;\n top: 100%;\n height: 1px;\n width: 100%;\n color: #388AE5;\n color: var(--color-active-icon);\n background: repeating-linear-gradient(\n 90deg,\n #388AE5,\n #388AE5 1px,\n #fff 1px,\n #fff 6px\n );\n background: repeating-linear-gradient(\n 90deg,\n var(--color-active-icon),\n var(--color-active-icon) 1px,\n #fff 1px,\n #fff 6px\n );\n }\n.wobble {\n -webkit-animation-name: wobble;\n animation-name: wobble;\n -webkit-animation-duration: 400ms;\n animation-duration: 400ms;\n}\n/**\n * @author Nick Pettit - https://github.com/nickpettit/glide\n */\n@-webkit-keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes wobble {\n from {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 20% {\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 60% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 20% {\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 60% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n@-webkit-keyframes selectionBounce {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\n transform: scale3d(1.01, 1.01, 1.01);\n }\n\n 70% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n@keyframes selectionBounce {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 50% {\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\n transform: scale3d(1.01, 1.01, 1.01);\n }\n\n 70% {\n -webkit-transform: scale3d(1, 1, 1);\n transform: scale3d(1, 1, 1);\n }\n}\n/**\n * Block Tool wrapper\n */\n.cdx-block {\n padding: 0.7em 0;\n}\n/**\n * Input\n */\n.cdx-input {\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n -webkit-box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\n border-radius: 3px;\n padding: 10px 12px;\n outline: none;\n width: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n/**\n * Settings\n */\n.cdx-settings-button {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.cdx-settings-button:not(:last-of-type){\n margin-right: 5px;\n }\n.cdx-settings-button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.cdx-settings-button > svg,\n .cdx-settings-button .icon {\n margin: auto;\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n/**\n * Loader\n */\n.cdx-loader {\n position: relative;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border)\n}\n.cdx-loader::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n width: 18px;\n height: 18px;\n margin: -11px 0 0 -11px;\n border: 2px solid rgba(201, 201, 204, 0.48);\n border: 2px solid var(--color-gray-border);\n border-left-color: #388AE5;\n border-left-color: var(--color-active-icon);\n border-radius: 50%;\n -webkit-animation: cdxRotation 1.2s infinite linear;\n animation: cdxRotation 1.2s infinite linear;\n }\n@-webkit-keyframes cdxRotation {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes cdxRotation {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n/**\n * Button\n */\n.cdx-button {\n padding: 13px;\n border-radius: 3px;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n font-size: 14.9px;\n background: #fff;\n -webkit-box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\n color: #707684;\n color: var(--grayText);\n text-align: center;\n cursor: pointer\n}\n.cdx-button:hover {\n background: #FBFCFE;\n -webkit-box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\n }\n.cdx-button svg {\n height: 20px;\n margin-right: 0.2em;\n margin-top: -2px;\n }\n",""])},0: /*!*******************************************************!*\ !*** multi @babel/polyfill/noConflict ./src/codex.ts ***! \*******************************************************/ diff --git a/build/codex-editor.js.map b/build/codex-editor.js.map index ff16e37d..1f196f0d 100644 --- a/build/codex-editor.js.map +++ b/build/codex-editor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@babel/polyfill/lib/noConflict.js","webpack://CodexEditor/./node_modules/@babel/polyfill/noConflict.js","webpack://CodexEditor/./node_modules/@babel/register/lib/browser.js","webpack://CodexEditor/./node_modules/@babel/register/lib/index.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/inherits.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/@babel/runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/codex-notifier/dist/bundle.js","webpack://CodexEditor/./node_modules/core-js/es6/index.js","webpack://CodexEditor/./node_modules/core-js/fn/array/includes.js","webpack://CodexEditor/./node_modules/core-js/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/fn/object/values.js","webpack://CodexEditor/./node_modules/core-js/fn/promise/finally.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-end.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-start.js","webpack://CodexEditor/./node_modules/core-js/fn/symbol/async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-number-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-fill.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_bind.js","webpack://CodexEditor/./node_modules/core-js/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-weak.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails-is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/modules/_fix-re-wks.js","webpack://CodexEditor/./node_modules/core-js/modules/_flags.js","webpack://CodexEditor/./node_modules/core-js/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_inherit-if-required.js","webpack://CodexEditor/./node_modules/core-js/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-fround.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-sign.js","webpack://CodexEditor/./node_modules/core-js/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_strict-method.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-context.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-html.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-pad.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-trim.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-ws.js","webpack://CodexEditor/./node_modules/core-js/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed.js","webpack://CodexEditor/./node_modules/core-js/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.every.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.fill.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.filter.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find-index.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.for-each.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.join.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.last-index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.slice.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.some.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.sort.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.species.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.now.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.bind.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.has-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.name.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.acosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.asinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.atanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.clz32.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.fround.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.hypot.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.imul.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log10.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log2.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.tanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.trunc.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.epsilon.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-nan.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-precision.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-properties.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.freeze.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-frozen.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-sealed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.seal.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.has.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.flags.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.match.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.search.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.split.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.anchor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.big.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.blink.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.bold.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.code-point-at.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.ends-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontcolor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontsize.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.from-code-point.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.italics.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.link.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.raw.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.small.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.starts-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.strike.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sub.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sup.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.trim.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.data-view.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float64-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-set.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-end.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-start.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/web.dom.iterable.js","webpack://CodexEditor/./node_modules/core-js/modules/web.immediate.js","webpack://CodexEditor/./node_modules/core-js/modules/web.timers.js","webpack://CodexEditor/./node_modules/core-js/web/index.js","webpack://CodexEditor/./node_modules/css-loader/lib/css-base.js","webpack://CodexEditor/./node_modules/html-janitor/src/html-janitor.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./src/codex.ts","webpack://CodexEditor/./src/components/__module.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-delete.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-down.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-up.ts","webpack://CodexEditor/./src/components/block.ts","webpack://CodexEditor/./src/components/blocks.ts","webpack://CodexEditor/./src/components/core.ts","webpack://CodexEditor/./src/components/dom.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-bold.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-italic.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-link.ts","webpack://CodexEditor/./src/components/modules sync ^\\.\\/.*$","webpack://CodexEditor/./src/components/modules/api/blocks.ts","webpack://CodexEditor/./src/components/modules/api/caret.ts","webpack://CodexEditor/./src/components/modules/api/events.ts","webpack://CodexEditor/./src/components/modules/api/index.ts","webpack://CodexEditor/./src/components/modules/api/listeners.ts","webpack://CodexEditor/./src/components/modules/api/notifier.ts","webpack://CodexEditor/./src/components/modules/api/sanitizer.ts","webpack://CodexEditor/./src/components/modules/api/saver.ts","webpack://CodexEditor/./src/components/modules/api/selection.ts","webpack://CodexEditor/./src/components/modules/api/styles.ts","webpack://CodexEditor/./src/components/modules/api/toolbar.ts","webpack://CodexEditor/./src/components/modules/blockEvents.ts","webpack://CodexEditor/./src/components/modules/blockManager.ts","webpack://CodexEditor/./src/components/modules/blockSelection.ts","webpack://CodexEditor/./src/components/modules/caret.ts","webpack://CodexEditor/./src/components/modules/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.ts","webpack://CodexEditor/./src/components/modules/listeners.ts","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","webpack://CodexEditor/./src/components/modules/notifier.ts","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.ts","webpack://CodexEditor/./src/components/modules/sanitizer.ts","webpack://CodexEditor/./src/components/modules/saver.ts","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar/blockSettings.ts","webpack://CodexEditor/./src/components/modules/toolbar/index.ts","webpack://CodexEditor/./src/components/modules/toolbar/inline.ts","webpack://CodexEditor/./src/components/modules/toolbar/toolbox.ts","webpack://CodexEditor/./src/components/modules/tools.ts","webpack://CodexEditor/./src/components/modules/ui.ts","webpack://CodexEditor/./src/components/polyfills.ts","webpack://CodexEditor/./src/components/selection.ts","webpack://CodexEditor/./src/components/tools/paragraph/dist/bundle.js","webpack://CodexEditor/./src/components/utils.ts","webpack://CodexEditor/./src/styles/main.css"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","revert","args","register","node","assign","arr","Array","isArray","arr2","length","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","obj","iter","iterator","toString","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof2","g","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","e","global","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","result","keys","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","BACKSPACE","ENTER","ESCAPE","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","u","CMD","SHIFT","ALT","commands","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","show","message","getWrapper","document","body","appendChild","time","confirm","prompt","alert","setTimeout","remove","classList","add","hmr","transform","insertInto","locals","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","concat","join","all","atob","querySelector","HTMLIFrameElement","contentDocument","head","f","id","refs","parts","x","base","css","media","sourceMap","insertAt","nextSibling","insertBefore","firstChild","before","parentNode","removeChild","splice","b","createElement","attrs","setAttribute","singleton","h","URL","createObjectURL","revokeObjectURL","Blob","rel","convertToAbsoluteUrls","href","styleSheet","cssText","createTextNode","DEBUG","y","filter","Boolean","childNodes","location","protocol","host","pathname","replace","trim","test","style","innerHTML","cancelHandler","okHandler","okText","cancelText","placeholder","inputType","entries","getOwnPropertyDescriptors","String","padEnd","padStart","it","cof","msg","UNSCOPABLES","ArrayProto","forbiddenField","isObject","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","end","count","Math","min","inc","aLen","index","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","aFunction","memo","isRight","SPECIES","original","speciesConstructor","arraySlice","factories","partArgs","bound","construct","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","core","version","__e","$defineProperty","createDesc","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toPrimitive","hint","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","MATCH","re","exec","defined","wks","SYMBOL","fns","strfn","rxfn","RegExp","string","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","ITERATOR","iterFn","__g","documentElement","un","propertyIsEnumerable","Iterators","floor","isRegExp","ret","LIBRARY","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","isNode","last","notify","flush","parent","domain","exit","enter","nextTick","navigator","standalone","promise","toggle","observe","characterData","task","$$resolve","$$reject","$assign","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","str","$parseInt","parseInt","ws","hex","radix","newPromiseCapability","promiseCapability","bitmap","SRC","$toString","TPL","inspectSource","isFunction","check","buggy","tag","stat","shared","uid","copyright","toInteger","TO_STRING","pos","charCodeAt","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","max","number","valueOf","$typed","$buffer","propertyDesc","toIndex","classof","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","console","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","setProto","existingDescriptor","ownDesc","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","$at","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","$isView","isView","fin","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","getDesc","$values","finally","onFinally","$pad","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$task","MSIE","boundArgs","setInterval","useSourceMap","item","content","cssMapping","sourceMapping","toComment","sourceURLs","cssWithMappingToString","mediaQuery","alreadyImportedModules","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","HTMLJanitor","config","tagDefinitions","tags","validConfigValues","blockElementNames","isBlockElement","nodeName","inlineElementNames","isInlineElement","getAllowedAttrs","shouldRejectNode","allowedAttrs","shouldRejectAttr","attr","attrName","clean","sandbox","implementation","createHTMLDocument","_sanitize","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","removeAttribute","previousElementSibling","nextElementSibling","CodexEditor","configuration","_this","_classCallCheck2","onReady","editor","_core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","_dom","make","svg","listeners","handleClick","needConfirmation","events","off","blocks","stopPropagation","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","nextBlockElement","getBlockByIndex","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","scrollUpOffset","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","holder","compose","tunes","makeTunes","methodName","params","merge","save","pluginsContent","extractedBlock","measuringStart","performance","finishedExtraction","measuringEnd","_utils","isValid","tunesList","_blockTuneMoveUp","_blockTuneDelete","_blockTuneMoveDown","tune","tunesElement","createDocumentFragment","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","sanitize","emptyText","isEmpty","emptyMedia","hasMedia","focused","selected","wrapperStretched","dropTarget","Blocks","workingArea","children","block","insert","second","secondBlock","deleteCount","previousBlock","insertAdjacentElement","nextBlock","targetBlock","newBlock","contextRequire","filename","Core","onFail","_asyncToGenerator2","_regenerator","_callee","_context","holderId","tools","constructModules","configureModules","modulesToPrepare","_callee3","_context3","prepare","t0","Renderer","_this3","getModulesDiff","diff","moduleName","initialBlock","initialBlockData","sanitizer","hideToolbar","onChange","Dom","tagName","_el$classList","classNames","_toConsumableArray2","width","height","icon","createElementNS","elements","prepend","el1","el2","temp","getElementById","atLast","child","sibling","ELEMENT_NODE","nodeChild","isSingleTag","isNativeInput","getDeepestNode","DOCUMENT_FRAGMENT_NODE","isElement","textContent","leafs","isNodeEmpty","shift","isLeaf","leaf","childElementCount","BoldInlineTool","commandName","buttonActive","buttonModifier","range","execCommand","selection","isActive","queryCommandState","ItalicInlineTool","LinkInlineTool","commandLink","commandUnlink","ENTER_KEY","buttonUnlink","inputShowed","inputOpened","inlineToolbar","toolbar","_selection","enterPressed","parentAnchor","findParentTag","expandToTag","unlink","closeActions","checkState","toggleActions","anchorTag","openActions","hrefAttr","getAttribute","needFocus","focus","clearSavedSelection","clearSaved","restore","preventDefault","validateURL","prepareLink","insertLink","stopImmediatePropagation","link","addProtocol","isInternal","isAnchor","substring","isProtocolRelative","./api","./api/","./api/blocks","./api/blocks.ts","./api/caret","./api/caret.ts","./api/events","./api/events.ts","./api/index","./api/index.ts","./api/listeners","./api/listeners.ts","./api/notifier","./api/notifier.ts","./api/sanitizer","./api/sanitizer.ts","./api/saver","./api/saver.ts","./api/selection","./api/selection.ts","./api/styles","./api/styles.ts","./api/toolbar","./api/toolbar.ts","./blockEvents","./blockEvents.ts","./blockManager","./blockManager.ts","./blockSelection","./blockSelection.ts","./caret","./caret.ts","./dragNDrop","./dragNDrop.ts","./events","./events.ts","./listeners","./listeners.ts","./modificationsObserver","./modificationsObserver.ts","./notifier","./notifier.ts","./paste","./paste.ts","./renderer","./renderer.ts","./sanitizer","./sanitizer.ts","./saver","./saver.ts","./shortcuts","./shortcuts.ts","./toolbar","./toolbar/","./toolbar/blockSettings","./toolbar/blockSettings.ts","./toolbar/index","./toolbar/index.ts","./toolbar/inline","./toolbar/inline.ts","./toolbar/toolbox","./toolbar/toolbox.ts","./tools","./tools.ts","./ui","./ui.ts","webpackContext","req","webpackContextResolve","BlocksAPI","BlockManager","Toolbar","move","blockIndex","removeBlock","Caret","setToBlock","currentBlock","navigatePrevious","status","stretched","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","caret","ListenersAPI","notifier","NotifierAPI","SanitizerAPI","saver","SaverAPI","SelectionAPI","styles","StylesAPI","classes","ToolbarAPI","eventType","useCapture","options","Notifier","taintString","Sanitizer","Saver","className","_module","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","ESC","escapePressed","defaultHandler","needToolbarClosing","cmdKey","clearFocused","BlockSelection","clearSelection","InlineToolbar","handleShowingEvent","direction","Tools","isInitial","opened","plusButton","Toolbox","getBlockByChildNode","available","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","_this$Editor","allBlocksSelected","removeAllBlocks","removeCurrentBlock","isFirstBlock","canMergeBlocks","isAtStart","mergeBlocks","_this$Editor2","_caret","positions","END","_this$Editor3","blockToMerge","mergeable","createShadow","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","redactor","Proxy","_block","bindEvents","newIndex","composeBlock","blockToMergeIndex","blockToMergeData","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","keydown","mouseUp","keyup","dragOver","dragLeave","isLastBlock","nextBlocks","previousBlocks","needToSelectAll","Shortcuts","handleCommandA","handleCommandC","restoreSelection","anyBlockSelected","selectAllBlocks","selectBlockByIndex","fakeClipboard","cleanHTML","sanitizerConfig","fragment","copyTextToClipboard","removeAllRanges","h1","h2","h3","h4","h5","h6","ol","ul","li","br","img","position","START","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","createRange","selectionStart","selectionEnd","setStart","setEnd","addRange","_range$getBoundingCli","bottom","_window","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","force","_this$Editor$BlockMan","nextContentfulBlock","nextInput","isAtEnd","_this$Editor$BlockMan2","previousContentfulBlock","previousInput","shadowCaret","sel","newRange","selectNode","current","siblings","contentEditable","isCollapsed","anchorNode","firstNode","firstLetterPosition","leftSiblings","getHigherLevelSiblings","nothingAtLeft","anchorOffset","lastNode","nothingAtRight","rightTrimmedText","DragNDrop","isStartedAtEditor","processDrop","dropEvent","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","alreadyExist","findOne","existingListeners","findAll","foundListeners","foundByEventTargets","findByEventTarget","mutationDebouncer","debounce","DebounceTimer","setObserver","_codexNotifier","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref2","_slicedToArray2","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref3","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","items","plainData","getData","htmlData","customConfig","getAllInlineToolsConfig","cleanData","isHTMLString","processText","blockTools","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref4","_ref5","pattern","getBlock","_this4","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref6","_ref7","_ref7$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref8","_callee6","_context6","_this5","insertBlock","_x6","_x7","_this6","initialTool","getNodes","_Tools$blockTools$too","toolTags","getInlineToolsConfig","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","sanitizeConfig","composeToolConfig","deepSanitize","insertedBlock","currentToolSanitizeConfig","substitute","execResult","canReplaceCurrentBlock","_this$Editor6","_this7","reducer","destNode","DocumentFragment","isFragment","_ref9","_ref9$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref10","containsBlockElements","_ref11","chainData","function","sequence","configCache","inlineToolsConfigCache","blocksData","toolConfig","dataToSanitize","rules","cleanArray","cleanObject","cleanOneItem","sanitizerInstance","createHTMLJanitorInstance","sanitizeGetter","SANITIZE_CONFIG","baseConfig","toolRules","fieldName","rule","toolsConfig","getToolSettings","enableInlineTools","inlineToolName","inline","inlineTool","ruleForItem","arrayItem","currentIterationItem","isRule","_htmlJanitor","extractedData","sanitizeBlocks","sanitizedData","makeOutput","allExtractedData","totalTime","groupCollapsed","extraction","groupEnd","registeredShortcuts","shortcut","newShortcut","_shortcuts","shc","BlockSettings","toolSettings","defaultSettings","wrapperOpened","addToolSettings","addDefaultSettings","closed","renderSettings","renderTunes","actions","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","forceClose","contentOffset","toolbox","offsetTop","withBlockActions","needToCloseToolbox","toolbarOpened","blockActions","settingsTogglerClicked","plusButtonHidden","actionsOpened","inlineToolbarShowed","buttonsWrapper","actionsWrapper","inlineToolButtonLast","buttons","toolbarVerticalMargin","addTools","allowedToShow","checkToolsState","selectionRect","rect","wrapperOffset","newCoords","filterTools","currentSelection","selectedText","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","IS_INLINE","inlineTools","SHORTCUT","enableShortcuts","surround","bold","constructInline","_inlineToolBold","italic","_inlineToolItalic","_inlineToolLink","toolsInstances","allTools","Map","activeButtonIndex","displayedToolsCount","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","LEAF_DIRECTIONS","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","_possibleConstructorReturn2","_getPrototypeOf2","toolsAvailable","toolsUnavailable","toolsSettings","_inlineTools","sequenceData","getListOfPrepareFunctions","success","fallback","plugin","CONFIG","constructorOptions","toolPreparationList","notImplementedMethods","IS_PASTE_DISALLOWED","paragraph","_bundle","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","keyDownOnEditor","hasPointerToBlock","highlightCurrentNode","clickedOnInlineToolbarButton","clickedInsideofEditor","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","_sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","getSelection","searchDepth","parentTag","focusNode","boundNodes","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","Util","editorLabelText","editorLabelStyle","ignored","chains","waitNextBlock","_callee2","successCallback","fallbackCallback","_context2","previousValue","currentValue","_x5","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","CTRL","SPACE"],"mappings":"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","file":"codex-editor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CodexEditor\"] = factory();\n\telse\n\t\troot[\"CodexEditor\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = \"\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\"","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");","require(\"./lib/noConflict\");\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = register;\nexports.revert = revert;\n\nfunction register() {}\n\nfunction revert() {}","exports = module.exports = function (...args) {\n return register(...args);\n};\n\nexports.__esModule = true;\n\nconst node = require(\"./node\");\n\nconst register = node.default;\nObject.assign(exports, node);","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Library for handling keyboard shortcuts\n * @copyright undefined\n * @license MIT\n * @author CodeX (https://ifmo.su)\n * @version 1.0.0\n */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){for(var n=0;n1)for(var n in u)u[n].includes(e[t])&&(this.commands[n]=!0);else this.keys[e[t]]=!0}},{key:\"execute\",value:function(e){var t=e.ctrlKey||e.metaKey,n=e.shiftKey,r=e.altKey,o={CMD:t,SHIFT:n,ALT:r},u=void 0,c=!0;for(u in this.commands)c=c&&o[u];var a=void 0,s=!0;for(a in this.keys)s=s&&e.keyCode===i[a];c&&s&&this.callback(e)}},{key:\"remove\",value:function(){this.element.removeEventListener(\"keydown\",this.executeShortcut)}}]),e}();t.default=c}])});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.notifier=e():t.notifier=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";n(1),\n/*!\n * Codex JavaScript Notification module\n * https://github.com/codex-team/js-notifier\n */\nt.exports=function(){var t=n(6),e=\"cdx-notify--bounce-in\",r=null;return{show:function(n){if(n.message){!function(){if(r)return!0;r=t.getWrapper(),document.body.appendChild(r)}();var o=null,i=n.time||8e3;switch(n.type){case\"confirm\":o=t.confirm(n);break;case\"prompt\":o=t.prompt(n);break;default:o=t.alert(n),window.setTimeout(function(){o.remove()},i)}r.appendChild(o),o.classList.add(e)}}}}()},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,'.cdx-notify--error{background:#fffbfb!important}.cdx-notify--error::before{background:#fb5d5d!important}.cdx-notify__input{max-width:130px;padding:5px 10px;background:#f7f7f7;border:0;border-radius:3px;font-size:13px;color:#656b7c;outline:0}.cdx-notify__input:-ms-input-placeholder{color:#656b7c}.cdx-notify__input::placeholder{color:#656b7c}.cdx-notify__input:focus:-ms-input-placeholder{color:rgba(101,107,124,.3)}.cdx-notify__input:focus::placeholder{color:rgba(101,107,124,.3)}.cdx-notify__button{border:none;border-radius:3px;font-size:13px;padding:5px 10px;cursor:pointer}.cdx-notify__button:last-child{margin-left:10px}.cdx-notify__button--cancel{background:#f2f5f7;box-shadow:0 2px 1px 0 rgba(16,19,29,0);color:#656b7c}.cdx-notify__button--cancel:hover{background:#eee}.cdx-notify__button--confirm{background:#34c992;box-shadow:0 1px 1px 0 rgba(18,49,35,.05);color:#fff}.cdx-notify__button--confirm:hover{background:#33b082}.cdx-notify__btns-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-top:5px}.cdx-notify__cross{position:absolute;top:5px;right:5px;width:10px;height:10px;padding:5px;opacity:.54;cursor:pointer}.cdx-notify__cross::after,.cdx-notify__cross::before{content:\\'\\';position:absolute;left:9px;top:5px;height:12px;width:2px;background:#575d67}.cdx-notify__cross::before{transform:rotate(-45deg)}.cdx-notify__cross::after{transform:rotate(45deg)}.cdx-notify__cross:hover{opacity:1}.cdx-notifies{position:fixed;z-index:2;bottom:20px;left:20px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif}.cdx-notify{position:relative;width:220px;margin-top:15px;padding:13px 16px;background:#fff;box-shadow:0 11px 17px 0 rgba(23,32,61,.13);border-radius:5px;font-size:14px;line-height:1.4em;word-wrap:break-word}.cdx-notify::before{content:\\'\\';position:absolute;display:block;top:0;left:0;width:3px;height:calc(100% - 6px);margin:3px;border-radius:5px;background:0 0}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.cdx-notify--bounce-in{animation-name:bounceIn;animation-duration:.6s;animation-iteration-count:1}.cdx-notify--success{background:#fafffe!important}.cdx-notify--success::before{background:#41ffb1!important}',\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o=0&&s.splice(e,1)}function b(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(e,t.attrs),l(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function x(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var s=c++;n=a||(a=b(e)),r=h.bind(null,n,s,!1),o=h.bind(null,n,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(e,t.attrs),l(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),c=t.href;t.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,e),o=function(){p(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){p(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=u(t,e);return d(n,e),function(t){for(var o=[],i=0;i 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('html-janitor', factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.HTMLJanitor = factory();\n }\n}(this, function () {\n\n /**\n * @param {Object} config.tags Dictionary of allowed tags.\n * @param {boolean} config.keepNestedBlockElements Default false.\n */\n function HTMLJanitor(config) {\n\n var tagDefinitions = config['tags'];\n var tags = Object.keys(tagDefinitions);\n\n var validConfigValues = tags\n .map(function(k) { return typeof tagDefinitions[k]; })\n .every(function(type) { return type === 'object' || type === 'boolean' || type === 'function'; });\n\n if(!validConfigValues) {\n throw new Error(\"The configuration was invalid\");\n }\n\n this.config = config;\n }\n\n // TODO: not exhaustive?\n var blockElementNames = ['P', 'LI', 'TD', 'TH', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'PRE'];\n function isBlockElement(node) {\n return blockElementNames.indexOf(node.nodeName) !== -1;\n }\n\n var inlineElementNames = ['A', 'B', 'STRONG', 'I', 'EM', 'SUB', 'SUP', 'U', 'STRIKE'];\n function isInlineElement(node) {\n return inlineElementNames.indexOf(node.nodeName) !== -1;\n }\n\n HTMLJanitor.prototype.clean = function (html) {\n const sandbox = document.implementation.createHTMLDocument();\n const root = sandbox.createElement(\"div\");\n root.innerHTML = html;\n\n this._sanitize(sandbox, root);\n\n return root.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (document, parentNode) {\n var treeWalker = createTreeWalker(document, parentNode);\n var node = treeWalker.firstChild();\n\n if (!node) { return; }\n\n do {\n if (node.nodeType === Node.TEXT_NODE) {\n // If this text node is just whitespace and the previous or next element\n // sibling is a block element, remove it\n // N.B.: This heuristic could change. Very specific to a bug with\n // `contenteditable` in Firefox: http://jsbin.com/EyuKase/1/edit?js,output\n // FIXME: make this an option?\n if (node.data.trim() === ''\n && ((node.previousElementSibling && isBlockElement(node.previousElementSibling))\n || (node.nextElementSibling && isBlockElement(node.nextElementSibling)))) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n } else {\n continue;\n }\n }\n\n // Remove all comments\n if (node.nodeType === Node.COMMENT_NODE) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n }\n\n var isInline = isInlineElement(node);\n var containsBlockElement;\n if (isInline) {\n containsBlockElement = Array.prototype.some.call(node.childNodes, isBlockElement);\n }\n\n // Block elements should not be nested (e.g.
  • ...); if\n // they are, we want to unwrap the inner block element.\n var isNotTopContainer = !! parentNode.parentNode;\n var isNestedBlockElement =\n isBlockElement(parentNode) &&\n isBlockElement(node) &&\n isNotTopContainer;\n\n var nodeName = node.nodeName.toLowerCase();\n\n var allowedAttrs = getAllowedAttrs(this.config, nodeName, node);\n\n var isInvalid = isInline && containsBlockElement;\n\n // Drop tag entirely according to the whitelist *and* if the markup\n // is invalid.\n if (isInvalid || shouldRejectNode(node, allowedAttrs)\n || (!this.config.keepNestedBlockElements && isNestedBlockElement)) {\n // Do not keep the inner text of SCRIPT/STYLE elements.\n if (! (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE')) {\n while (node.childNodes.length > 0) {\n parentNode.insertBefore(node.childNodes[0], node);\n }\n }\n parentNode.removeChild(node);\n\n this._sanitize(document, parentNode);\n break;\n }\n\n // Sanitize attributes\n for (var a = 0; a < node.attributes.length; a += 1) {\n var attr = node.attributes[a];\n\n if (shouldRejectAttr(attr, allowedAttrs, node)) {\n node.removeAttribute(attr.name);\n // Shift the array to continue looping.\n a = a - 1;\n }\n }\n\n // Sanitize children\n this._sanitize(document, node);\n\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(document, node) {\n return document.createTreeWalker(node,\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n null, false);\n }\n\n function getAllowedAttrs(config, nodeName, node){\n if (typeof config.tags[nodeName] === 'function') {\n return config.tags[nodeName](node);\n } else {\n return config.tags[nodeName];\n }\n }\n\n function shouldRejectNode(node, allowedAttrs){\n if (typeof allowedAttrs === 'undefined') {\n return true;\n } else if (typeof allowedAttrs === 'boolean') {\n return !allowedAttrs;\n }\n\n return false;\n }\n\n function shouldRejectAttr(attr, allowedAttrs, node){\n var attrName = attr.name.toLowerCase();\n\n if (allowedAttrs === true){\n return false;\n } else if (typeof allowedAttrs[attrName] === 'function'){\n return !allowedAttrs[attrName](attr.value, node);\n } else if (typeof allowedAttrs[attrName] === 'undefined'){\n return true;\n } else if (allowedAttrs[attrName] === false) {\n return true;\n } else if (typeof allowedAttrs[attrName] === 'string') {\n return (allowedAttrs[attrName] !== attr.value);\n }\n\n return false;\n }\n\n return HTMLJanitor;\n\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","'use strict';\n\nimport {EditorConfig} from '../types';\n\ndeclare const VERSION: string;\n\n/**\n * Apply polyfills\n */\nimport '@babel/register';\n\nimport 'components/polyfills';\nimport Core from './components/core';\n\n/**\n * Codex Editor\n *\n * Short Description (눈_눈;)\n * @version 2.0\n *\n * @author CodeX-Team \n */\nexport default class CodexEditor {\n /**\n * Promise that resolves when core modules are ready and UI is rendered on the page\n */\n public isReady: Promise;\n\n /**\n * Stores destroy method implementation.\n * Clear heap occupied by Editor and remove UI components from the DOM.\n */\n public destroy: () => void;\n\n /** Editor version */\n static get version(): string {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig|String|undefined} [configuration] - user configuration\n */\n public constructor(configuration?: EditorConfig|string) {\n /**\n * Set default onReady function\n */\n let onReady = () => {};\n\n /**\n * If `onReady` was passed in `configuration` then redefine onReady function\n */\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\n onReady = configuration.onReady;\n }\n\n /**\n * Create a CodeX Editor instance\n */\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor\n * as it can be used before other API methods are exported\n * @type {Promise}\n */\n this.isReady = editor.isReady.then(() => {\n this.exportAPI(editor);\n onReady();\n });\n }\n\n /**\n * Export external API methods\n *\n * @param editor\n */\n public exportAPI(editor: Core): void {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor.moduleInstances.ModificationsObserver.destroy();\n editor = null;\n\n for (const field in this) {\n if (this.hasOwnProperty(field)) {\n delete this[field];\n }\n }\n\n Object.setPrototypeOf(this, null);\n };\n\n fieldsToExport.forEach((field) => {\n this[field] = editor[field];\n });\n\n this.destroy = destroy;\n\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\n\n delete this.exportAPI;\n }\n}\n","import {EditorModules} from '../types-internal/editor-modules';\nimport {EditorConfig} from '../../types';\nimport {ModuleConfig} from '../types-internal/module-config';\n\n/**\n * @abstract\n * @class Module\n * @classdesc All modules inherits from this class.\n *\n * @typedef {Module} Module\n * @property {Object} config - Editor user settings\n * @property {EditorModules} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {EditorModules}\n */\n protected Editor: EditorModules;\n\n /**\n * Editor configuration object\n * @type {EditorConfig}\n */\n protected config: EditorConfig;\n\n /**\n * @constructor\n * @param {EditorConfig}\n */\n constructor({config}: ModuleConfig) {\n if (new.target === Module) {\n throw new TypeError('Constructors for abstract class Module are not allowed.');\n }\n\n this.config = config;\n }\n\n /**\n * Editor modules setter\n * @param {EditorModules} Editor\n */\n set state(Editor: EditorModules) {\n this.Editor = Editor;\n }\n}\n","/**\n * @class DeleteTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport {API, BlockTune} from '../../../types';\nimport $ from '../dom';\n\nexport default class DeleteTune implements BlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n wrapper: 'ass',\n button: 'ce-settings__button',\n buttonDelete: 'ce-settings__button--delete',\n buttonConfirm: 'ce-settings__button--confirm',\n };\n\n /**\n * Delete confirmation\n */\n private needConfirmation: boolean;\n\n /**\n * set false confirmation state\n */\n private resetConfirmation: () => void;\n\n /**\n * Tune nodes\n */\n private nodes: {button: HTMLElement} = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {{api: API}} api\n */\n constructor({api}) {\n this.api = api;\n\n this.resetConfirmation = () => {\n this.setConfirmation(false);\n };\n }\n\n /**\n * Create \"Delete\" button and add click event listener\n * @returns [Element}\n */\n public render() {\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\n this.nodes.button.appendChild($.svg('cross', 12, 12));\n this.api.listeners.on(this.nodes.button, 'click', (event: MouseEvent) => this.handleClick(event), false);\n return this.nodes.button;\n }\n\n /**\n * Delete block conditions passed\n * @param {MouseEvent} event\n */\n public handleClick(event: MouseEvent): void {\n\n /**\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\n * otherwise delete block\n */\n if (!this.needConfirmation) {\n this.setConfirmation(true);\n\n /**\n * Subscribe on event.\n * When toolbar block settings is closed but block deletion is not confirmed,\n * then reset confirmation state\n */\n this.api.events.on('block-settings-closed', this.resetConfirmation);\n\n } else {\n\n /**\n * Unsubscribe from block-settings closing event\n */\n this.api.events.off('block-settings-closed', this.resetConfirmation);\n\n this.api.blocks.delete();\n\n /**\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\n */\n event.stopPropagation();\n }\n }\n\n /**\n * change tune state\n */\n private setConfirmation(state): void {\n this.needConfirmation = state;\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\n }\n\n}\n","/**\n * @class MoveDownTune\n * @classdesc Editor's default tune - Moves down highlighted block\n *\n * @copyright 2018\n */\n\nimport $ from '../dom';\nimport {API, BlockTune} from '../../../types';\n\nexport default class MoveDownTune implements BlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-down',\n animation: 'wobble',\n };\n\n /**\n * MoveDownTune constructor\n *\n * @param {{api: API}} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Return 'move down' button\n */\n public render() {\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\n this.api.listeners.on(\n moveDownButton,\n 'click',\n (event) => this.handleClick(event as MouseEvent, moveDownButton),\n false,\n );\n return moveDownButton;\n }\n\n /**\n * Handle clicks on 'move down' button\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement) {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n // If Block is last do nothing\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1);\n const nextBlockCoords = nextBlockElement.getBoundingClientRect();\n\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\n\n /**\n * Next block ends on screen.\n * Increment scroll by next block's height to save element onscreen-position\n */\n if (nextBlockCoords.top < window.innerHeight) {\n\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\n\n }\n\n window.scrollTo(0, scrollOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\n\n }\n}\n","/**\n * @class MoveUpTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport $ from '../dom';\nimport {API, BlockTune} from '../../../types';\n\nexport default class MoveUpTune implements BlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-up',\n animation: 'wobble',\n };\n\n /**\n * MoveUpTune constructor\n *\n * @param {{api: API}} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Create \"MoveUp\" button and add click event listener\n * @returns [HTMLElement}\n */\n public render(): HTMLElement {\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\n this.api.listeners.on(\n moveUpButton,\n 'click',\n (event) => this.handleClick(event as MouseEvent, moveUpButton),\n false,\n );\n return moveUpButton;\n }\n\n /**\n * Move current block up\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement): void {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n if (currentBlockIndex === 0) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex);\n const previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1);\n\n /**\n * Here is two cases:\n * - when previous block has negative offset and part of it is visible on window, then we scroll\n * by window's height and add offset which is mathematically difference between two blocks\n *\n * - when previous block is visible and has offset from the window,\n * than we scroll window to the difference between this offsets.\n */\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\n\n let scrollUpOffset;\n\n if (previousBlockCoords.top > 0) {\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\n } else {\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\n }\n\n window.scrollBy(0, -1 * scrollUpOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\n }\n}\n","import {\n API,\n BlockTool,\n BlockToolConstructable,\n BlockToolData,\n BlockTune,\n BlockTuneConstructable,\n SanitizerConfig,\n ToolConfig,\n} from '../../types';\n\nimport $ from './dom';\nimport _ from './utils';\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {BlockTool} tool — current block tool (Paragraph, for example)\n * @property {Object} CSS — block`s css classes\n *\n */\n\n/** Import default tunes */\nimport MoveUpTune from './block-tunes/block-tune-move-up';\nimport DeleteTune from './block-tunes/block-tune-delete';\nimport MoveDownTune from './block-tunes/block-tune-move-down';\n\n/**\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\n *\n * @property tool - Tool instance\n * @property html - Returns HTML content of plugin\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\n * @property pluginsContent - HTML content that returns by Tool's render function\n */\nexport default class Block {\n\n /**\n * CSS classes for the Block\n * @return {{wrapper: string, content: string}}\n */\n static get CSS() {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n focused: 'ce-block--focused',\n selected: 'ce-block--selected',\n dropTarget: 'ce-block--drop-target',\n };\n }\n\n /**\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\n *\n * @returns {HTMLElement[]}\n */\n get inputs(): HTMLElement[] {\n const content = this.holder;\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\n\n const selector = '[contenteditable], textarea, input, '\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\n\n const inputs = _.array(content.querySelectorAll(selector));\n\n /**\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\n */\n if (this.inputIndex > inputs.length - 1) {\n this.inputIndex = inputs.length - 1;\n }\n\n return inputs;\n }\n\n /**\n * Return current Tool`s input\n *\n * @returns {HTMLElement}\n */\n get currentInput(): HTMLElement {\n return this.inputs[this.inputIndex];\n }\n\n /**\n * Set input index to the passed element\n *\n * @param {HTMLElement} element\n */\n set currentInput(element: HTMLElement) {\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\n\n if (index !== -1) {\n this.inputIndex = index;\n }\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get firstInput(): HTMLElement {\n return this.inputs[0];\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get lastInput(): HTMLElement {\n const inputs = this.inputs;\n\n return inputs[inputs.length - 1];\n }\n\n /**\n * Return next Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get nextInput(): HTMLElement {\n return this.inputs[this.inputIndex + 1];\n }\n\n /**\n * Return previous Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get previousInput(): HTMLElement {\n return this.inputs[this.inputIndex - 1];\n }\n\n /**\n * Returns Plugins content\n * @return {Node}\n */\n get pluginsContent(): Node {\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\n\n if (pluginsContent && pluginsContent.childNodes.length) {\n return pluginsContent.childNodes[0];\n }\n\n return null;\n }\n\n /**\n * Get Block's JSON data\n * @return {Object}\n */\n get data(): object {\n return this.save();\n }\n\n /**\n * Returns tool's sanitizer config\n * @return {object}\n */\n get sanitize(): SanitizerConfig {\n return this.tool.sanitize;\n }\n\n /**\n * is block mergeable\n * We plugin have merge function then we call it mergable\n * @return {boolean}\n */\n get mergeable(): boolean {\n return typeof this.tool.merge === 'function';\n }\n\n /**\n * Check block for emptiness\n * @return {Boolean}\n */\n get isEmpty(): boolean {\n const emptyText = $.isEmpty(this.pluginsContent),\n emptyMedia = !this.hasMedia;\n\n return emptyText && emptyMedia;\n }\n\n /**\n * Check if block has a media content such as images, iframes and other\n * @return {Boolean}\n */\n get hasMedia(): boolean {\n /**\n * This tags represents media-content\n * @type {string[]}\n */\n const mediaTags = [\n 'img',\n 'iframe',\n 'video',\n 'audio',\n 'source',\n 'input',\n 'textarea',\n 'twitterwidget',\n ];\n\n return !!this.holder.querySelector(mediaTags.join(','));\n }\n\n /**\n * Set focused state\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set focused(state: boolean) {\n this.holder.classList.toggle(Block.CSS.focused, state);\n }\n\n /**\n * Set selected state\n * We don't need to mark Block as Selected when it is empty\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n if (state) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\n }\n\n /**\n * Returns True if it is Selected\n * @return {boolean}\n */\n get selected(): boolean {\n return this.holder.classList.contains(Block.CSS.selected);\n }\n\n /**\n * Set stretched state\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\n */\n set stretched(state: boolean) {\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\n }\n\n /**\n * Block Tool`s name\n */\n public name: string;\n\n /**\n * Instance of the Tool Block represents\n */\n public tool: BlockTool;\n\n /**\n * Class blueprint of the ool Block represents\n */\n public class: BlockToolConstructable;\n\n /**\n * User Tool configuration\n */\n public settings: ToolConfig;\n\n /**\n * Wrapper for Block`s content\n */\n public holder: HTMLDivElement;\n\n /**\n * Tunes used by Tool\n */\n public tunes: BlockTune[];\n\n /**\n * Editor`s API\n */\n private readonly api: API;\n\n /**\n * Focused input index\n * @type {number}\n */\n private inputIndex = 0;\n\n /**\n * @constructor\n * @param {String} toolName - Tool name that passed on initialization\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\n * @param {Object} toolClass — Tool's class\n * @param {Object} settings - default settings\n * @param {Object} apiMethods - Editor API\n */\n constructor(\n toolName: string,\n toolInstance: BlockTool,\n toolClass: BlockToolConstructable,\n settings: ToolConfig,\n apiMethods: API,\n ) {\n this.name = toolName;\n this.tool = toolInstance;\n this.class = toolClass;\n this.settings = settings;\n this.api = apiMethods;\n this.holder = this.compose();\n\n /**\n * @type {BlockTune[]}\n */\n this.tunes = this.makeTunes();\n }\n\n /**\n * Calls Tool's method\n *\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\n *\n * @param {String} methodName\n * @param {Object} params\n */\n public call(methodName: string, params: object) {\n /**\n * call Tool's method with the instance context\n */\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\n this.tool[methodName].call(this.tool, params);\n }\n }\n\n /**\n * Call plugins merge method\n * @param {Object} data\n */\n public async mergeWith(data: BlockToolData): Promise {\n await this.tool.merge(data);\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public async save(): Promise {\n const extractedBlock = await this.tool.save(this.pluginsContent as HTMLElement);\n\n /**\n * Measuring execution time\n */\n const measuringStart = window.performance.now();\n let measuringEnd;\n\n return Promise.resolve(extractedBlock)\n .then((finishedExtraction) => {\n /** measure promise execution */\n measuringEnd = window.performance.now();\n\n return {\n tool: this.name,\n data: finishedExtraction,\n time : measuringEnd - measuringStart,\n };\n })\n .catch((error) => {\n _.log(`Saving proccess for ${this.name} tool failed due to the ${error}`, 'log', 'red');\n });\n }\n\n /**\n * Uses Tool's validation method to check the correctness of output data\n * Tool's validation method is optional\n *\n * @description Method also can return data if it passed the validation\n *\n * @param {Object} data\n * @returns {Boolean|Object} valid\n */\n public validateData(data: BlockToolData): BlockToolData|false {\n let isValid = true;\n\n if (this.tool.validate instanceof Function) {\n isValid = this.tool.validate(data);\n }\n\n if (!isValid) {\n return false;\n }\n\n return data;\n }\n\n /**\n * Make an array with default settings\n * Each block has default tune instance that have states\n * @return {BlockTune[]}\n */\n public makeTunes(): BlockTune[] {\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\n\n // Pluck tunes list and return tune instances with passed Editor API and settings\n return tunesList.map( (tune: BlockTuneConstructable) => {\n return new tune({\n api: this.api,\n settings: this.settings,\n });\n });\n }\n\n /**\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\n * @return {DocumentFragment}\n */\n public renderTunes(): DocumentFragment {\n const tunesElement = document.createDocumentFragment();\n\n this.tunes.forEach( (tune) => {\n $.append(tunesElement, tune.render());\n });\n\n return tunesElement;\n }\n\n /**\n * Toggle drop target state\n * @param {boolean} state\n */\n public set dropTarget(state) {\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\n }\n\n /**\n * Make default Block wrappers and put Tool`s content there\n * @returns {HTMLDivElement}\n */\n private compose(): HTMLDivElement {\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\n contentNode = $.make('div', Block.CSS.content),\n pluginsContent = this.tool.render();\n\n contentNode.appendChild(pluginsContent);\n wrapper.appendChild(contentNode);\n return wrapper;\n }\n}\n","import _ from './utils';\nimport $ from './dom';\nimport Block from './block';\n\n/**\n * @class Blocks\n * @classdesc Class to work with Block instances array\n *\n * @private\n *\n * @property {HTMLElement} workingArea — editor`s working node\n *\n */\nexport default class Blocks {\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n public get length(): number {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n public get array(): Block[] {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n public get nodes(): HTMLElement[] {\n return _.array(this.workingArea.children);\n }\n\n /**\n * Proxy trap to implement array-like setter\n *\n * @example\n * blocks[0] = new Block(...)\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — block index\n * @param {Block} block — Block to set\n * @returns {Boolean}\n */\n public static set(instance: Blocks, index: number, block: Block) {\n if (isNaN(Number(index))) {\n return false;\n }\n\n instance.insert(index, block);\n\n return true;\n }\n\n /**\n * Proxy trap to implement array-like getter\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — Block index\n * @returns {Block|*}\n */\n public static get(instance: Blocks, index: number) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\n }\n\n /**\n * Array of Block instances in order of addition\n */\n public blocks: Block[];\n\n /**\n * Editor`s area where to add Block`s HTML\n */\n public workingArea: HTMLElement;\n\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea: HTMLElement) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push new Block to the blocks array and append it to working area\n *\n * @param {Block} block\n */\n public push(block: Block): void {\n this.blocks.push(block);\n this.workingArea.appendChild(block.holder);\n }\n\n /**\n * Swaps blocks with indexes first and second\n * @param {Number} first - first block index\n * @param {Number} second - second block index\n */\n public swap(first: number, second: number): void {\n const secondBlock = this.blocks[second];\n\n /**\n * Change in DOM\n */\n $.swap(this.blocks[first].holder, secondBlock.holder);\n\n /**\n * Change in array\n */\n this.blocks[second] = this.blocks[first];\n this.blocks[first] = secondBlock;\n }\n\n /**\n * Insert new Block at passed index\n *\n * @param {Number} index — index to insert Block\n * @param {Block} block — Block to insert\n * @param {Boolean} replace — it true, replace block on given index\n */\n public insert(index: number, block: Block, replace: boolean = false): void {\n if (!this.length) {\n this.push(block);\n return;\n }\n\n if (index > this.length) {\n index = this.length;\n }\n\n if (replace) {\n this.blocks[index].holder.remove();\n }\n\n const deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n const previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n const nextBlock = this.blocks[index + 1];\n\n if (nextBlock) {\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\n } else {\n this.workingArea.appendChild(block.holder);\n }\n }\n }\n\n /**\n * Remove block\n * @param {Number|null} index\n */\n public remove(index: number): void {\n if (isNaN(index)) {\n index = this.length - 1;\n }\n\n this.blocks[index].holder.remove();\n this.blocks.splice(index, 1);\n }\n\n /**\n * Remove all blocks\n */\n public removeAll(): void {\n this.workingArea.innerHTML = '';\n this.blocks.length = 0;\n }\n\n /**\n * Insert Block after passed target\n *\n * @todo decide if this method is necessary\n *\n * @param {Block} targetBlock — target after wich Block should be inserted\n * @param {Block} newBlock — Block to insert\n */\n public insertAfter(targetBlock: Block, newBlock: Block): void {\n const index = this.blocks.indexOf(targetBlock);\n\n this.insert(index + 1, newBlock);\n }\n\n /**\n * Get Block by index\n *\n * @param {Number} index — Block index\n * @returns {Block}\n */\n public get(index: number): Block {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n public indexOf(block: Block): number {\n return this.blocks.indexOf(block);\n }\n}\n","import $ from './dom';\nimport _ from './utils';\nimport {EditorConfig, OutputData, SanitizerConfig, ToolSettings} from '../../types';\nimport {EditorModules} from '../types-internal/editor-modules';\n\n/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\nconst contextRequire = require.context('./modules', true);\n\nconst modules = [];\n\ncontextRequire.keys().forEach((filename) => {\n /**\n * Include files if:\n * - extension is .js or .ts\n * - does not starts with _\n */\n if (filename.match(/^\\.\\/[^_][\\w/]*\\.([tj])s$/)) {\n modules.push(contextRequire(filename));\n }\n});\n\n/**\n * @class Core\n *\n * @classdesc CodeX Editor core class\n *\n * @property this.config - all settings\n * @property this.moduleInstances - constructed editor components\n *\n * @type {Core}\n */\nexport default class Core {\n\n /**\n * Editor configuration passed by user to the constructor\n */\n public config: EditorConfig;\n\n /**\n * Object with core modules instances\n */\n public moduleInstances: EditorModules = {} as EditorModules;\n\n /**\n * Promise that resolves when all core modules are prepared and UI is rendered on the page\n */\n public isReady: Promise;\n\n /**\n * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config?: EditorConfig|string) {\n /**\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\n */\n let onReady, onFail;\n\n this.isReady = new Promise((resolve, reject) => {\n onReady = resolve;\n onFail = reject;\n });\n\n Promise.resolve()\n .then(async () => {\n this.configuration = config;\n\n await this.validate();\n await this.init();\n await this.start();\n\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧', 'log', '', 'color: #E24A75');\n\n setTimeout(() => {\n /**\n * Resolve this.isReady promise\n */\n onReady();\n }, 500);\n })\n .catch((error) => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n\n /**\n * Reject this.isReady promise\n */\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {EditorConfig|string|undefined} config\n */\n set configuration(config: EditorConfig|string) {\n /**\n * Process zero-configuration or with only holderId\n * Make config object\n */\n if (typeof config !== 'object') {\n config = {\n holderId: config,\n };\n }\n\n /**\n * Place config into the class property\n * @type {EditorConfig}\n */\n this.config = config;\n\n /**\n * If holderId is empty then set a default value\n */\n if (!this.config.holderId || typeof this.config.holderId !== 'string') {\n this.config.holderId = 'codex-editor';\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = this.config.initialBlock || 'paragraph';\n\n /**\n * Initial block type\n * Uses in case when there is no blocks passed\n * @type {{type: (*), data: {text: null}}}\n */\n const initialBlockData = {\n type : this.config.initialBlock,\n data : {},\n };\n\n this.config.placeholder = this.config.placeholder || 'write your story...';\n this.config.sanitizer = this.config.sanitizer || {\n p: true,\n b: true,\n a: true,\n } as SanitizerConfig;\n\n this.config.hideToolbar = this.config.hideToolbar ? this.config.hideToolbar : false;\n this.config.tools = this.config.tools || {};\n this.config.data = this.config.data || {} as OutputData;\n this.config.onReady = this.config.onReady || (() => {});\n this.config.onChange = this.config.onChange || (() => {});\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {} as OutputData;\n this.config.data.blocks = [ initialBlockData ];\n } else {\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\n this.config.data.blocks = [ initialBlockData ];\n }\n }\n }\n\n /**\n * Returns private property\n * @returns {EditorConfig}\n */\n get configuration(): EditorConfig|string {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {Promise}\n */\n public async validate(): Promise {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n throw Error('«holderId» param must being not empty');\n }\n\n /**\n * Check for a holder element's existence\n */\n if (!$.get(this.config.holderId)) {\n throw Error(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\n }\n\n /**\n * Check Tools for a class containing\n */\n for (const toolName in this.config.tools) {\n if (this.config.tools.hasOwnProperty(toolName)) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction((tool as ToolSettings).class)) {\n throw Error(\n `Tool «${toolName}» must be a constructor function or an object with function in the «class» property`,\n );\n }\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n public init() {\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n this.constructModules();\n\n /**\n * Modules configuration\n */\n this.configureModules();\n }\n\n /**\n * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n public async start() {\n const modulesToPrepare = [\n 'Tools',\n 'UI',\n 'BlockManager',\n 'Paste',\n 'DragNDrop',\n 'ModificationsObserver',\n 'BlockSelection',\n ];\n\n await modulesToPrepare.reduce(\n (promise, module) => promise.then(async () => {\n // _.log(`Preparing ${module} module`, 'time');\n\n try {\n await this.moduleInstances[module].prepare();\n } catch (e) {\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\n }\n // _.log(`Preparing ${module} module`, 'timeEnd');\n }),\n Promise.resolve(),\n );\n\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\n }\n\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n private constructModules(): void {\n modules.forEach( (Module) => {\n try {\n /**\n * We use class name provided by displayName property\n *\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\n */\n this.moduleInstances[Module.displayName] = new Module({\n config : this.configuration,\n });\n } catch ( e ) {\n _.log(`Module ${Module.displayName} skipped because`, 'warn', e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n private configureModules(): void {\n for (const name in this.moduleInstances) {\n if (this.moduleInstances.hasOwnProperty(name)) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff(name);\n }\n }\n }\n\n /**\n * Return modules without passed name\n * @param {string} name - module for witch modules difference should be calculated\n */\n private getModulesDiff(name: string): EditorModules {\n const diff = {} as EditorModules;\n\n for (const moduleName in this.moduleInstances) {\n /**\n * Skip module with passed name\n */\n if (moduleName === name) {\n continue;\n }\n diff[moduleName] = this.moduleInstances[moduleName];\n }\n\n return diff;\n }\n}\n","/**\n * DOM manipulations helper\n */\nexport default class Dom {\n /**\n * Check if passed tag has no closed tag\n * @param {HTMLElement} tag\n * @return {Boolean}\n */\n public static isSingleTag(tag: HTMLElement): boolean {\n return tag.tagName && [\n 'AREA',\n 'BASE',\n 'BR',\n 'COL',\n 'COMMAND',\n 'EMBED',\n 'HR',\n 'IMG',\n 'INPUT',\n 'KEYGEN',\n 'LINK',\n 'META',\n 'PARAM',\n 'SOURCE',\n 'TRACK',\n 'WBR',\n ].includes(tag.tagName);\n }\n\n /**\n * Helper for making Elements with classname and attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {array|string} classNames - list or name of CSS classname(s)\n * @param {Object} attributes - any attributes\n * @return {HTMLElement}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): HTMLElement {\n const el = document.createElement(tagName);\n\n if ( Array.isArray(classNames) ) {\n el.classList.add(...classNames);\n } else if ( classNames ) {\n el.classList.add(classNames);\n }\n\n for (const attrName in attributes) {\n if (attributes.hasOwnProperty(attrName)) {\n el[attrName] = attributes[attrName];\n }\n }\n\n return el;\n }\n\n /**\n * Creates Text Node with the passed content\n * @param {String} content - text content\n * @return {Text}\n */\n public static text(content: string): Text {\n return document.createTextNode(content);\n }\n\n /**\n * Creates SVG icon linked to the sprite\n * @param {string} name - name (id) of icon from sprite\n * @param {number} width\n * @param {number} height\n * @return {SVGElement}\n */\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n icon.classList.add('icon', 'icon--' + name);\n icon.setAttribute('width', width + 'px');\n icon.setAttribute('height', height + 'px');\n icon.innerHTML = ``;\n\n return icon;\n }\n\n /**\n * Append one or several elements to the parent\n *\n * @param {Element|DocumentFragment} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]|DocumentFragment): void {\n if ( Array.isArray(elements) ) {\n elements.forEach( (el) => parent.appendChild(el) );\n } else {\n parent.appendChild(elements);\n }\n }\n\n /**\n * Append element or a couple to the beginning of the parent elements\n *\n * @param {Element} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static prepend(parent: Element, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements = elements.reverse();\n elements.forEach( (el) => parent.prepend(el) );\n } else {\n parent.prepend(elements);\n }\n }\n\n /**\n * Swap two elements in parent\n * @param {HTMLElement} el1 - from\n * @param {HTMLElement} el2 - to\n */\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\n // create marker element and insert it where el1 is\n const temp = document.createElement('div'),\n parent = el1.parentNode;\n\n parent.insertBefore(temp, el1);\n\n // move el1 to right before el2\n parent.insertBefore(el1, el2);\n\n // move el2 to right before where el1 used to be\n parent.insertBefore(el2, temp);\n\n // remove temporary marker node\n parent.removeChild(temp);\n }\n\n /**\n * Selector Decorator\n *\n * Returns first match\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n *\n * @returns {Element}\n */\n public static find(el: Element|Document = document, selector: string): Element {\n return el.querySelector(selector);\n }\n\n /**\n * Get Element by Id\n *\n * @param {string} id\n * @returns {HTMLElement | null}\n */\n public static get(id: string): HTMLElement {\n return document.getElementById(id);\n }\n\n /**\n * Selector Decorator.\n *\n * Returns all matches\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n * @returns {NodeList}\n */\n public static findAll(el: Element|Document = document, selector: string): NodeList {\n return el.querySelectorAll(selector);\n }\n\n /**\n * Search for deepest node which is Leaf.\n * Leaf is the vertex that doesn't have any child nodes\n *\n * @description Method recursively goes throw the all Node until it finds the Leaf\n *\n * @param {Node} node - root Node. From this vertex we start Deep-first search\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\n * @param {Boolean} atLast - find last text node\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\n */\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\n /**\n * Current function have two directions:\n * - starts from first child and every time gets first or nextSibling in special cases\n * - starts from last child and gets last or previousSibling\n * @type {string}\n */\n const child = atLast ? 'lastChild' : 'firstChild',\n sibling = atLast ? 'previousSibling' : 'nextSibling';\n\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\n let nodeChild = node[child];\n\n /**\n * special case when child is single tag that can't contain any content\n */\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\n /**\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\n * from sibling\n *\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\n * In case of Node Element continue searching\n *\n * 3) If none of conditions above happened return parent Node Element\n */\n if (nodeChild[sibling]) {\n nodeChild = nodeChild[sibling];\n } else if (nodeChild.parentNode[sibling]) {\n nodeChild = nodeChild.parentNode[sibling];\n } else {\n return nodeChild.parentNode;\n }\n }\n\n return this.getDeepestNode(nodeChild, atLast);\n }\n\n return node;\n }\n\n /**\n * Check if object is DOM node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isElement(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Check if object is DocumentFragmemt node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isFragment(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n\n /**\n * Checks target if it is native input\n * @param {Element|String|Node} target - HTML element or string\n * @return {Boolean}\n */\n public static isNativeInput(target: any): boolean {\n const nativeInputs = [\n 'INPUT',\n 'TEXTAREA',\n ];\n\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\n }\n\n /**\n * Checks node if it is empty\n *\n * @description Method checks simple Node without any childs for emptiness\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\n *\n * @param {Node} node\n * @return {Boolean} true if it is empty\n */\n public static isNodeEmpty(node: Node): boolean {\n let nodeText;\n\n if ( this.isElement(node) && this.isNativeInput(node) ) {\n nodeText = (node as HTMLInputElement).value;\n } else {\n nodeText = node.textContent.replace('\\u200B', '');\n }\n\n return nodeText.trim().length === 0;\n }\n\n /**\n * checks node if it is doesn't have any child nodes\n * @param {Node} node\n * @return {boolean}\n */\n public static isLeaf(node: Node): boolean {\n if (!node) {\n return false;\n }\n\n return node.childNodes.length === 0;\n }\n\n /**\n * breadth-first search (BFS)\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\n *\n * @description Pushes to stack all DOM leafs and checks for emptiness\n *\n * @param {Node} node\n * @return {boolean}\n */\n public static isEmpty(node: Node): boolean {\n const treeWalker = [],\n leafs = [];\n\n if (!node) {\n return true;\n }\n\n if (!node.childNodes.length) {\n return this.isNodeEmpty(node);\n }\n\n treeWalker.push(node.firstChild);\n\n while ( treeWalker.length > 0 ) {\n node = treeWalker.shift();\n\n if (!node) { continue; }\n\n if ( this.isLeaf(node) ) {\n leafs.push(node);\n } else {\n treeWalker.push(node.firstChild);\n }\n\n while ( node && node.nextSibling ) {\n node = node.nextSibling;\n\n if (!node) { continue; }\n\n treeWalker.push(node);\n }\n\n /**\n * If one of childs is not empty, checked Node is not empty too\n */\n if (node && !this.isNodeEmpty(node)) {\n return false;\n }\n }\n\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\n }\n\n /**\n * Check if string contains html elements\n *\n * @returns {boolean}\n * @param {String} str\n */\n public static isHTMLString(str: string): boolean {\n const wrapper = Dom.make('div');\n\n wrapper.innerHTML = str;\n\n return wrapper.childElementCount > 0;\n }\n\n /**\n * Return length of node`s text content\n *\n * @param {Node} node\n * @returns {number}\n */\n public static getContentLength(node: Node): number {\n if (Dom.isNativeInput(node)) {\n return (node as HTMLInputElement).value.length;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node as Text).length;\n }\n\n return node.textContent.length;\n }\n\n /**\n * Return array of names of block html elements\n *\n * @returns {string[]}\n */\n static get blockElements(): string[] {\n return [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'ruby',\n 'section',\n 'table',\n 'tr',\n 'tfoot',\n 'ul',\n 'video',\n ];\n }\n}\n","import $ from '../dom';\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\n\n/**\n * Bold Tool\n *\n * Inline Toolbar Tool\n *\n * Makes selected text bolder\n */\nexport default class BoldInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's command that uses for Bold\n */\n private readonly commandName: string = 'bold';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--bold',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: undefined,\n };\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('bold', 13, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+B';\n }\n}\n","import $ from '../dom';\nimport {InlineTool, SanitizerConfig} from '../../../types';\n\n/**\n * Italic Tool\n *\n * Inline Toolbar Tool\n *\n * Style selected text with italic\n */\nexport default class ItalicInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n i: {},\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's command that uses for Italic\n */\n private readonly commandName: string = 'italic';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--italic',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: null,\n };\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('italic', 6, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+I';\n }\n}\n","import SelectionUtils from '../selection';\n\nimport $ from '../dom';\nimport _ from '../utils';\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\nimport {Toolbar} from '../../../types/api';\n/**\n * Link Tool\n *\n * Inline Toolbar Tool\n *\n * Wrap selected text with tag\n */\nexport default class LinkInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow',\n },\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's commands for link/unlink\n */\n private readonly commandLink: string = 'createLink';\n private readonly commandUnlink: string = 'unlink';\n\n /**\n * Enter key code\n */\n private readonly ENTER_KEY: number = 13;\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--link',\n buttonUnlink: 'ce-inline-tool--unlink',\n input: 'ce-inline-tool-input',\n inputShowed: 'ce-inline-tool-input--showed',\n };\n\n /**\n * Elements\n */\n private nodes: {\n button: HTMLButtonElement;\n input: HTMLInputElement;\n } = {\n button: null,\n input: null,\n };\n\n /**\n * SelectionUtils instance\n */\n private selection: SelectionUtils;\n\n /**\n * Input opening state\n */\n private inputOpened: boolean = false;\n\n /**\n * Available Inline Toolbar methods (open/close)\n */\n private inlineToolbar: Toolbar;\n\n /**\n * @param {{api: API}} - CodeX Editor API\n */\n constructor({api}) {\n this.inlineToolbar = api.toolbar;\n this.selection = new SelectionUtils();\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('link', 15, 14));\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\n return this.nodes.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n this.nodes.input = document.createElement('input') as HTMLInputElement;\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.keyCode === this.ENTER_KEY ) {\n this.enterPressed(event);\n }\n });\n return this.nodes.input;\n }\n\n /**\n * Handle clicks on the Inline Toolbar icon\n * @param {Range} range\n */\n public surround(range: Range): void {\n /**\n * Range will be null when user makes second click on the 'link icon' to close opened input\n */\n if (range) {\n /**\n * Save selection before change focus to the input\n */\n this.selection.save();\n const parentAnchor = this.selection.findParentTag('A');\n\n /**\n * Unlink icon pressed\n */\n if (parentAnchor) {\n this.selection.expandToTag(parentAnchor);\n this.unlink();\n this.closeActions();\n this.checkState();\n this.inlineToolbar.close();\n return;\n }\n }\n\n this.toggleActions();\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection?: Selection): boolean {\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\n this.nodes.button.classList.add(this.CSS.buttonActive);\n this.openActions();\n\n /**\n * Fill input value with link href\n */\n const hrefAttr = anchorTag.getAttribute('href');\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\n\n this.selection.save();\n } else {\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\n this.nodes.button.classList.remove(this.CSS.buttonActive);\n }\n\n return !!anchorTag;\n }\n\n /**\n * Function called with Inline Toolbar closing\n */\n public clear(): void {\n this.closeActions();\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+K';\n }\n\n private toggleActions(): void {\n if (!this.inputOpened) {\n this.openActions(true);\n } else {\n this.closeActions(false);\n }\n }\n\n /**\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\n */\n private openActions(needFocus: boolean = false): void {\n this.nodes.input.classList.add(this.CSS.inputShowed);\n if (needFocus) {\n this.nodes.input.focus();\n }\n this.inputOpened = true;\n }\n\n /**\n * Close input\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\n * on toggle-clicks on the icon of opened Toolbar\n */\n private closeActions(clearSavedSelection: boolean = true): void {\n this.nodes.input.classList.remove(this.CSS.inputShowed);\n this.nodes.input.value = '';\n if (clearSavedSelection) {\n this.selection.clearSaved();\n }\n this.inputOpened = false;\n }\n\n /**\n * Enter pressed on input\n * @param {KeyboardEvent} event\n */\n private enterPressed(event: KeyboardEvent): void {\n let value = this.nodes.input.value || '';\n\n if (!value.trim()) {\n this.selection.restore();\n this.unlink();\n event.preventDefault();\n this.closeActions();\n }\n\n if (!this.validateURL(value)) {\n /**\n * @todo show notification 'Incorrect Link'\n */\n _.log('Incorrect Link pasted', 'warn', value);\n return;\n }\n\n value = this.prepareLink(value);\n\n this.selection.restore();\n this.insertLink(value);\n\n /**\n * Preventing events that will be able to happen\n */\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n this.closeActions();\n this.inlineToolbar.close();\n this.checkState();\n }\n\n /**\n * Detects if passed string is URL\n * @param {string} str\n * @return {Boolean}\n */\n private validateURL(str: string): boolean {\n /**\n * Don't allow spaces\n */\n return !/\\s/.test(str);\n }\n\n /**\n * Process link before injection\n * - sanitize\n * - add protocol for links like 'google.com'\n * @param {string} link - raw user input\n */\n private prepareLink(link: string): string {\n link = link.trim();\n link = this.addProtocol(link);\n return link;\n }\n\n /**\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\n * @param {String} link\n */\n private addProtocol(link: string): string {\n /**\n * If protocol already exists, do nothing\n */\n if (/^(\\w+):\\/\\//.test(link)) {\n return link;\n }\n\n /**\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\n * 1) Internal links like \"/general\"\n * 2) Anchors looks like \"#results\"\n * 3) Protocol-relative URLs like \"//google.com\"\n */\n const isInternal = /^\\/[^\\/\\s]/.test(link),\n isAnchor = link.substring(0, 1) === '#',\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\n\n if (!isInternal && !isAnchor && !isProtocolRelative) {\n link = 'http://' + link;\n }\n\n return link;\n }\n\n /**\n * Inserts tag with \"href\"\n * @param {string} link - \"href\" value\n */\n private insertLink(link: string): void {\n\n /**\n * Edit all link, not selected part\n */\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.selection.expandToTag(anchorTag);\n }\n\n document.execCommand(this.commandLink, false, link);\n }\n\n /**\n * Removes tag\n */\n private unlink(): void {\n document.execCommand(this.commandUnlink);\n }\n}\n","var map = {\n\t\"./api\": \"./src/components/modules/api/index.ts\",\n\t\"./api/\": \"./src/components/modules/api/index.ts\",\n\t\"./api/blocks\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/blocks.ts\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/caret\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/caret.ts\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/events\": \"./src/components/modules/api/events.ts\",\n\t\"./api/events.ts\": \"./src/components/modules/api/events.ts\",\n\t\"./api/index\": \"./src/components/modules/api/index.ts\",\n\t\"./api/index.ts\": \"./src/components/modules/api/index.ts\",\n\t\"./api/listeners\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/listeners.ts\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/notifier\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/notifier.ts\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/sanitizer\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/sanitizer.ts\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/saver\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/saver.ts\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/selection\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/selection.ts\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/styles\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/styles.ts\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/toolbar\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./api/toolbar.ts\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./blockEvents\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockEvents.ts\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockManager\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockManager.ts\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockSelection\": \"./src/components/modules/blockSelection.ts\",\n\t\"./blockSelection.ts\": \"./src/components/modules/blockSelection.ts\",\n\t\"./caret\": \"./src/components/modules/caret.ts\",\n\t\"./caret.ts\": \"./src/components/modules/caret.ts\",\n\t\"./dragNDrop\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events\": \"./src/components/modules/events.ts\",\n\t\"./events.ts\": \"./src/components/modules/events.ts\",\n\t\"./listeners\": \"./src/components/modules/listeners.ts\",\n\t\"./listeners.ts\": \"./src/components/modules/listeners.ts\",\n\t\"./modificationsObserver\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./notifier\": \"./src/components/modules/notifier.ts\",\n\t\"./notifier.ts\": \"./src/components/modules/notifier.ts\",\n\t\"./paste\": \"./src/components/modules/paste.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer\": \"./src/components/modules/renderer.ts\",\n\t\"./renderer.ts\": \"./src/components/modules/renderer.ts\",\n\t\"./sanitizer\": \"./src/components/modules/sanitizer.ts\",\n\t\"./sanitizer.ts\": \"./src/components/modules/sanitizer.ts\",\n\t\"./saver\": \"./src/components/modules/saver.ts\",\n\t\"./saver.ts\": \"./src/components/modules/saver.ts\",\n\t\"./shortcuts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/blockSettings\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/blockSettings.ts\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/index\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/index.ts\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/inline\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/inline.ts\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/toolbox\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./toolbar/toolbox.ts\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./tools\": \"./src/components/modules/tools.ts\",\n\t\"./tools.ts\": \"./src/components/modules/tools.ts\",\n\t\"./ui\": \"./src/components/modules/ui.ts\",\n\t\"./ui.ts\": \"./src/components/modules/ui.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/components/modules sync recursive ^\\\\.\\\\/.*$\";","import Module from '../../__module';\n\nimport {Blocks} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\nimport Block from '../../block';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module {\n /**\n * Available methods\n * @return {Blocks}\n */\n get methods(): Blocks {\n return {\n clear: () => this.clear(),\n render: (data: OutputData) => this.render(data),\n delete: () => this.delete(),\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\n getBlocksCount: () => this.getBlocksCount(),\n stretchBlock: (index: number, status: boolean = true) => this.stretchBlock(index, status),\n insertNewBlock: () => this.insertNewBlock(),\n };\n }\n\n /**\n * Returns Blocks count\n * @return {number}\n */\n public getBlocksCount(): number {\n return this.Editor.BlockManager.blocks.length;\n }\n\n /**\n * Returns current block index\n * @return {number}\n */\n public getCurrentBlockIndex(): number {\n return this.Editor.BlockManager.currentBlockIndex;\n }\n\n /**\n * Returns Block holder by Block index\n * @param {Number} index\n *\n * @return {HTMLElement}\n */\n public getBlockByIndex(index: number): HTMLElement {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n return block.holder;\n }\n\n /**\n * Call Block Manager method that swap Blocks\n * @param {number} fromIndex - position of first Block\n * @param {number} toIndex - position of second Block\n */\n public swap(fromIndex: number, toIndex: number): void {\n this.Editor.BlockManager.swap(fromIndex, toIndex);\n\n /**\n * Move toolbar\n * DO not close the settings\n */\n this.Editor.Toolbar.move(false);\n }\n\n /**\n * Deletes Block\n * @param blockIndex\n */\n public delete(blockIndex?: number): void {\n this.Editor.BlockManager.removeBlock(blockIndex);\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Clear Editor's area\n */\n public clear(): void {\n this.Editor.BlockManager.clear(true);\n }\n\n /**\n * Fills Editor with Blocks data\n * @param {OutputData} data — Saved Editor data\n */\n public render(data: OutputData): Promise {\n this.Editor.BlockManager.clear();\n return this.Editor.Renderer.render(data.blocks);\n }\n\n /**\n * Stretch Block's content\n * @param {number} index\n * @param {boolean} status - true to enable, false to disable\n */\n public stretchBlock(index: number, status: boolean = true): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status;\n }\n\n /**\n * Insert new Block\n * After set caret to this Block\n */\n public insertNewBlock() {\n const newBlock = this.Editor.BlockManager.insert();\n this.Editor.Caret.setToBlock(newBlock);\n }\n}\n","import Module from '../../__module';\nimport {Caret} from '../../../../types/api';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module {\n /**\n * Available methods\n * @return {Caret}\n */\n get methods(): Caret {\n return {};\n }\n}\n","import Module from '../../__module';\nimport {Events} from '../../../../types/api';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module {\n /**\n * Available methods\n * @return {Events}\n */\n get methods(): Events {\n return {\n emit: (eventName: string, data: object) => this.emit(eventName, data),\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\n };\n }\n\n /**\n * Subscribe on Events\n * @param {String} eventName\n * @param {Function} callback\n */\n public on(eventName, callback): void {\n this.Editor.Events.on(eventName, callback);\n }\n\n /**\n * Emit event with data\n * @param {String} eventName\n * @param {Object} data\n */\n public emit(eventName, data): void {\n this.Editor.Events.emit(eventName, data);\n }\n\n /**\n * Unsubscribe from Event\n * @param {String} eventName\n * @param {Function} callback\n */\n public off(eventName, callback): void {\n this.Editor.Events.off(eventName, callback);\n }\n\n}\n","/**\n * @module API\n * @copyright 2018\n *\n * Each block has an Editor API instance to use provided public methods\n * if you cant to read more about how API works, please see docs\n */\nimport Module from '../../__module';\nimport {API as APIInterfaces} from '../../../../types';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n public get methods(): APIInterfaces {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listeners: this.Editor.ListenersAPI.methods,\n notifier: this.Editor.NotifierAPI.methods,\n sanitizer: this.Editor.SanitizerAPI.methods,\n saver: this.Editor.SaverAPI.methods,\n selection: this.Editor.SelectionAPI.methods,\n styles: this.Editor.StylesAPI.classes,\n toolbar: this.Editor.ToolbarAPI.methods,\n } as APIInterfaces;\n }\n}\n","import Module from '../../__module';\nimport {Listeners} from '../../../../types/api';\n\n/**\n * @class ListenersAPI\n * Provides with methods working with DOM Listener\n */\nexport default class ListenersAPI extends Module {\n /**\n * Available methods\n * @return {Listeners}\n */\n get methods(): Listeners {\n return {\n on: (element: HTMLElement, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\n off: (element, eventType, handler) => this.off(element, eventType, handler),\n };\n }\n\n /**\n * adds DOM event listener\n *\n * @param {HTMLElement} element\n * @param {string} eventType\n * @param {() => void} handler\n * @param {boolean} useCapture\n */\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\n }\n\n /**\n * Removes DOM listener from element\n *\n * @param element\n * @param eventType\n * @param handler\n */\n public off(element, eventType, handler): void {\n this.Editor.Listeners.off(element, eventType, handler);\n }\n}\n","import Module from '../../__module';\nimport {Notifier} from '../../../../types/api';\nimport {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\nexport default class NotifierAPI extends Module {\n\n /**\n * Available methods\n */\n get methods(): Notifier {\n return {\n show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options),\n };\n }\n\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n return this.Editor.Notifier.show(options);\n }\n}\n","import Module from '../../__module';\nimport {Sanitizer} from '../../../../types/api';\n\n/**\n * @class SanitizerAPI\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module {\n /**\n * Available methods\n * @return {Sanitizer}\n */\n get methods(): Sanitizer {\n return {\n clean: (taintString, config) => this.clean(taintString, config),\n };\n }\n\n public clean(taintString, config) {\n return this.Editor.Sanitizer.clean(taintString, config);\n }\n\n}\n","import Module from '../../__module';\nimport {Saver} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module {\n /**\n * Available methods\n * @return {Saver}\n */\n get methods(): Saver {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): Promise {\n return this.Editor.Saver.save();\n }\n}\n","import Module from '../../__module';\nimport SelectionUtils from '../../selection';\nimport {Selection as SelectionAPIInterface} from '../../../../types/api';\n\n/**\n * @class SelectionAPI\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module {\n /**\n * Available methods\n * @return {SelectionAPIInterface}\n */\n get methods(): SelectionAPIInterface {\n return {\n findParentTag: (tagName: string, className?: string) => this.findParentTag(tagName, className),\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\n };\n }\n\n /**\n * Looks ahead from selection and find passed tag with class name\n * @param {string} tagName - tag to find\n * @param {string} className - tag's class name\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string): HTMLElement|null {\n return new SelectionUtils().findParentTag(tagName, className);\n }\n\n /**\n * Expand selection to passed tag\n * @param {HTMLElement} node - tag that should contain selection\n */\n public expandToTag(node: HTMLElement): void {\n new SelectionUtils().expandToTag(node);\n }\n\n}\n","import Module from '../../__module';\nimport {Styles} from '../../../../types/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n get classes(): Styles {\n return {\n /**\n * Base Block styles\n */\n block: 'cdx-block',\n\n /**\n * Inline Tools styles\n */\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonActive: 'ce-inline-tool--active',\n\n /**\n * UI elements\n */\n input: 'cdx-input',\n loader: 'cdx-loader',\n button: 'cdx-button',\n\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","import Module from '../../__module';\nimport {Toolbar} from '../../../../types/api';\n\n/**\n * @class ToolbarAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module {\n /**\n * Available methods\n * @return {Toolbar}\n */\n get methods(): Toolbar {\n return {\n close: () => this.close(),\n open: () => this.open(),\n };\n }\n\n /**\n * Open toolbar\n */\n public open(): void {\n this.Editor.Toolbar.open();\n }\n\n /**\n * Close toolbar and all included elements\n */\n public close(): void {\n this.Editor.Toolbar.close();\n }\n\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\nimport Module from '../__module';\nimport _ from '../utils';\nimport CaretClass from './caret';\n\nexport default class BlockEvents extends Module {\n /**\n * All keydowns on Block\n * @param {KeyboardEvent} event - keydown\n */\n public keydown(event: KeyboardEvent): void {\n /**\n * Run common method for all keydown events\n */\n this.beforeKeydownProcessing(event);\n\n /**\n * Fire keydown processor by event.keyCode\n */\n switch (event.keyCode) {\n case _.keyCodes.BACKSPACE:\n this.backspace(event);\n break;\n\n case _.keyCodes.ENTER:\n this.enter(event);\n break;\n\n case _.keyCodes.DOWN:\n case _.keyCodes.RIGHT:\n this.arrowRightAndDown(event);\n break;\n\n case _.keyCodes.UP:\n case _.keyCodes.LEFT:\n this.arrowLeftAndUp(event);\n break;\n\n case _.keyCodes.TAB:\n this.tabPressed(event);\n break;\n\n case _.keyCodes.ESC:\n this.escapePressed(event);\n break;\n default:\n this.defaultHandler();\n break;\n }\n }\n\n /**\n * Fires on keydown before event processing\n * @param {KeyboardEvent} event - keydown\n */\n public beforeKeydownProcessing(event): void {\n /**\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\n */\n if (!this.needToolbarClosing(event)) {\n return;\n }\n\n this.Editor.Toolbar.close();\n\n const cmdKey = event.ctrlKey || event.metaKey;\n const altKey = event.altKey;\n const shiftKey = event.shiftKey;\n\n /** clear selecton when it is not CMD, SHIFT, ALT keys */\n if (cmdKey || altKey || shiftKey) {\n return;\n }\n\n /**\n * Clear all highlightings\n */\n this.Editor.BlockManager.clearFocused();\n\n if (event.keyCode !== _.keyCodes.ENTER && event.keyCode !== _.keyCodes.BACKSPACE) {\n /**\n * Clear selection and restore caret before navigation\n */\n this.Editor.BlockSelection.clearSelection(true);\n }\n }\n\n /**\n * Key up on Block:\n * - shows Inline Toolbar if something selected\n */\n public keyup(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Mouse up on Block:\n * - shows Inline Toolbar if something selected\n */\n public mouseUp(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Open Toolbox to leaf Tools\n * @param {KeyboardEvent} event\n */\n public tabPressed(event): void {\n\n const {currentBlock} = this.Editor.BlockManager;\n\n /** Prevent Default behaviour */\n event.preventDefault();\n event.stopPropagation();\n\n /** this property defines leaf direction */\n const shiftKey = event.shiftKey,\n direction = shiftKey ? 'left' : 'right';\n\n /**\n * Don't show Plus and Toolbox near not-inital Tools\n */\n if (!this.Editor.Tools.isInitial(currentBlock.tool)) {\n return;\n }\n\n if (currentBlock.isEmpty) {\n if (!this.Editor.Toolbar.opened) {\n this.Editor.Toolbar.open(false , false);\n this.Editor.Toolbar.plusButton.show();\n }\n\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\n }\n\n /**\n * Escape pressed\n * @param event\n */\n public escapePressed(event): void { }\n\n /**\n * Add drop target styles\n *\n * @param {DragEvent} e\n */\n public dragOver(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node);\n\n block.dropTarget = true;\n }\n\n /**\n * Remove drop target style\n *\n * @param {DragEvent} e\n */\n public dragLeave(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node);\n\n block.dropTarget = false;\n }\n\n /**\n * ENTER pressed on block\n * @param {KeyboardEvent} event - keydown\n */\n private enter(event: KeyboardEvent): void {\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.available[currentBlock.name];\n\n /**\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\n return;\n }\n\n /**\n * Allow to create linebreaks by Shift+Enter\n */\n if (event.shiftKey) {\n return;\n }\n /**\n * Split the Current Block into two blocks\n * Renew local current node after split\n */\n const newCurrent = this.Editor.BlockManager.split();\n\n this.Editor.Caret.setToBlock(newCurrent);\n\n /**\n * If new Block is empty\n */\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\n /**\n * Show Toolbar\n */\n this.Editor.Toolbar.open(false);\n\n /**\n * Show Plus Button\n */\n this.Editor.Toolbar.plusButton.show();\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handle backspace keydown on Block\n * @param {KeyboardEvent} event - keydown\n */\n private backspace(event: KeyboardEvent): void {\n const { BlockManager, BlockSelection, Caret } = this.Editor;\n const currentBlock = BlockManager.currentBlock;\n const tool = this.Editor.Tools.available[currentBlock.name];\n\n /**\n * Check if Block should be removed by current Backspace keydown\n */\n if (currentBlock.selected || BlockManager.currentBlock.isEmpty) {\n if (BlockSelection.allBlocksSelected) {\n this.removeAllBlocks();\n } else {\n this.removeCurrentBlock();\n }\n\n /** Clear selection */\n BlockSelection.clearSelection();\n return;\n }\n\n /**\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n const isFirstBlock = BlockManager.currentBlockIndex === 0;\n const canMergeBlocks = Caret.isAtStart && !isFirstBlock;\n\n if (canMergeBlocks) {\n /**\n * preventing browser default behaviour\n */\n event.preventDefault();\n\n /**\n * Merge Blocks\n */\n this.mergeBlocks();\n }\n }\n\n /**\n * remove all selected Blocks\n */\n private removeAllBlocks(): boolean {\n const { BlockManager } = this.Editor;\n\n BlockManager.removeAllBlocks();\n return true;\n }\n\n /**\n * remove current Block and sets Caret to the correct position\n */\n private removeCurrentBlock(): boolean {\n const { BlockManager, Caret } = this.Editor;\n\n /** If current Block is empty just remove this Block */\n BlockManager.removeBlock();\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n * After BlockManager removes the Block (which is current now),\n * pointer that references to the current Block, now points to the Next\n */\n if (BlockManager.currentBlockIndex === 0) {\n Caret.setToBlock(BlockManager.currentBlock);\n } else {\n Caret.setToBlock(BlockManager.previousBlock, CaretClass.positions.END);\n }\n\n this.Editor.Toolbar.close();\n return true;\n }\n\n /**\n * Merge current and previous Blocks if they have the same type\n */\n private mergeBlocks() {\n const { BlockManager, Caret, Toolbar } = this.Editor;\n const targetBlock = BlockManager.getBlockByIndex(BlockManager.currentBlockIndex - 1),\n blockToMerge = BlockManager.currentBlock;\n\n /**\n * Blocks that can be merged:\n * 1) with the same Name\n * 2) Tool has 'merge' method\n *\n * other case will handle as usual ARROW LEFT behaviour\n */\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\n if (Caret.navigatePrevious()) {\n Toolbar.close();\n }\n\n return;\n }\n\n Caret.createShadow(targetBlock.pluginsContent);\n BlockManager.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n Caret.restoreCaret(targetBlock.pluginsContent as HTMLElement);\n targetBlock.pluginsContent.normalize();\n Toolbar.close();\n });\n }\n\n /**\n * Handle right and down keyboard keys\n */\n private arrowRightAndDown(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigateNext()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Handle left and up keyboard keys\n */\n private arrowLeftAndUp(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigatePrevious()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Default keydown handler\n */\n private defaultHandler(): void {}\n\n /**\n * Cases when we need to close Toolbar\n */\n private needToolbarClosing(event) {\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\n\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\n }\n\n}\n","/**\n * @class BlockManager\n * @classdesc Manage editor`s blocks storage and appearance\n *\n * @module BlockManager\n *\n * @version 2.0.0\n */\nimport Block from '../block';\nimport Module from '../__module';\nimport $ from '../dom';\nimport Blocks from '../blocks';\nimport {BlockTool, BlockToolConstructable, BlockToolData, ToolConfig} from '../../../types';\nimport Caret from './caret';\n\n/**\n * @typedef {BlockManager} BlockManager\n * @property {Number} currentBlockIndex - Index of current working block\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\n */\nexport default class BlockManager extends Module {\n\n /**\n * returns last Block\n * @return {Block}\n */\n public get lastBlock(): Block {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n public get currentBlock(): Block {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n public get nextBlock(): Block {\n const isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\n\n if (isLastBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex + 1];\n }\n\n /**\n * Return first Block with inputs after current Block\n *\n * @returns {Block | undefined}\n */\n public get nextContentfulBlock(): Block {\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\n\n return nextBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Return first Block with inputs before current Block\n *\n * @returns {Block | undefined}\n */\n public get previousContentfulBlock(): Block {\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\n\n return previousBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Returns previous Block instance\n * @return {Block|null}\n */\n public get previousBlock(): Block {\n const isFirstBlock = this.currentBlockIndex === 0;\n\n if (isFirstBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex - 1];\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n public get blocks(): Block[] {\n return this._blocks.array;\n }\n\n /**\n * Index of current working block\n *\n * @type {number}\n */\n public currentBlockIndex: number = -1;\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n private _blocks: Blocks = null;\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n public async prepare() {\n const blocks = new Blocks(this.Editor.UI.nodes.redactor);\n\n /**\n * We need to use Proxy to overload set/get [] operator.\n * So we can use array-like syntax to access blocks\n *\n * @example\n * this._blocks[0] = new Block(...);\n *\n * block = this._blocks[0];\n *\n * @todo proxy the enumerate method\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = new Proxy(blocks, {\n set: Blocks.set,\n get: Blocks.get,\n });\n }\n\n /**\n * Creates Block instance by tool name\n *\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\n * @param {Object} data - constructor params\n * @param {Object} settings - block settings\n *\n * @return {Block}\n */\n public composeBlock(toolName: string, data: BlockToolData, settings?: ToolConfig): Block {\n const toolInstance = this.Editor.Tools.construct(toolName, data) as BlockTool;\n const toolClass = this.Editor.Tools.available[toolName] as BlockToolConstructable;\n const block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n\n return block;\n }\n\n /**\n * Insert new block into _blocks\n *\n * @param {String} toolName — plugin name, by default method inserts initial block type\n * @param {Object} data — plugin data\n * @param {Object} settings - default settings\n *\n * @return {Block}\n */\n public insert(\n toolName: string = this.config.initialBlock,\n data: BlockToolData = {},\n settings: ToolConfig = {},\n ): Block {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n const newIndex = ++this.currentBlockIndex;\n const block = this.composeBlock(toolName, data, settings);\n\n this._blocks[newIndex] = block;\n return block;\n }\n\n /**\n * Always inserts at the end\n * @return {Block}\n */\n public insertAtEnd(): Block {\n /**\n * Define new value for current block index\n */\n this.currentBlockIndex = this.blocks.length - 1;\n\n /**\n * Insert initial typed block\n */\n return this.insert();\n }\n\n /**\n * Merge two blocks\n * @param {Block} targetBlock - previous block will be append to this block\n * @param {Block} blockToMerge - block that will be merged with target block\n *\n * @return {Promise} - the sequence that can be continued\n */\n public async mergeBlocks(targetBlock: Block, blockToMerge: Block): Promise {\n const blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n if (blockToMerge.isEmpty) {\n return;\n }\n\n const blockToMergeData = await blockToMerge.data;\n\n await targetBlock.mergeWith(blockToMergeData);\n\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n public removeBlock(index?: number): void {\n if (!index) {\n index = this.currentBlockIndex;\n }\n this._blocks.remove(index);\n\n /**\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\n */\n if (!this.blocks.length) {\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n }\n\n /**\n * Attention!\n * After removing insert new initial typed Block and focus on it\n * Removes all blocks\n */\n public removeAllBlocks(): void {\n for (let index = this.blocks.length - 1; index >= 0; index--) {\n this._blocks.remove(index);\n }\n\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n\n /**\n * Split current Block\n * 1. Extract content from Caret position to the Block`s end\n * 2. Insert a new Block below current one with extracted content\n *\n * @return {Block}\n */\n public split(): Block {\n const extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition();\n const wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n const data = {\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\n };\n\n /**\n * Renew current Block\n * @type {Block}\n */\n return this.insert(this.config.initialBlock, data);\n }\n\n /**\n * Replace current working block\n *\n * @param {String} toolName — plugin name\n * @param {Object} data — plugin data\n *\n * @return {Block}\n */\n public replace(toolName: string, data: BlockToolData = {}): Block {\n const block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n public getBlockByIndex(index): Block {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n public getBlock(element: HTMLElement): Block {\n if (!$.isElement(element)) {\n element = element.parentNode as HTMLElement;\n }\n\n const nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock as HTMLElement);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n public highlightCurrentNode(): void {\n /**\n * Remove previous selected Block's state\n */\n this.clearFocused();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.focused = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n public clearFocused(): void {\n this.blocks.forEach( (block) => block.focused = false);\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Node} childNode - look ahead from this node.\n * @param {string} caretPosition - position where to set caret\n * @throws Error - when passed Node is not included at the Block\n */\n public setCurrentBlockByChildNode(childNode: Node, caretPosition: string = Caret.positions.DEFAULT): void {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const parentFirstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock as HTMLElement);\n\n this.Editor.Caret.setToInput(childNode as HTMLElement, caretPosition);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Return block which contents passed node\n *\n * @param {Node} childNode\n * @return {Block}\n */\n public getBlockByChildNode(childNode: Node): Block {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const firstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n return this.blocks.find((block) => block.holder === firstLevelBlock);\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n public swap(fromIndex, toIndex): void {\n /** Move up current Block */\n this._blocks.swap(fromIndex, toIndex);\n\n /** Now actual block moved up so that current block index decreased */\n this.currentBlockIndex = toIndex;\n }\n\n /**\n * Sets current Block Index -1 which means unknown\n * and clear highlightings\n */\n public dropPointer(): void {\n this.currentBlockIndex = -1;\n this.clearFocused();\n }\n\n /**\n * Clears Editor\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\n * we don't need to add empty initial block\n * 2) in api.blocks.clear we should add empty block\n */\n public clear(needAddInitialBlock: boolean = false): void {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n private bindEvents(block: Block): void {\n const {BlockEvents, Listeners} = this.Editor;\n\n Listeners.on(block.holder, 'keydown', (event) => BlockEvents.keydown(event as KeyboardEvent), true);\n Listeners.on(block.holder, 'mouseup', (event) => BlockEvents.mouseUp(event));\n Listeners.on(block.holder, 'keyup', (event) => BlockEvents.keyup(event));\n Listeners.on(block.holder, 'dragover', (event) => BlockEvents.dragOver(event as DragEvent));\n Listeners.on(block.holder, 'dragleave', (event) => BlockEvents.dragLeave(event as DragEvent));\n }\n}\n","/**\n * @class BlockSelection\n * @classdesc Manages Block selection with shortcut CMD+A and with mouse\n *\n * @module BlockSelection\n * @version 1.0.0\n */\nimport Module from '../__module';\nimport _ from '../utils';\nimport $ from '../dom';\n\nimport SelectionUtils from '../selection';\n\nexport default class BlockSelection extends Module {\n\n /**\n * Sanitizer Config\n * @return {SanitizerConfig}\n */\n private get sanitizerConfig() {\n return {\n p: {},\n h1: {},\n h2: {},\n h3: {},\n h4: {},\n h5: {},\n h6: {},\n ol: {},\n ul: {},\n li: {},\n br: true,\n img: {\n src: true,\n width: true,\n height: true,\n },\n a: {\n href: true,\n },\n b: {},\n i: {},\n u: {},\n };\n }\n\n /**\n * Flag used to define block selection\n * First CMD+A defines it as true and then second CMD+A selects all Blocks\n * @type {boolean}\n */\n private needToSelectAll: boolean = false;\n\n /**\n * SelectionUtils instance\n * @type {SelectionUtils}\n */\n private selection: SelectionUtils;\n\n /**\n * Flag that identifies all Blocks selection\n * @return {boolean}\n */\n public get allBlocksSelected(): boolean {\n const { BlockManager } = this.Editor;\n\n return BlockManager.blocks.every( (block) => block.selected === true);\n }\n\n /**\n * Set selected all blocks\n * @param {boolean} state\n */\n public set allBlocksSelected(state: boolean) {\n const { BlockManager } = this.Editor;\n\n BlockManager.blocks.forEach( (block) => block.selected = state);\n }\n\n /**\n * Module Preparation\n * Registers Shortcuts CMD+A and CMD+C\n * to select all and copy them\n */\n public prepare(): void {\n const { Shortcuts } = this.Editor;\n\n /** Selection shortcut */\n Shortcuts.add({\n name: 'CMD+A',\n handler: (event) => {\n this.handleCommandA(event);\n },\n });\n\n /** shortcut to copy all selected blocks */\n Shortcuts.add({\n name: 'CMD+C',\n handler: (event) => {\n this.handleCommandC(event);\n },\n });\n\n this.selection = new SelectionUtils();\n }\n\n /**\n * Clear selection from Blocks\n */\n public clearSelection(restoreSelection = false) {\n const { BlockManager } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\n\n this.allBlocksSelected = false;\n this.needToSelectAll = false;\n\n if (!anyBlockSelected) {\n return;\n }\n\n /**\n * restore selection when Block is already selected\n * but someone tries to write something.\n */\n if (restoreSelection) {\n this.selection.restore();\n }\n }\n\n /**\n * First CMD+A Selects current focused blocks,\n * and consequent second CMD+A keypress selects all blocks\n *\n * @param {keydown} event\n */\n private handleCommandA(event): void {\n /** Prevent default selection */\n event.preventDefault();\n\n if (this.needToSelectAll) {\n this.selectAllBlocks();\n this.needToSelectAll = false;\n } else {\n this.selectBlockByIndex();\n this.needToSelectAll = true;\n }\n }\n\n /**\n * Copying selected blocks\n * Before putting to the clipboard we sanitize all blocks and then copy to the clipboard\n *\n * @param event\n */\n private handleCommandC(event): void {\n const { BlockManager, Sanitizer } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\n\n if (!anyBlockSelected) {\n return;\n }\n\n const fakeClipboard = $.make('div');\n\n BlockManager.blocks.filter( (block) => block.selected )\n .forEach( (block) => {\n /**\n * Make

    tag that holds clean HTML\n */\n const cleanHTML = Sanitizer.clean(block.holder.innerHTML, this.sanitizerConfig);\n const fragment = $.make('p');\n\n fragment.innerHTML = cleanHTML;\n fakeClipboard.appendChild(fragment);\n });\n\n _.copyTextToClipboard(fakeClipboard.innerHTML);\n }\n\n /**\n * Select All Blocks\n * Each Block has selected setter that makes Block copyable\n */\n private selectAllBlocks() {\n const { BlockManager } = this.Editor;\n\n this.allBlocksSelected = true;\n }\n\n /**\n * select Block\n * @param {number?} index - Block index according to the BlockManager's indexes\n */\n private selectBlockByIndex(index?) {\n const { BlockManager } = this.Editor;\n\n /**\n * Remove previous focused Block's state\n */\n BlockManager.clearFocused();\n\n let block;\n\n if (isNaN(index)) {\n block = BlockManager.currentBlock;\n } else {\n block = BlockManager.getBlockByIndex(index);\n }\n\n /** Save selection */\n this.selection.save();\n SelectionUtils.get()\n .removeAllRanges();\n\n block.selected = true;\n }\n}\n","/**\n * @class Caret\n * @classdesc Contains methods for working Caret\n *\n * Uses Range methods to manipulate with caret\n *\n * @module Caret\n *\n * @version 2.0.0\n */\n\nimport Selection from '../selection';\nimport Module from '../__module';\nimport Block from '../block';\nimport $ from '../dom';\nimport _ from '../utils';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n public static get positions(): {START: string, END: string, DEFAULT: string} {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default',\n };\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n private static get CSS(): {shadowCaret: string} {\n return {\n shadowCaret: 'cdx-shadow-caret',\n };\n }\n\n /**\n * Get's deepest first node and checks if offset is zero\n * @return {boolean}\n */\n public get isAtStart(): boolean {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n const selection = Selection.get(),\n anchorNode = selection.anchorNode,\n firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(firstNode)) {\n return (firstNode as HTMLInputElement).selectionEnd === 0;\n }\n\n /**\n * Workaround case when caret in the text like \" |Hello!\"\n * selection.anchorOffset is 1, but real caret visible position is 0\n * @type {number}\n */\n let firstLetterPosition = anchorNode.textContent.search(/\\S/);\n\n if (firstLetterPosition === -1) { // empty text\n firstLetterPosition = 0;\n }\n\n /**\n * In case of\n *

    \n */\n if ($.isEmpty(firstNode)) {\n const leftSiblings = this.getHigherLevelSiblings(anchorNode as HTMLElement, 'left'),\n nothingAtLeft = leftSiblings.every( (node) => $.isEmpty(node) );\n\n if (nothingAtLeft && selection.anchorOffset === firstLetterPosition) {\n return true;\n }\n }\n\n /**\n * We use <= comparison for case:\n * \"| Hello\" <--- selection.anchorOffset is 0, but firstLetterPosition is 1\n */\n return firstNode === null || anchorNode === firstNode && selection.anchorOffset <= firstLetterPosition;\n }\n\n /**\n * Get's deepest last node and checks if offset is last node text length\n * @return {boolean}\n */\n public get isAtEnd(): boolean {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n const selection = Selection.get(),\n anchorNode = selection.anchorNode,\n lastNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput, true);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(lastNode)) {\n return (lastNode as HTMLInputElement).selectionEnd === (lastNode as HTMLInputElement).value.length;\n }\n\n /**\n * In case of\n *
    \n * adaddad| <-- anchor node\n *

    <-- first (and deepest) node is \n *
    \n */\n if ($.isEmpty(lastNode)) {\n const leftSiblings = this.getHigherLevelSiblings(anchorNode as HTMLElement, 'right'),\n nothingAtRight = leftSiblings.every( (node) => $.isEmpty(node) );\n\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\n return true;\n }\n }\n\n /**\n * Workaround case:\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\n * Why not regular .trim():\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\n */\n const rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\n\n /**\n * We use >= comparison for case:\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\n */\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\n }\n\n /**\n * Method gets Block instance and puts caret to the text node with offset\n * There two ways that method applies caret position:\n * - first found text node: sets at the beginning, but you can pass an offset\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\n *\n * @param {Block} block - Block class\n * @param {String} position - position where to set caret.\n * If default - leave default behaviour and apply offset if it's passed\n * @param {Number} offset - caret offset regarding to the text node\n */\n public setToBlock(block: Block, position: string = Caret.positions.DEFAULT, offset: number = 0): void {\n const {BlockManager} = this.Editor;\n let element;\n\n switch (position) {\n case Caret.positions.START:\n element = block.firstInput;\n break;\n case Caret.positions.END:\n element = block.lastInput;\n break;\n default:\n element = block.currentInput;\n }\n\n if (!element) {\n return;\n }\n\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\n const contentLength = $.getContentLength(nodeToSet);\n\n switch (true) {\n case position === Caret.positions.START:\n offset = 0;\n break;\n case position === Caret.positions.END:\n case offset > contentLength:\n offset = contentLength;\n break;\n }\n\n /**\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\n */\n _.delay( () => {\n this.set(nodeToSet as HTMLElement, offset);\n }, 20)();\n\n BlockManager.setCurrentBlockByChildNode(block.holder);\n BlockManager.currentBlock.currentInput = element;\n }\n\n /**\n * Set caret to the current input of current Block.\n *\n * @param {HTMLElement} input - input where caret should be set\n * @param {String} position - position of the caret.\n * If default - leave default behaviour and apply offset if it's passed\n * @param {number} offset - caret offset regarding to the text node\n */\n public setToInput(input: HTMLElement, position: string = Caret.positions.DEFAULT, offset: number = 0): void {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet as HTMLElement, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet as HTMLElement, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet as HTMLElement, offset);\n }\n }\n\n currentBlock.currentInput = input;\n }\n\n /**\n * Creates Document Range and sets caret to the element with offset\n * @param {HTMLElement} element - target node.\n * @param {Number} offset - offset\n */\n public set(element: HTMLElement, offset: number = 0): void {\n const range = document.createRange(),\n selection = Selection.get();\n\n /** if found deepest node is native input */\n if ($.isNativeInput(element)) {\n element.focus();\n (element as HTMLInputElement).selectionStart = (element as HTMLInputElement).selectionEnd = offset;\n return;\n }\n\n range.setStart(element, offset);\n range.setEnd(element, offset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n /** If new cursor position is not visible, scroll to it */\n const {top, bottom} = range.getBoundingClientRect();\n const {innerHeight} = window;\n\n if (top < 0) { window.scrollBy(0, top); }\n if (bottom > innerHeight) { window.scrollBy(0, bottom - innerHeight); }\n }\n /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n public setToTheLastBlock(): void {\n const lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) {\n return;\n }\n\n /**\n * If last block is empty and it is an initialBlock, set to that.\n * Otherwise, append new empty block and set to that\n */\n if (lastBlock.isEmpty) {\n this.setToBlock(lastBlock);\n } else {\n const newBlock = this.Editor.BlockManager.insertAtEnd();\n\n this.setToBlock(newBlock);\n }\n }\n\n /**\n * Extract content fragment of current Block from Caret position to the end of the Block\n */\n public extractFragmentFromCaretPosition(): void|DocumentFragment {\n const selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n const range = selectRange.cloneRange();\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\n }\n\n /**\n * Set's caret to the next Block or Tool`s input\n * Before moving caret, we should check if caret position is at the end of Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the end\n *\n * @return {Boolean}\n */\n public navigateNext(force: boolean = false): boolean {\n const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;\n const {nextInput} = currentBlock;\n\n if (!nextContentfulBlock && !nextInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n return true;\n }\n\n if (this.isAtEnd) {\n /** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */\n if (!nextInput) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n } else {\n this.setToInput(nextInput, Caret.positions.START);\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Set's caret to the previous Tool`s input or Block\n * Before moving caret, we should check if caret position is start of the Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the start\n *\n * @return {Boolean}\n */\n public navigatePrevious(force: boolean = false): boolean {\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\n\n if (!currentBlock) {\n return false;\n }\n\n const {previousInput} = currentBlock;\n\n if (!previousContentfulBlock && !previousInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n return true;\n }\n\n if (this.isAtStart) {\n /** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */\n if (!previousInput) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n } else {\n this.setToInput(previousInput, Caret.positions.END);\n }\n return true;\n }\n\n return false;\n }\n\n /**\n * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n public createShadow(element): void {\n const shadowCaret = document.createElement('span');\n\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\n element.insertAdjacentElement('beforeEnd', shadowCaret);\n }\n\n /**\n * Restores caret position\n * @param {HTMLElement} element\n */\n public restoreCaret(element: HTMLElement): void {\n const shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\n\n if (!shadowCaret) {\n return;\n }\n\n /**\n * After we set the caret to the required place\n * we need to clear shadow caret\n *\n * - make new range\n * - select shadowed span\n * - use extractContent to remove it from DOM\n */\n const sel = new Selection();\n\n sel.expandToTag(shadowCaret as HTMLElement);\n\n setTimeout(() => {\n const newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\n\n /**\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\n * Then you can check it for emptiness\n *\n * @example\n *
    \n *\n * @return {Element[]}\n */\n private getHigherLevelSiblings(from: HTMLElement, direction?: string): HTMLElement[] {\n let current = from;\n const siblings = [];\n\n /**\n * Find passed node's firs-level parent (in example - blockquote)\n */\n while (current.parentNode && (current.parentNode as HTMLElement).contentEditable !== 'true') {\n current = current.parentNode as HTMLElement;\n }\n\n const sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\n\n /**\n * Find all left/right siblings\n */\n while (current[sibling]) {\n current = current[sibling] as HTMLElement;\n siblings.push(current);\n }\n\n return siblings;\n }\n}\n","import SelectionUtils from '../selection';\n\nimport Module from '../__module';\nimport Caret from './caret';\n\nexport default class DragNDrop extends Module {\n\n /**\n * If drag has been started at editor, we save it\n *\n * @type Boolean\n * @private\n */\n private isStartedAtEditor = false;\n\n /**\n * Bind events\n *\n * @private\n */\n public prepare(): void {\n this.bindEvents();\n }\n\n /**\n * Add drag events listeners to editor zone\n * @private\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\n\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\n this.isStartedAtEditor = true;\n }\n\n this.Editor.InlineToolbar.close();\n });\n\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\n }\n\n /**\n * Handle drop event\n *\n * @param {DragEvent} dropEvent\n */\n private processDrop = async (dropEvent: DragEvent): Promise => {\n const {\n BlockManager,\n Paste,\n } = this.Editor;\n\n dropEvent.preventDefault();\n\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\n document.execCommand('delete');\n }\n\n this.isStartedAtEditor = false;\n\n /**\n * Try to set current block by drop target.\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\n */\n try {\n BlockManager.setCurrentBlockByChildNode(dropEvent.target as Node, Caret.positions.END);\n } catch (e) {\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, Caret.positions.END);\n }\n\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\n }\n}\n","import Module from '../__module';\n\n/**\n * @module eventDispatcher\n *\n * Has two important methods:\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\n * - {Function} emit - fires all subscribers with data\n * - {Function off - unsubsribes callback\n *\n * @version 1.0.0\n *\n * @typedef {Events} Events\n * @property {Object} subscribers - all subscribers grouped by event name\n */\nexport default class Events extends Module {\n\n /**\n * Object with events` names as key and array of callback functions as value\n * @type {{}}\n */\n private subscribers: {[name: string]: Array<(data?: any) => void>} = {};\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n public on(eventName: string, callback: (data: any) => void) {\n if (!(eventName in this.subscribers)) {\n this.subscribers[eventName] = [];\n }\n\n // group by events\n this.subscribers[eventName].push(callback);\n }\n\n /**\n * Emit callbacks with passed data\n *\n * @param {String} eventName - event name\n * @param {Object} data - subscribers get this data when they were fired\n */\n public emit(eventName: string, data?: any): void {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce((previousData, currentHandler) => {\n const newData = currentHandler(previousData);\n\n return newData ? newData : previousData;\n }, data);\n }\n\n /**\n * Unsubsribe callback from event\n *\n * @param eventName\n * @param callback\n */\n public off(eventName: string, callback: (data: any) => void): void {\n for (let i = 0; i < this.subscribers[eventName].length; i++) {\n if (this.subscribers[eventName][i] === callback) {\n delete this.subscribers[eventName][i];\n break;\n }\n }\n }\n\n /**\n * Destroyer\n * clears subsribers list\n */\n public destroy(): void {\n this.subscribers = null;\n }\n}\n","import Module from '../__module';\nimport {EditorConfig} from '../../../types';\n\n/**\n * Event listener information\n */\nexport interface ListenerData {\n /**\n * Element where to listen to dispatched events\n */\n element: EventTarget;\n\n /**\n * Event to listen\n */\n eventType: string;\n\n /**\n * Event handler\n *\n * @param {Event} event\n */\n handler: (event: Event) => void;\n\n /**\n * Should event bubbling be used or not\n */\n useCapture: boolean;\n}\n\n/**\n * Codex Editor Listeners module\n *\n * @module Listeners\n *\n * Module-decorator for event listeners assignment\n *\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Listeners} Listeners\n * @property {Array} allListeners\n */\nexport default class Listeners extends Module {\n\n /**\n * Stores all listeners data to find/remove/process it\n * @type {ListenerData[]}\n */\n private allListeners: ListenerData[] = [];\n\n /**\n * Assigns event listener on element\n *\n * @param {EventTarget} element - DOM element that needs to be listened\n * @param {String} eventType - event type\n * @param {Function} handler - method that will be fired on event\n * @param {Boolean} useCapture - use event bubbling\n */\n public on(\n element: EventTarget,\n eventType: string,\n handler: (event: Event) => void,\n useCapture: boolean = false,\n ): void {\n const assignedEventData = {\n element,\n eventType,\n handler,\n useCapture,\n };\n\n const alreadyExist = this.findOne(element, eventType, handler);\n\n if (alreadyExist) { return; }\n\n this.allListeners.push(assignedEventData);\n element.addEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Removes event listener from element\n *\n * @param {EventTarget} element - DOM element that we removing listener\n * @param {String} eventType - event type\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\n * @param {Boolean} useCapture - use event bubbling\n */\n public off(\n element: EventTarget,\n eventType: string,\n handler: (event: Event) => void,\n useCapture: boolean = false,\n ): void {\n const existingListeners = this.findAll(element, eventType, handler);\n\n existingListeners.forEach((listener, i) => {\n const index = this.allListeners.indexOf(existingListeners[i]);\n\n if (index > 0) {\n this.allListeners.splice(index, 1);\n }\n });\n\n element.removeEventListener(eventType, handler, useCapture);\n }\n\n /**\n * @param {EventTarget} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {EventTarget|null}\n */\n public findOne(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData {\n const foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {EventTarget} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n public findAll(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData[] {\n let found;\n const foundByEventTargets = element ? this.findByEventTarget(element) : [];\n\n if (element && eventType && handler) {\n found = foundByEventTargets.filter( (event) => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByEventTargets.filter( (event) => event.eventType === eventType);\n } else {\n found = foundByEventTargets;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n public removeAll(): void {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n\n /**\n * Search method: looks for listener by passed element\n * @param {EventTarget} element - searching element\n * @returns {Array} listeners that found on element\n */\n private findByEventTarget(element: EventTarget): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.element === element) {\n return listener;\n }\n });\n }\n\n /**\n * Search method: looks for listener by passed event type\n * @param {String} eventType\n * @return {Array} listeners that found on element\n */\n private findByType(eventType: string): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.eventType === eventType) {\n return listener;\n }\n });\n }\n\n /**\n * Search method: looks for listener by passed handler\n * @param {Function} handler\n * @return {Array} listeners that found on element\n */\n private findByHandler(handler: (event: Event) => void): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.handler === handler) {\n return listener;\n }\n });\n }\n}\n","/**\n * @module ModificationsObserver\n *\n * Handles any mutations\n * and gives opportunity to handle outside\n */\n\nimport Module from '../__module';\nimport _ from '../utils';\n\nexport default class ModificationsObserver extends Module {\n\n /**\n * Debounce Timer\n * @type {number}\n */\n public static readonly DebounceTimer = 450;\n\n /**\n * Used to prevent several mutation callback execution\n * @type {Function}\n */\n private mutationDebouncer = _.debounce( () => {\n this.config.onChange();\n }, ModificationsObserver.DebounceTimer);\n\n /**\n * Clear timeout and set null to mutationDebouncer property\n */\n public destroy() {\n this.mutationDebouncer = null;\n }\n\n /**\n * Preparation method\n * @return {Promise}\n */\n public async prepare(): Promise {\n /**\n * wait till Browser render Editor's Blocks\n */\n window.setTimeout( () => {\n this.setObserver();\n }, 1000);\n }\n\n /**\n * setObserver\n *\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\n * so that User can handle outside from API\n */\n private setObserver(): void {\n const {Listeners, UI} = this.Editor;\n\n /**\n * Set Listener to the Editor
    element that holds only Blocks\n */\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\n this.mutationDebouncer();\n }, false);\n }\n}\n","import Module from '../__module';\n\n/**\n * Use external package module for notifications\n *\n * @see https://github.com/codex-team/js-notifier\n */\nimport notifier, {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\n/**\n * Notifier module\n */\nexport default class Notifier extends Module {\n\n /**\n * Show web notification\n *\n * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} options\n */\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n notifier.show(options);\n }\n}\n","import CaretClass from './caret';\nimport SelectionUtils from '../selection';\n\nimport Module from '../__module';\nimport $ from '../dom';\nimport _ from '../utils';\nimport {BlockToolData, PasteConfig} from '../../../types';\n\n/**\n * Tag substitute object.\n */\ninterface TagSubstitute {\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n\n /**\n * Callback to handle pasted element\n *\n * @param {HTMLElement} element\n * @return {BlockToolData}\n */\n handler: (element: HTMLElement) => BlockToolData;\n}\n\n/**\n * Pattern substitute object.\n */\ninterface PatternSubstitute {\n /**\n * Pattern`s key\n * @type {string}\n */\n key: string;\n\n /**\n * Pattern regexp\n * @type {RegExp}\n */\n pattern: RegExp;\n\n /**\n * Callback to handle pasted pattern\n *\n * @param {string} text\n * @param {string} key\n * @return {BlockToolData}\n */\n handler: (text: string, key: string) => BlockToolData;\n\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n}\n\n/**\n * Files` types substitutions object.\n */\ninterface FilesSubstitution {\n /**\n * Array of file extensions Tool can handle\n * @type {string[]}\n */\n extensions: string[];\n\n /**\n * Array of MIME types Tool can handle\n * @type {string[]}\n */\n mimeTypes: string[];\n\n /**\n * Callback to handle pasted File\n *\n * @param {File} file\n * @return {BlockToolData}\n */\n handler: (file: File) => BlockToolData;\n}\n\n/**\n * Processed paste data object.\n */\ninterface PasteData {\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n\n /**\n * Pasted data. Processed and wrapped to HTML element\n * @type {HTMLElement}\n */\n content: HTMLElement;\n\n /**\n * True if content should be inserted as new Block\n * @type {boolean}\n */\n isBlock: boolean;\n\n /**\n * Callback that returns pasted data in BlockToolData format\n *\n * @param {HTMLElement | string} content\n * @param {RegExp} patten\n * @return {BlockToolData}\n */\n handler: (content: HTMLElement|string, patten?: RegExp) => BlockToolData;\n}\n\n/**\n * @class Paste\n * @classdesc Contains methods to handle paste on editor\n *\n * @module Paste\n *\n * @version 2.0.0\n */\nexport default class Paste extends Module {\n\n /** If string`s length is greater than this number we don't check paste patterns */\n public static readonly PATTERN_PROCESSING_MAX_LENGTH = 450;\n\n /**\n * Tags` substitutions parameters\n */\n private toolsTags: {[tag: string]: TagSubstitute} = {};\n\n /**\n * Store tags to substitute by tool name\n */\n private tagsByTool: {[tools: string]: string[]} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: PatternSubstitute[] = [];\n\n /** Files` substitutions parameters */\n private toolsFiles: {\n [tool: string]: FilesSubstitution,\n } = {};\n\n /**\n * Set onPaste callback and collect tools` paste configurations\n *\n * @public\n */\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\n }\n\n /**\n * Handle pasted or dropped data transfer object\n *\n * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object\n * @param {boolean} isDragNDrop\n */\n public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise {\n const { Sanitizer } = this.Editor;\n\n if (dataTransfer.types.includes('Files')) {\n await this.processFiles(dataTransfer.items);\n return;\n }\n\n const plainData = dataTransfer.getData('text/plain');\n let htmlData = dataTransfer.getData('text/html');\n\n /**\n * If text was drag'n'dropped, wrap content with P tag to insert it as the new Block\n */\n if (isDragNDrop && plainData.trim() && htmlData.trim()) {\n htmlData = '

    ' + ( htmlData.trim() ? htmlData : plainData ) + '

    ';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.getAllInlineToolsConfig());\n\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: PasteConfig): void {\n if (this.config.initialBlock === name && !toolPasteConfig.handler) {\n _.log(\n `«${name}» Tool must provide a paste handler.`,\n 'warn',\n );\n }\n\n if (!toolPasteConfig.handler) {\n return;\n }\n\n if (typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n\n this.tagsByTool[name] = tags.map((t) => t.toUpperCase());\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: PasteConfig): void {\n\n const {fileHandler, files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!fileHandler || (!extensions && !mimeTypes)) {\n return;\n }\n\n if (typeof fileHandler !== 'function') {\n _.log(`Drop handler for «${name}» Tool should be a function.`);\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n handler: fileHandler,\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: PasteConfig): void {\n if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n if (typeof toolPasteConfig.patternHandler !== 'function') {\n _.log(\n `Pattern parser for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n handler: toolPasteConfig.patternHandler,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element as HTMLElement);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise => {\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {DataTransferItemList} items - pasted or dropped items\n */\n private async processFiles(items: DataTransferItemList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, data: BlockToolData}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.replace(data.type, data.data);\n return;\n }\n\n BlockManager.insert(data.type, data.data);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {DataTransferItem} item\n */\n private async processFile(item: DataTransferItem) {\n if (item.kind === 'string') {\n return;\n }\n\n const file = item.getAsFile();\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool, {handler}] = foundConfig;\n return {\n data: await handler(file),\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n /**\n * If caret not at the end of of the Block and there is no selection,\n * we split the Block and insert content at the middle.\n */\n if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) {\n this.splitBlock();\n }\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {PasteData[]}\n */\n private processHTML(innerHTML: string): PasteData[] {\n const {Tools, Sanitizer} = this.Editor,\n initialTool = this.config.initialBlock,\n wrapper = $.make('DIV');\n\n wrapper.innerHTML = innerHTML;\n\n const nodes = this.getNodes(wrapper);\n\n return nodes\n .map((node) => {\n let content, tool = initialTool, isBlock = false;\n\n switch (node.nodeType) {\n /** If node is a document fragment, use temp wrapper to get innerHTML */\n case Node.DOCUMENT_FRAGMENT_NODE:\n content = $.make('div');\n content.appendChild(node);\n break;\n\n /** If node is an element, then there might be a substitution */\n case Node.ELEMENT_NODE:\n content = node as HTMLElement;\n isBlock = true;\n\n if (this.toolsTags[content.tagName]) {\n tool = this.toolsTags[content.tagName].tool;\n }\n break;\n }\n\n const {handler, tags} = Tools.blockTools[tool].onPaste;\n\n const toolTags = tags.reduce((result, tag) => {\n result[tag.toLowerCase()] = {};\n\n return result;\n }, {});\n const customConfig = Object.assign({}, toolTags, Sanitizer.getInlineToolsConfig(tool));\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {PasteData[]}\n */\n private processPlain(plain: string): PasteData[] {\n const {initialBlock} = this.config as {initialBlock: string},\n {Tools} = this.Editor;\n\n if (!plain) {\n return [];\n }\n\n const tool = initialBlock,\n handler = Tools.blockTools[tool].onPaste.handler;\n\n return plain\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n return {content, tool, isBlock: false, handler};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {PasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: PasteData): Promise {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret, Sanitizer} = this.Editor,\n {content, tool} = dataToInsert;\n\n if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) {\n const blockData = await this.processPattern(content.textContent);\n\n if (blockData) {\n this.splitBlock();\n let insertedBlock;\n\n const sanitizeConfig = Sanitizer.composeToolConfig(tool);\n\n if (!_.isEmpty(sanitizeConfig)) {\n blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);\n }\n\n if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n const currentToolSanitizeConfig = Sanitizer.getInlineToolsConfig(BlockManager.currentBlock.name);\n\n /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, Sanitizer.clean(content.innerHTML, currentToolSanitizeConfig));\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: BlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{data: BlockToolData, tool: string}> {\n const pattern = this.toolsPatterns.find((substitute) => {\n const execResult = substitute.pattern.exec(text);\n\n if (!execResult) {\n return false;\n }\n\n return text === execResult.shift();\n });\n\n const data = pattern && await pattern.handler(text, pattern.key);\n\n return data && {\n data,\n tool: pattern.tool,\n };\n }\n\n /**\n *\n * @param {PasteData} data\n * @param {Boolean} canReplaceCurrentBlock - if true and is current Block is empty, will replace current Block\n * @returns {Promise}\n */\n private async insertBlock(data: PasteData, canReplaceCurrentBlock: boolean = false): Promise {\n const blockData = await data.handler(data.content),\n {BlockManager, Caret} = this.Editor,\n {currentBlock} = BlockManager;\n\n if (canReplaceCurrentBlock && currentBlock && currentBlock.isEmpty) {\n BlockManager.replace(data.tool, blockData);\n return;\n }\n\n const block = BlockManager.insert(data.tool, blockData);\n\n Caret.setToBlock(block);\n }\n\n /**\n * Split current block if paste isn't in the end of the block\n */\n private splitBlock() {\n const {BlockManager, Caret} = this.Editor;\n\n if (!BlockManager.currentBlock) {\n return;\n }\n\n /** If we paste into middle of the current block:\n * 1. Split\n * 2. Navigate to the first part\n */\n if (!BlockManager.currentBlock.isEmpty && !Caret.isAtEnd) {\n BlockManager.split();\n BlockManager.currentBlockIndex--;\n }\n }\n\n /**\n * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n const {tool = ''} = this.toolsTags[element.tagName] || {};\n const toolTags = this.tagsByTool[tool] || [];\n\n const isSubstitutable = tags.includes(element.tagName);\n const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase());\n const containsAnotherToolTags = Array\n .from(element.children)\n .some(\n ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName),\n );\n\n const containsBlockElements = Array.from(element.children).some(\n ({tagName}) => $.blockElements.includes(tagName.toLowerCase()),\n );\n\n /** Append inline elements to previous fragment */\n if (!isBlockElement && !isSubstitutable) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (\n (isSubstitutable && !containsAnotherToolTags) ||\n (isBlockElement && !containsBlockElements && !containsAnotherToolTags )\n ) {\n return [...nodes, destNode, element];\n }\n break;\n\n /**\n * If node is text node, wrap it with DocumentFragment\n */\n case Node.TEXT_NODE:\n destNode.appendChild(node);\n return [...nodes, destNode];\n\n default:\n return [...nodes, destNode];\n }\n\n return [...nodes, ...Array.from(node.childNodes).reduce(reducer, [])];\n };\n\n return children.reduce(reducer, []);\n }\n}\n","import Module from '../__module';\nimport _, {ChainData} from '../utils';\nimport {BlockToolData} from '../../../types';\n\n/**\n * Codex Editor Renderer Module\n *\n * @module Renderer\n * @author CodeX Team\n *\n * @version 2.0.0\n */\nexport default class Renderer extends Module {\n /**\n * @typedef {Object} RendererBlocks\n * @property {String} type - tool name\n * @property {Object} data - tool data\n */\n\n /**\n * @example\n *\n * blocks: [\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Hello from Codex!'\n * }\n * },\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Leave feedback if you like it!'\n * }\n * },\n * ]\n *\n */\n\n /**\n * Make plugin blocks from array of plugin`s data\n * @param {RendererBlocks[]} blocks\n */\n public render(blocks: BlockToolData[]): Promise {\n const chainData = blocks.map((block) => ({function: () => this.insertBlock(block)}));\n\n return _.sequence(chainData as ChainData[]);\n }\n\n /**\n * Get plugin instance\n * Add plugin instance to BlockManager\n * Insert block to working zone\n *\n * @param {Object} item\n * @returns {Promise}\n * @private\n */\n public async insertBlock(item): Promise {\n const tool = item.type;\n const data = item.data;\n const settings = item.settings;\n\n if (tool in this.Editor.Tools.available) {\n try {\n this.Editor.BlockManager.insert(tool, data, settings);\n } catch (error) {\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\n throw Error(error);\n }\n } else {\n /**\n * @todo show warning notification message\n *\n * `${tool} blocks was skipped.`\n */\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\n }\n }\n}\n","/**\n * CodeX Sanitizer\n *\n * @module Sanitizer\n * Clears HTML from taint tags\n *\n * @version 2.0.0\n *\n * @example\n * Module can be used within two ways:\n * 1) When you have an instance\n * - this.Editor.Sanitizer.clean(yourTaintString);\n * 2) As static method\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\n *\n * {@link SanitizerConfig}\n */\n\nimport Module from '../__module';\nimport _ from '../utils';\n\n/**\n * @typedef {Object} SanitizerConfig\n * @property {Object} tags - define tags restrictions\n *\n * @example\n *\n * tags : {\n * p: true,\n * a: {\n * href: true,\n * rel: \"nofollow\",\n * target: \"_blank\"\n * }\n * }\n */\n\nimport HTMLJanitor from 'html-janitor';\nimport {BlockToolData, InlineToolConstructable, SanitizerConfig} from '../../../types';\n\nexport default class Sanitizer extends Module {\n /**\n * Memoize tools config\n */\n private configCache: {[toolName: string]: SanitizerConfig} = {};\n\n /**\n * Cached inline tools config\n */\n private inlineToolsConfigCache: SanitizerConfig | null = null;\n\n /**\n * Sanitize Blocks\n *\n * Enumerate blocks and clean data\n *\n * @param {{tool, data: BlockToolData}[]} blocksData[]\n */\n public sanitizeBlocks(\n blocksData: Array<{tool: string, data: BlockToolData}>,\n ): Array<{tool: string, data: BlockToolData}> {\n\n return blocksData.map((block) => {\n const toolConfig = this.composeToolConfig(block.tool);\n\n if (_.isEmpty(toolConfig)) {\n return block;\n }\n\n block.data = this.deepSanitize(block.data, toolConfig);\n\n return block;\n });\n }\n\n /**\n * Method recursively reduces Block's data and cleans with passed rules\n *\n * @param {BlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string\n * @param {SanitizerConfig} rules - object with sanitizer rules\n */\n public deepSanitize(dataToSanitize: any, rules: SanitizerConfig): any {\n /**\n * BlockData It may contain 3 types:\n * - Array\n * - Object\n * - Primitive\n */\n if (Array.isArray(dataToSanitize)) {\n /**\n * Array: call sanitize for each item\n */\n return this.cleanArray(dataToSanitize, rules);\n } else if (typeof dataToSanitize === 'object') {\n /**\n * Objects: just clean object deeper.\n */\n return this.cleanObject(dataToSanitize, rules);\n } else {\n /**\n * Primitives (number|string|boolean): clean this item\n *\n * Clean only strings\n */\n if (typeof dataToSanitize === 'string') {\n return this.cleanOneItem(dataToSanitize, rules);\n }\n return dataToSanitize;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * Method allows to use default config\n *\n * @param {string} taintString - taint string\n * @param {SanitizerConfig} customConfig - allowed tags\n *\n * @return {string} clean HTML\n */\n public clean(taintString: string, customConfig: SanitizerConfig = {} as SanitizerConfig): string {\n\n const sanitizerConfig = {\n tags: customConfig,\n };\n\n /**\n * API client can use custom config to manage sanitize process\n */\n const sanitizerInstance = this.createHTMLJanitorInstance(sanitizerConfig);\n return sanitizerInstance.clean(taintString);\n }\n\n /**\n * Merge with inline tool config\n *\n * @param {string} toolName\n * @param {SanitizerConfig} toolRules\n * @return {SanitizerConfig}\n */\n public composeToolConfig(toolName: string): SanitizerConfig {\n /**\n * If cache is empty, then compose tool config and put it to the cache object\n */\n if (this.configCache[toolName]) {\n return this.configCache[toolName];\n }\n\n const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;\n const toolClass = this.Editor.Tools.available[toolName];\n const baseConfig = this.getInlineToolsConfig(toolName);\n\n /**\n * If Tools doesn't provide sanitizer config or it is empty\n */\n if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {\n return baseConfig;\n }\n\n const toolRules = toolClass.sanitize;\n\n const toolConfig = {} as SanitizerConfig;\n for (const fieldName in toolRules) {\n if (toolRules.hasOwnProperty(fieldName)) {\n const rule = toolRules[fieldName];\n if (typeof rule === 'object') {\n toolConfig[fieldName] = Object.assign({}, baseConfig, rule);\n } else {\n toolConfig[fieldName] = rule;\n }\n }\n }\n this.configCache[toolName] = toolConfig;\n\n return toolConfig;\n }\n\n /**\n * Returns Sanitizer config\n * When Tool's \"inlineToolbar\" value is True, get all sanitizer rules from all tools,\n * otherwise get only enabled\n */\n public getInlineToolsConfig(name: string): SanitizerConfig {\n const {Tools} = this.Editor;\n\n const toolsConfig = Tools.getToolSettings(name),\n enableInlineTools = toolsConfig.inlineToolbar || [];\n\n let config = {} as SanitizerConfig;\n\n if (typeof enableInlineTools === 'boolean' && enableInlineTools) {\n /**\n * getting all tools sanitizer rule\n */\n config = this.getAllInlineToolsConfig();\n } else {\n /**\n * getting only enabled\n */\n (enableInlineTools as string[]).map( (inlineToolName) => {\n config = Object.assign(\n config,\n Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG],\n ) as SanitizerConfig;\n });\n }\n\n return config;\n }\n\n /**\n * Return general config for all inline tools\n */\n public getAllInlineToolsConfig(): SanitizerConfig {\n const {Tools} = this.Editor;\n\n if (this.inlineToolsConfigCache) {\n return this.inlineToolsConfigCache;\n }\n\n const config: SanitizerConfig = {} as SanitizerConfig;\n\n Object.entries(Tools.inline)\n .forEach( ([name, inlineTool]: [string, InlineToolConstructable]) => {\n Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]);\n });\n\n this.inlineToolsConfigCache = config;\n\n return this.inlineToolsConfigCache;\n }\n\n /**\n * Clean array\n * @param {array} array - [1, 2, {}, []]\n * @param {object} ruleForItem\n */\n private cleanArray(array: any[], ruleForItem: SanitizerConfig): any[] {\n return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem));\n }\n\n /**\n * Clean object\n * @param {object} object - {level: 0, text: 'adada', items: [1,2,3]}}\n * @param {object} rules - { b: true } or true|false\n * @return {object}\n */\n private cleanObject(object: any, rules: SanitizerConfig|{[field: string]: SanitizerConfig}): any {\n const cleanData = {};\n\n for (const fieldName in object) {\n if (!object.hasOwnProperty(fieldName)) {\n continue;\n }\n\n const currentIterationItem = object[fieldName];\n\n /**\n * Get object from config by field name\n * - if it is a HTML Janitor rule, call with this rule\n * - otherwise, call with parent's config\n */\n const ruleForItem = this.isRule(rules[fieldName] as SanitizerConfig) ? rules[fieldName] : rules;\n\n cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as SanitizerConfig);\n }\n return cleanData;\n }\n\n /**\n * @param {string} taintString\n * @param {SanitizerConfig|boolean} rule\n * @return {string}\n */\n private cleanOneItem(taintString: string, rule: SanitizerConfig|boolean): string {\n if (typeof rule === 'object') {\n return this.clean(taintString, rule);\n } else if (rule === false) {\n return this.clean(taintString, {} as SanitizerConfig);\n } else {\n return taintString;\n }\n }\n\n /**\n * Check if passed item is a HTML Janitor rule:\n * { a : true }, {}, false, true, function(){} — correct rules\n * undefined, null, 0, 1, 2 — not a rules\n * @param config\n */\n private isRule(config: SanitizerConfig): boolean {\n return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function';\n }\n\n /**\n * If developer uses editor's API, then he can customize sanitize restrictions.\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\n * At least, if there is no config overrides, that API uses Default configuration\n *\n * @uses https://www.npmjs.com/package/html-janitor\n * @licence https://github.com/guardian/html-janitor/blob/master/LICENSE\n *\n * @param {SanitizerConfig} config - sanitizer extension\n */\n private createHTMLJanitorInstance(config: {tags: SanitizerConfig}): HTMLJanitor|null {\n if (config) {\n return new HTMLJanitor(config);\n }\n return null;\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\nimport Module from '../__module';\nimport {OutputData} from '../../../types';\n\ndeclare const VERSION: string;\n\n/**\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\n *\n * @typedef {Saver} Saver\n * @property {Element} html - Editor HTML content\n * @property {String} json - Editor JSON output\n */\nexport default class Saver extends Module {\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {OutputData}\n */\n public async save(): Promise {\n const blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n const extractedData = await Promise.all(chainData);\n\n const sanitizedData = await this.Editor.Sanitizer.sanitizeBlocks(extractedData);\n return this.makeOutput(sanitizedData);\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {OutputData}\n */\n private makeOutput(allExtractedData): OutputData {\n let totalTime = 0;\n const blocks = [];\n\n console.groupCollapsed('[CodexEditor saving]:');\n\n allExtractedData.forEach((extraction) => {\n /** Group process info */\n console.log(`«${extraction.tool}» saving info`, extraction);\n totalTime += extraction.time;\n blocks.push({\n type: extraction.tool,\n data: extraction.data,\n });\n });\n\n console.log('Total', totalTime);\n console.groupEnd();\n\n return {\n time: +new Date(),\n blocks,\n version: VERSION,\n };\n }\n}\n","import Shortcut from '@codexteam/shortcuts';\n\n/**\n * ShortcutData interface\n * Each shortcut must have name and handler\n * `name` is a shortcut, like 'CMD+K', 'CMD+B' etc\n * `handler` is a callback\n */\nexport interface ShortcutData {\n\n /**\n * Shortcut name\n * Ex. CMD+I, CMD+B ....\n */\n name: string;\n\n /**\n * Shortcut handler\n */\n handler(event): void;\n}\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\nimport Module from '../__module';\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module {\n /**\n * All registered shortcuts\n * @type {Shortcut[]}\n */\n private registeredShortcuts: Shortcut[] = [];\n\n /**\n * Register shortcut\n * @param {ShortcutData} shortcut\n */\n public add(shortcut: ShortcutData): void {\n const { UI } = this.Editor;\n\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: UI.nodes.redactor,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {ShortcutData} shortcut\n */\n public remove(shortcut: string): void {\n const index = this.registeredShortcuts.findIndex((shc) => shc.name === shortcut);\n\n this.registeredShortcuts[index].remove();\n this.registeredShortcuts.splice(index, 1);\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\n/**\n * Block Settings\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n */\nexport default class BlockSettings extends Module {\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n public get events(): {opened: string, closed: string} {\n return {\n opened: 'block-settings-opened',\n closed: 'block-settings-closed',\n };\n }\n\n /**\n * Block Settings CSS\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\n */\n private static get CSS() {\n return {\n // Settings Panel\n wrapper: 'ce-settings',\n wrapperOpened: 'ce-settings--opened',\n toolSettings: 'ce-settings__plugin-zone',\n defaultSettings: 'ce-settings__default-zone',\n\n button: 'ce-settings__button',\n };\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n public get opened(): boolean {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Block settings UI HTML elements\n */\n public nodes: {[key: string]: HTMLElement} = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null,\n };\n\n /**\n * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n public make(): void {\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\n\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\n\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\n }\n\n /**\n * Open Block Settings pane\n */\n public open(): void {\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\n\n /**\n * Fill Tool's settings\n */\n this.addToolSettings();\n\n /**\n * Add default settings that presents for all Blocks\n */\n this.addDefaultSettings();\n\n /** Tell to subscribers that block settings is opened */\n this.Editor.Events.emit(this.events.opened);\n }\n\n /**\n * Close Block Settings pane\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\n\n /** Clear settings */\n this.nodes.toolSettings.innerHTML = '';\n this.nodes.defaultSettings.innerHTML = '';\n\n /** Tell to subscribers that block settings is closed */\n this.Editor.Events.emit(this.events.closed);\n }\n\n /**\n * Add Tool's settings\n */\n private addToolSettings(): void {\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\n }\n }\n\n /**\n * Add default settings\n */\n private addDefaultSettings(): void {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\n/**\n *\n * «Toolbar» is the node that moves up/down over current block\n *\n * ______________________________________ Toolbar ____________________________________________\n * | |\n * | ..................... Content .................... ......... Block Actions .......... |\n * | . . . . |\n * | . . . [Open Settings] . |\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\n * | . . . [Settings Panel] . |\n * | .................................................. .................................. |\n * | |\n * |___________________________________________________________________________________________|\n *\n *\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\n *\n * _______________ Toolbox _______________\n * | |\n * | [Header] [Image] [List] [Quote] ... |\n * |_______________________________________|\n *\n *\n * Settings Panel — is an Element with block settings:\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n *\n *\n * @class\n * @classdesc Toolbar module\n *\n * @typedef {Toolbar} Toolbar\n * @property {Object} nodes\n * @property {Element} nodes.wrapper - Toolbar main element\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\n * @property {Element} nodes.toolbox - Container for tools\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\n * @property {Element} nodes.settings - Settings Panel\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\n */\nexport default class Toolbar extends Module {\n /**\n * HTML Elements used for Toolbar UI\n */\n public nodes: {[key: string]: HTMLElement} = {\n wrapper : null,\n content : null,\n actions : null,\n\n // Content Zone\n plusButton : null,\n\n // Actions Zone\n blockActionsButtons: null,\n settingsToggler : null,\n };\n\n /**\n * CSS styles\n * @return {Object}\n */\n private static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\n actionsOpened: 'ce-toolbar__actions--opened',\n\n toolbarOpened: 'ce-toolbar--opened',\n\n // Content Zone\n plusButton: 'ce-toolbar__plus',\n plusButtonHidden: 'ce-toolbar__plus--hidden',\n\n // Actions Zone\n blockActionsButtons: 'ce-toolbar__actions-buttons',\n settingsToggler: 'ce-toolbar__settings-btn',\n };\n }\n\n /**\n * Makes toolbar\n */\n public make(): void {\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\n\n /**\n * Make Content Zone and Actions Zone\n */\n ['content', 'actions'].forEach( (el) => {\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\n $.append(this.nodes.wrapper, this.nodes[el]);\n });\n\n /**\n * Fill Content Zone:\n * - Plus Button\n * - Toolbox\n */\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\n $.append(this.nodes.content, this.nodes.plusButton);\n this.Editor.Listeners.on(this.nodes.plusButton, 'click', () => this.plusButtonClicked(), false);\n\n /**\n * Make a Toolbox\n */\n this.Editor.Toolbox.make();\n\n /**\n * Fill Actions Zone:\n * - Settings Toggler\n * - Remove Block Button\n * - Settings Panel\n */\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\n const settingsIcon = $.svg('dots', 18, 4);\n\n $.append(this.nodes.settingsToggler, settingsIcon);\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\n\n /**\n * Make and append Settings Panel\n */\n this.Editor.BlockSettings.make();\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\n\n /**\n * Append toolbar to the Editor\n */\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Bind events on the Toolbar elements\n */\n this.bindEvents();\n }\n\n /**\n * Move Toolbar to the Current Block\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\n */\n public move(forceClose: boolean = true): void {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n const currentBlock = this.Editor.BlockManager.currentBlock.holder;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * Set Toolbar Min Height as Block's height\n * Plus Button and Toolbox positioned at the center of the Toolbar\n */\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\n\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n /**\n * Move Toolbar to the Top coordinate of Block\n */\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button and Actions\n * @param {boolean} withBlockActions - by default, Toolbar opens with Block Actions.\n * This flag allows to open Toolbar without Actions.\n * @param {boolean} needToCloseToolbox - by default, Toolbar will be moved with opening\n * (by click on Block, or by enter)\n * with closing Toolbox and Block Settings\n * This flag allows to open Toolbar with Toolbox\n */\n public open(withBlockActions: boolean = true, needToCloseToolbox: boolean = true): void {\n setTimeout(() => {\n this.move(needToCloseToolbox);\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n\n if (withBlockActions) {\n this.blockActions.show();\n } else {\n this.blockActions.hide();\n }\n }, 50);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n public get opened(): boolean {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\n this.blockActions.hide();\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n /**\n * Plus Button public methods\n * @return {{hide: function(): void, show: function(): void}}\n */\n public get plusButton(): {hide: () => void, show: () => void} {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => {\n if (this.Editor.Toolbox.isEmpty) {\n return;\n }\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\n },\n };\n }\n\n /**\n * Block actions appearance manipulations\n * @return {{hide: function(): void, show: function(): void}}\n */\n private get blockActions(): {hide: () => void, show: () => void} {\n return {\n hide: () => {\n this.nodes.actions.classList.remove(Toolbar.CSS.actionsOpened);\n },\n show : () => {\n this.nodes.actions.classList.add(Toolbar.CSS.actionsOpened);\n },\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n private plusButtonClicked(): void {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n private bindEvents(): void {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', () => this.settingsTogglerClicked());\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n private settingsTogglerClicked(): void {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\nimport BoldInlineTool from '../../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../../inline-tools/inline-tool-link';\nimport SelectionUtils from '../../selection';\nimport _ from '../../utils';\nimport {InlineTool, InlineToolConstructable, ToolConstructable, ToolSettings} from '../../../../types';\n\n/**\n * Inline toolbar with actions that modifies selected text fragment\n *\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\n * | B i [link] [mark] |\n * |________________________|\n */\nexport default class InlineToolbar extends Module {\n\n /**\n * Returns internal inline tools\n * Includes Bold, Italic, Link\n */\n private get internalTools(): {[name: string]: InlineTool} {\n return {\n bold: this.Editor.Tools.constructInline(BoldInlineTool),\n italic: this.Editor.Tools.constructInline(ItalicInlineTool),\n link: this.Editor.Tools.constructInline(LinkInlineTool),\n };\n }\n\n /**\n * Get external tools\n * Tools that has isInline is true\n */\n private get externalTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n\n /**\n * CSS styles\n */\n public CSS = {\n inlineToolbar: 'ce-inline-toolbar',\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\n buttonsWrapper: 'ce-inline-toolbar__buttons',\n actionsWrapper: 'ce-inline-toolbar__actions',\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonLast: 'ce-inline-tool--last',\n };\n\n /**\n * Inline Toolbar elements\n */\n private nodes: {wrapper: HTMLElement, buttons: HTMLElement, actions: HTMLElement} = {\n wrapper: null,\n buttons: null,\n /**\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\n * For example, input for the 'link' tool or textarea for the 'comment' tool\n */\n actions: null,\n };\n\n /**\n * Margin above/below the Toolbar\n */\n private readonly toolbarVerticalMargin: number = 20;\n\n /**\n * Tools instances\n */\n private toolsInstances: Map;\n\n /**\n * Inline Toolbar Tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = this.inlineTools;\n\n this.toolsInstances = new Map();\n for (const tool in allTools) {\n if (allTools.hasOwnProperty(tool)) {\n this.toolsInstances.set(tool, allTools[tool]);\n }\n }\n }\n\n return this.toolsInstances;\n }\n\n /**\n * Making DOM\n */\n public make() {\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\n\n /**\n * Append Inline Toolbar to the Editor\n */\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Append Inline Toolbar Tools\n */\n this.addTools();\n\n }\n\n /**\n * Moving / appearance\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Shows Inline Toolbar by keyup/mouseup\n * @param {KeyboardEvent|MouseEvent} event\n */\n public handleShowingEvent(event): void {\n if (!this.allowedToShow(event)) {\n this.close();\n return;\n }\n\n this.move();\n this.open();\n\n /** Check Tools state for selected fragment */\n this.checkToolsState();\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Move Toolbar to the selected text\n */\n public move(): void {\n const selectionRect = SelectionUtils.rect as DOMRect;\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\n const newCoords = {\n x: selectionRect.x - wrapperOffset.left,\n y: selectionRect.y\n + selectionRect.height\n // + window.scrollY\n - wrapperOffset.top\n + this.toolbarVerticalMargin,\n };\n\n /**\n * If we know selections width, place InlineToolbar to center\n */\n if (selectionRect.width) {\n newCoords.x += Math.floor(selectionRect.width / 2);\n }\n\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\n }\n\n /**\n * Hides Inline Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Shows Inline Toolbar\n */\n private open(): void {\n /**\n * Filter inline-tools and show only allowed by Block's Tool\n */\n this.filterTools();\n\n /**\n * Show Inline Toolbar\n */\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\n\n /**\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\n */\n this.tools.forEach( (toolInstance: InlineTool) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Need to show Inline Toolbar or not\n * @param {KeyboardEvent|MouseEvent} event\n */\n private allowedToShow(event): boolean {\n /**\n * Tags conflicts with window.selection function.\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\n */\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\n\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\n return false;\n }\n\n const currentSelection = SelectionUtils.get(),\n selectedText = SelectionUtils.text;\n\n // old browsers\n if (!currentSelection || !currentSelection.anchorNode) {\n return false;\n }\n\n // empty selection\n if (currentSelection.isCollapsed || selectedText.length < 1) {\n return false;\n }\n\n // is enabled by current Block's Tool\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n if (!currentBlock) {\n return false;\n }\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n }\n\n /**\n * Show only allowed Tools\n */\n private filterTools(): void {\n const currentSelection = SelectionUtils.get(),\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n\n /**\n * All Inline Toolbar buttons\n * @type {HTMLElement[]}\n */\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\n\n /**\n * Show previously hided\n */\n buttons.forEach((button) => {\n button.hidden = false;\n button.classList.remove(this.CSS.inlineToolButtonLast);\n });\n\n /**\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\n */\n if (Array.isArray(inlineToolbarSettings)) {\n buttons.forEach((button) => {\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\n });\n }\n\n /**\n * Tick for removing right-margin from last visible button.\n * Current generation of CSS does not allow to filter :visible elements\n */\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\n\n if (lastVisibleButton) {\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\n }\n }\n\n /**\n * Working with Tools\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Fill Inline Toolbar with Tools\n */\n private addTools(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n this.addTool(toolName, toolInstance);\n });\n }\n\n /**\n * Add tool button and activate clicks\n */\n private addTool(toolName: string, tool: InlineTool): void {\n const {\n Listeners,\n Tools,\n } = this.Editor;\n\n const button = tool.render();\n\n if (!button) {\n _.log('Render method must return an instance of Node', 'warn', toolName);\n return;\n }\n\n button.dataset.tool = toolName;\n this.nodes.buttons.appendChild(button);\n\n if (typeof tool.renderActions === 'function') {\n const actions = tool.renderActions();\n this.nodes.actions.appendChild(actions);\n }\n\n Listeners.on(button, 'click', (event) => {\n this.toolClicked(tool);\n event.preventDefault();\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * Get internal inline tools\n */\n const internalTools: string[] = Object\n .entries(Tools.internalTools)\n .filter(([name, toolClass]: [string, ToolConstructable|ToolSettings]) => {\n if (_.isFunction(toolClass)) {\n return toolClass[Tools.apiSettings.IS_INLINE];\n }\n\n return (toolClass as ToolSettings).class[Tools.apiSettings.IS_INLINE];\n })\n .map(([name, toolClass]: [string, InlineToolConstructable|ToolSettings]) => name);\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (internalTools.includes(toolName)) {\n shortcut = this.inlineTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[Tools.apiSettings.SHORTCUT];\n }\n\n if (shortcut) {\n this.enableShortcuts(tool, shortcut);\n }\n }\n\n /**\n * Enable Tool shortcut with Editor Shortcuts Module\n * @param {InlineTool} tool - Tool instance\n * @param {string} shortcut - shortcut according to the ShortcutData Module format\n */\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n const {currentBlock} = this.Editor.BlockManager;\n\n /**\n * Editor is not focused\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * We allow to fire shortcut with empty selection (isCollapsed=true)\n * it can be used by tools like «Mention» that works without selection:\n * Example: by SHIFT+@ show dropdown and insert selected username\n */\n // if (SelectionUtils.isCollapsed) return;\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\n return;\n }\n\n event.preventDefault();\n this.toolClicked(tool);\n },\n });\n }\n\n /**\n * Inline Tool button clicks\n * @param {InlineTool} tool - Tool's instance\n */\n private toolClicked(tool: InlineTool): void {\n const range = SelectionUtils.range;\n\n tool.surround(range);\n this.checkToolsState();\n }\n\n /**\n * Check Tools` state by selection\n */\n private checkToolsState(): void {\n this.tools.forEach( (toolInstance) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\n\n /**\n * Get inline tools tools\n * Tools that has isInline is true\n */\n private get inlineTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\nimport _ from '../../utils';\nimport {BlockToolConstructable} from '../../../../types';\n\n/**\n * @class Toolbox\n * @classdesc Holder for Tools\n *\n * @typedef {Toolbox} Toolbox\n * @property {Boolean} opened - opening state\n * @property {Object} nodes - Toolbox nodes\n * @property {Object} CSS - CSS class names\n *\n */\nexport default class Toolbox extends Module {\n\n private static LEAF_DIRECTIONS = {\n RIGHT: 'right',\n LEFT: 'left',\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n public opened: boolean = false;\n\n /**\n * HTMLElements used for Toolbox UI\n */\n public nodes: {\n toolbox: HTMLElement,\n buttons: HTMLElement[],\n } = {\n toolbox: null,\n buttons: [],\n };\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n private activeButtonIndex: number = -1;\n\n /**\n * How many tools displayed in Toolbox\n * @type {number}\n */\n private displayedToolsCount: number = 0;\n\n /**\n * CSS styles\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\n */\n static get CSS() {\n return {\n toolbox: 'ce-toolbox',\n toolboxButton: 'ce-toolbox__button',\n toolboxButtonActive : 'ce-toolbox__button--active',\n toolboxOpened: 'ce-toolbox--opened',\n };\n }\n\n /**\n * Makes the Toolbox\n */\n public make(): void {\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\n\n this.addTools();\n }\n\n /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n public toolButtonActivate(event: MouseEvent|KeyboardEvent, toolName: string): void {\n const tool = this.Editor.Tools.toolsClasses[toolName] as BlockToolConstructable;\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n public open(): void {\n if (this.isEmpty) {\n return;\n }\n\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n public close(): void {\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\n this.opened = false;\n\n /** remove active item pointer */\n this.activeButtonIndex = -1;\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\n\n if (activeButton) {\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n }\n\n /**\n * Close Toolbox\n */\n public toggle(): void {\n if (!this.opened) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * Leaf\n * flip through the toolbox items\n * @param {String} direction - leaf direction, right is default\n */\n public leaf(direction: string = Toolbox.LEAF_DIRECTIONS.RIGHT): void {\n const childNodes = this.nodes.toolbox.childNodes;\n\n /**\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\n */\n if (this.activeButtonIndex === -1) {\n /**\n * Normalize \"previous\" Tool index depending on direction.\n * We need to do this to highlight \"first\" Tool correctly\n *\n * Order of Tools: [0] [1] ... [n - 1]\n * [0 = n] because of: n % n = 0 % n\n *\n * Direction 'right': for [0] the [n - 1] is a previous index\n * [n - 1] -> [0]\n *\n * Direction 'left': for [n - 1] the [0] is a previous index\n * [n - 1] <- [0]\n *\n * @type {number}\n */\n this.activeButtonIndex = direction === Toolbox.LEAF_DIRECTIONS.RIGHT ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n (childNodes[this.activeButtonIndex] as HTMLElement).classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === Toolbox.LEAF_DIRECTIONS.RIGHT) {\n /**\n * If we go right then choose next (+1) Tool\n * @type {number}\n */\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\n } else {\n /**\n * If we go left then choose previous (-1) Tool\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\n * @type {number}\n */\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\n }\n\n /**\n * Highlight new chosen Tool\n */\n (childNodes[this.activeButtonIndex] as HTMLElement).classList.add(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * get tool name when it is selected\n * In case when nothing selection returns null\n *\n * @return {String|null}\n */\n public get getActiveTool(): string {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return (childNodes[this.activeButtonIndex] as HTMLElement).title;\n }\n\n /**\n * Returns True if Toolbox is Empty and nothing to show\n * @return {boolean}\n */\n public get isEmpty(): boolean {\n return this.displayedToolsCount === 0;\n }\n\n /**\n * Iterates available tools and appends them to the Toolbox\n */\n private addTools(): void {\n const tools = this.Editor.Tools.available;\n\n for (const toolName in tools) {\n if (tools.hasOwnProperty(toolName)) {\n this.addTool(toolName, tools[toolName] as BlockToolConstructable);\n }\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {BlockToolConstructable} tool - tool class\n */\n private addTool(toolName: string, tool: BlockToolConstructable): void {\n const api = this.Editor.Tools.apiSettings;\n\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\n return;\n }\n\n /**\n * @todo Add checkup for the render method\n */\n // if (typeof tool.render !== 'function') {\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\n // return;\n // }\n\n /**\n * Skip tools that pass 'displayInToolbox=false'\n */\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\n return;\n }\n\n const button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\n title: toolName,\n });\n\n button.innerHTML = tool.toolboxIcon;\n\n $.append(this.nodes.toolbox, button);\n\n this.nodes.toolbox.appendChild(button);\n this.nodes.buttons.push(button);\n\n /**\n * Add click listener\n */\n this.Editor.Listeners.on(button, 'click', (event: KeyboardEvent|MouseEvent) => {\n this.toolButtonActivate(event, toolName);\n });\n\n /**\n * Enable shortcut\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\n }\n\n /** Increment Tools count */\n this.displayedToolsCount++;\n }\n\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {BlockToolConstructable} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the ShortcutData Module format\n */\n private enableShortcut(tool: BlockToolConstructable, toolName: string, shortcut: string) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event: KeyboardEvent) => {\n event.preventDefault();\n this.insertNewBlock(tool, toolName);\n },\n });\n }\n\n /**\n * Inserts new block\n * Can be called when button clicked on Toolbox or by ShortcutData\n *\n * @param {BlockToolConstructable} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n private insertNewBlock(tool: BlockToolConstructable, toolName: string) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n let newBlock;\n\n if (currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\n\n /**\n * Apply callback before inserting html\n */\n newBlock.call('appendCallback', {});\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * close toolbar when node is changed\n */\n this.Editor.Toolbar.close();\n }\n}\n","import Paragraph from '../tools/paragraph/dist/bundle';\nimport Module from '../__module';\nimport _ from '../utils';\nimport {BlockToolConstructable, ToolConfig, ToolConstructable, ToolSettings} from '../../../types';\nimport BoldInlineTool from '../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\n\n/**\n * @module Codex Editor Tools Submodule\n *\n * Creates Instances from Plugins and binds external config to the instances\n */\n\n/**\n * Class properties:\n *\n * @typedef {Tools} Tools\n * @property {Tools[]} toolsAvailable - available Tools\n * @property {Tools[]} toolsUnavailable - unavailable Tools\n * @property {object} toolsClasses - all classes\n * @property {object} toolsSettings - Tools settings\n * @property {EditorConfig} config - Editor config\n */\nexport default class Tools extends Module {\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n public get available(): {[name: string]: ToolConstructable} {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n public get unavailable(): {[name: string]: ToolConstructable} {\n return this.toolsUnavailable;\n }\n\n /**\n * Return Tools for the Inline Toolbar\n * @return {Object} - object of Inline Tool's classes\n */\n public get inline(): {[name: string]: ToolConstructable} {\n if (this._inlineTools) {\n return this._inlineTools;\n }\n\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (!tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n /**\n * Some Tools validation\n */\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\n const notImplementedMethods = inlineToolRequiredMethods.filter( (method) => !this.constructInline(tool)[method]);\n\n if (notImplementedMethods.length) {\n _.log(\n `Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`,\n 'warn',\n notImplementedMethods,\n );\n return false;\n }\n\n return true;\n });\n\n /**\n * collected inline tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n /**\n * Cache prepared Tools\n */\n this._inlineTools = result;\n\n return this._inlineTools;\n }\n\n /**\n * Return editor block tools\n */\n public get blockTools(): {[name: string]: BlockToolConstructable} {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n return !tool[this.apiSettings.IS_INLINE];\n });\n\n /**\n * collected block tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n return result;\n }\n\n /**\n * Constant for available Tools Settings\n * @return {object}\n */\n public get apiSettings() {\n return {\n CONFIG: 'config',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n SANITIZE_CONFIG: 'sanitize',\n };\n }\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n public readonly toolsClasses: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes available to use\n */\n private readonly toolsAvailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes not availbale to use beacause of preparation failure\n */\n private readonly toolsUnavailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\n */\n private readonly toolsSettings: {[name: string]: ToolSettings} = {};\n\n /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n private _inlineTools: {[name: string]: ToolConstructable} = {};\n\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.toolsClasses = {};\n\n this.toolsSettings = {};\n\n /**\n * Available tools list\n * {name: Class, ...}\n * @type {Object}\n */\n this.toolsAvailable = {};\n\n /**\n * Tools that rejected a prepare method\n * {name: Class, ... }\n * @type {Object}\n */\n this.toolsUnavailable = {};\n\n this._inlineTools = null;\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n public prepare() {\n /**\n * Assign internal tools\n */\n Object.assign(this.config.tools, this.internalTools);\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n throw Error('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for (const toolName in this.config.tools) {\n /**\n * If Tool is an object not a Tool's class then\n * save class and settings separately\n */\n if (typeof this.config.tools[toolName] === 'object') {\n /**\n * Save Tool's class from 'class' field\n * @type {Tool}\n */\n this.toolsClasses[toolName] = (this.config.tools[toolName] as ToolSettings).class;\n\n /**\n * Save Tool's settings\n * @type {ToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName] as ToolSettings;\n\n /**\n * Remove Tool's class from settings\n */\n delete this.toolsSettings[toolName].class;\n } else {\n /**\n * Save Tool's class\n * @type {Tool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName] as ToolConstructable;\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {class: this.config.tools[toolName] as ToolConstructable};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n const sequenceData = this.getListOfPrepareFunctions();\n\n /**\n * if sequence data contains nothing then resolve current chain and run other module prepare\n */\n if (sequenceData.length === 0) {\n return Promise.resolve();\n }\n\n /**\n * to see how it works {@link Util#sequence}\n */\n return _.sequence(sequenceData, (data: any) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n public success(data) {\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * @param {ChainData.data} data - append tool to unavailable list\n */\n public fallback(data) {\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * Return Tool`s instance\n *\n * @param {String} tool — tool name\n * @param {BlockToolData} data — initial data\n * @return {BlockTool}\n */\n public construct(tool, data) {\n const plugin = this.toolsClasses[tool];\n\n /**\n * Configuration to be passed to the Tool's constructor\n */\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\n\n /**\n * @type {{api: API, config: ({}), data: BlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data,\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {InlineTool} tool\n * @return {InlineTool} — instance\n */\n public constructInline(tool) {\n /**\n * @type {{api: API}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n };\n\n return new tool(constructorOptions);\n }\n\n /**\n * Check if passed Tool is an instance of Initial Block Tool\n * @param {Tool} tool - Tool to check\n * @return {Boolean}\n */\n public isInitial(tool) {\n return tool instanceof this.available[this.config.initialBlock];\n }\n\n /**\n * Return Tool's config by name\n * @param {string} toolName\n * @return {ToolSettings}\n */\n public getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n\n /**\n * Binds prepare function of plugins with user or default config\n * @return {Array} list of functions that needs to be fired sequentially\n */\n private getListOfPrepareFunctions(): Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig},\n }> {\n const toolPreparationList: Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig}}\n > = [];\n\n for (const toolName in this.toolsClasses) {\n if (this.toolsClasses.hasOwnProperty(toolName)) {\n const toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function: toolClass.prepare,\n data: {\n toolName,\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG],\n },\n });\n } else {\n /**\n * If Tool hasn't a prepare method, mark it as available\n */\n this.toolsAvailable[toolName] = toolClass;\n }\n }\n }\n\n return toolPreparationList;\n }\n\n /**\n * Returns internal tools\n * Includes Bold, Italic, Link and Paragraph\n */\n get internalTools() {\n return {\n bold: BoldInlineTool,\n italic: ItalicInlineTool,\n link: LinkInlineTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true,\n },\n };\n }\n}\n","/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\n/**\n * Module UI\n *\n * @type {UI}\n */\nimport Module from '../__module';\nimport $ from '../dom';\nimport _ from '../utils';\n\nimport Selection from '../selection';\nimport {ModuleConfig} from '../../types-internal/module-config';\n\n/**\n * @class\n *\n * @classdesc Makes CodeX Editor UI:\n * \n * \n * \n * \n * \n *\n * @typedef {UI} UI\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\n * @property {Object} nodes -\n * @property {Element} nodes.holder - element where we need to append redactor\n * @property {Element} nodes.wrapper - \n * @property {Element} nodes.redactor - \n */\nexport default class UI extends Module {\n\n /**\n * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string}}\n */\n private get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * HTML Elements used for UI\n */\n public nodes: {[key: string]: HTMLElement} = {\n holder: null,\n wrapper: null,\n redactor: null,\n };\n\n /**\n * Making main interface\n */\n public async prepare(): Promise {\n await this.make();\n\n /**\n * Append SVG sprite\n */\n await this.appendSVGSprite();\n\n /**\n * Make toolbar\n */\n await this.Editor.Toolbar.make();\n\n /**\n * Make the Inline toolbar\n */\n await this.Editor.InlineToolbar.make();\n\n /**\n * Load and append CSS\n */\n await this.loadStyles();\n\n /**\n * Bind events for the UI elements\n */\n await this.bindEvents();\n }\n\n /**\n * Clean editor`s UI\n */\n public destroy(): void {\n this.nodes.holder.innerHTML = '';\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise}\n */\n private async make(): Promise {\n /**\n * Element where we need to append CodeX Editor\n * @type {Element}\n */\n this.nodes.holder = document.getElementById(this.config.holderId);\n\n if (!this.nodes.holder) {\n throw Error('Holder wasn\\'t found by ID: #' + this.config.holderId);\n }\n\n /**\n * Create and save main UI elements\n */\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\n\n this.nodes.wrapper.appendChild(this.nodes.redactor);\n this.nodes.holder.appendChild(this.nodes.wrapper);\n }\n\n /**\n * Appends CSS\n */\n private loadStyles(): void {\n /**\n * Load CSS\n */\n const styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n const tag = $.make('style', null, {\n textContent: styles.toString(),\n });\n\n /**\n * Append styles at the top of HEAD tag\n */\n $.prepend(document.head, tag);\n }\n\n /**\n * Bind events on the CodeX Editor interface\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(\n this.nodes.redactor,\n 'click',\n (event) => this.redactorClicked(event as MouseEvent),\n false,\n );\n this.Editor.Listeners.on(document, 'keydown', (event) => this.documentKeydown(event as KeyboardEvent), true );\n this.Editor.Listeners.on(document, 'click', (event) => this.documentClicked(event as MouseEvent), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n private documentKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case _.keyCodes.ENTER:\n this.enterPressed(event);\n break;\n default:\n this.defaultBehaviour(event);\n break;\n }\n }\n\n /**\n * Ignore all other document's keydown events\n * @param {KeyboardEvent} event\n */\n private defaultBehaviour(event: KeyboardEvent): void {\n const keyDownOnEditor = (event.target as HTMLElement).closest(`.${this.CSS.editorWrapper}`);\n\n /**\n * Ignore keydowns on document\n * clear pointer and close toolbar\n */\n if (!keyDownOnEditor) {\n /**\n * Remove all highlights and remove caret\n */\n this.Editor.BlockManager.dropPointer();\n\n /**\n * Close Toolbar\n */\n this.Editor.Toolbar.close();\n }\n }\n\n /**\n * Enter pressed on document\n * @param event\n */\n private enterPressed(event: KeyboardEvent): void {\n const hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\n\n /**\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\n * In our case it is document.body\n *\n * So, BlockManager points some Block and Enter press is on Body\n * We can create a new block\n */\n if (hasPointerToBlock && (event.target as HTMLElement).tagName === 'BODY') {\n /**\n * Insert initial typed Block\n */\n const newBlock = this.Editor.BlockManager.insert();\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * And highlight\n */\n this.Editor.BlockManager.highlightCurrentNode();\n\n /**\n * Move toolbar and show plus button because new Block is empty\n */\n this.Editor.Toolbar.move();\n this.Editor.Toolbar.plusButton.show();\n }\n\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n private documentClicked(event: MouseEvent): void {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const target = event.target as HTMLElement;\n const clickedOnInlineToolbarButton = target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = target.closest(`.${this.CSS.editorWrapper}`);\n\n /** Clear highlightings and pointer on BlockManager */\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\n this.Editor.BlockManager.dropPointer();\n this.Editor.Toolbar.close();\n }\n\n if (!clickedOnInlineToolbarButton) {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n if (Selection.isAtEditor) {\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on the redactor zone\n *\n * @param {MouseEvent} event\n *\n * @description\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\n * it uses for the following:\n * - add CSS modifier for the selected Block\n * - on Enter press, we make a new Block under that\n *\n * 2. Move and show the Toolbar\n *\n * 3. Set a Caret\n *\n * 4. By clicks on the Editor's bottom zone:\n * - if last Block is empty, set a Caret to this\n * - otherwise, add a new empty Block and set a Caret to that\n *\n * 5. Hide the Inline Toolbar\n *\n * @see selectClickedBlock\n *\n */\n private redactorClicked(event: MouseEvent): void {\n const clickedNode = event.target as HTMLElement;\n\n /**\n * Select clicked Block as Current\n */\n try {\n /**\n * Renew Current Block\n */\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\n\n /**\n * Highlight Current Node\n */\n this.Editor.BlockManager.highlightCurrentNode();\n } catch (e) {\n /**\n * If clicked outside first-level Blocks, set Caret to the last empty Block\n */\n this.Editor.Caret.setToTheLastBlock();\n }\n\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n /**\n * Move and open toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Hide the Plus Button\n */\n this.Editor.Toolbar.plusButton.hide();\n\n if (!this.Editor.BlockManager.currentBlock) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * Show the Plus Button if:\n * - Block is an initial-block (Text)\n * - Block is empty\n */\n const isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool);\n\n if (isInitialBlock) {\n /**\n * Check isEmpty only for paragraphs to prevent unnecessary tree-walking on Tools with many nodes (for ex. Table)\n */\n const isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n private appendSVGSprite(): void {\n const spriteHolder = $.make('div');\n\n spriteHolder.hidden = true;\n spriteHolder.style.display = 'none';\n spriteHolder.innerHTML = sprite;\n\n $.append(this.nodes.wrapper, spriteHolder);\n }\n}\n","'use strict';\n\n/**\n * Extend Element interface to include prefixed and experimental properties\n */\ninterface Element {\n matchesSelector: (selector: string) => boolean;\n mozMatchesSelector: (selector: string) => boolean;\n oMatchesSelector: (selector: string) => boolean;\n\n prepend: (nodes: Node|Node[]|any) => void;\n append: (nodes: Node|Node[]|DocumentFragment|void) => void;\n}\n\n/**\n * The Element.matches() method returns true if the element\n * would be selected by the specified selector string;\n * otherwise, returns false.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\n */\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\n let i = matches.length;\n\n while (--i >= 0 && matches.item(i) !== this) {\n }\n\n return i > -1;\n };\n}\n\n/**\n * The Element.closest() method returns the closest ancestor\n * of the current element (or the current element itself) which\n * matches the selectors given in parameter.\n * If there isn't such an ancestor, it returns null.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\n */\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n let el = this;\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (el.matches(s)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null);\n\n return null;\n };\n}\n\n/**\n * The ParentNode.prepend method inserts a set of Node objects\n * or DOMString objects before the first child of the ParentNode.\n * DOMString objects are inserted as equivalent Text nodes.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\n */\nif (!Element.prototype.prepend) {\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\n const docFrag = document.createDocumentFragment();\n\n if (!Array.isArray(nodes)) {\n nodes = [ nodes ];\n }\n\n nodes.forEach((node: Node|any) => {\n const isNode = node instanceof Node;\n\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\n });\n\n this.insertBefore(docFrag, this.firstChild);\n };\n}\n","/**\n * TextRange interface fot IE9-\n */\nimport _ from './utils';\n\ninterface TextRange {\n boundingTop: number;\n boundingLeft: number;\n boundingBottom: number;\n boundingRight: number;\n boundingHeight: number;\n boundingWidth: number;\n}\n\n/**\n * Interface for object returned by document.selection in IE9-\n */\ninterface MSSelection {\n createRange: () => TextRange;\n type: string;\n}\n\n/**\n * Extends Document interface for IE9-\n */\ninterface Document {\n selection?: MSSelection;\n}\n\n/**\n * Working with selection\n * @typedef {SelectionUtils} SelectionUtils\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n */\n static get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Returns selected anchor\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\n * @return {Node|null}\n */\n static get anchorNode(): Node|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorNode : null;\n }\n\n /**\n * Returns selection offset according to the anchor node\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\n * @return {Number|null}\n */\n static get anchorOffset(): number|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorOffset : null;\n }\n\n /**\n * Is current selection range collapsed\n * @return {boolean|null}\n */\n static get isCollapsed(): boolean|null {\n const selection = window.getSelection();\n\n return selection ? selection.isCollapsed : null;\n }\n\n /**\n * Check current selection if it is at Editor's zone\n * @return {boolean}\n */\n static get isAtEditor(): boolean {\n const selection = SelectionUtils.get();\n\n /**\n * Something selected on document\n */\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement;\n }\n\n let editorZone = null;\n if (selectedNode) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Return first range\n * @return {Range|null}\n */\n static get range(): Range {\n const selection = window.getSelection();\n\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\n }\n\n /**\n * Calculates position and size of selected text\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\n */\n static get rect(): DOMRect|ClientRect {\n let sel: Selection|MSSelection = (document as Document).selection,\n range: TextRange|Range;\n\n let rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n } as DOMRect;\n\n if (sel && sel.type !== 'Control') {\n sel = sel as MSSelection;\n range = sel.createRange() as TextRange;\n rect.x = range.boundingLeft;\n rect.y = range.boundingTop;\n rect.width = range.boundingWidth;\n rect.height = range.boundingHeight;\n\n return rect;\n }\n\n if (!window.getSelection) {\n _.log('Method window.getSelection is not supported', 'warn');\n return rect;\n }\n\n sel = window.getSelection();\n\n if (!sel.rangeCount) {\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\n return rect;\n }\n\n range = sel.getRangeAt(0).cloneRange() as Range;\n\n if (range.getBoundingClientRect) {\n rect = range.getBoundingClientRect() as DOMRect;\n }\n // Fall back to inserting a temporary element\n if (rect.x === 0 && rect.y === 0) {\n const span = document.createElement('span');\n\n if (span.getBoundingClientRect) {\n // Ensure span has dimensions and position by\n // adding a zero-width space character\n span.appendChild( document.createTextNode('\\u200b') );\n range.insertNode(span);\n rect = span.getBoundingClientRect() as DOMRect;\n\n const spanParent = span.parentNode;\n\n spanParent.removeChild(span);\n\n // Glue any broken text nodes back together\n spanParent.normalize();\n }\n }\n\n return rect;\n }\n\n /**\n * Returns selected text as String\n * @returns {string}\n */\n static get text(): string {\n return window.getSelection ? window.getSelection().toString() : '';\n }\n\n /**\n * Returns window SelectionUtils\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\n * @return {Selection}\n */\n public static get(): Selection {\n return window.getSelection();\n }\n\n public instance: Selection = null;\n public selection: Selection = null;\n\n /**\n * This property can store SelectionUtils's range for restoring later\n * @type {Range|null}\n */\n public savedSelectionRange: Range = null;\n\n /**\n * Save SelectionUtils's range\n */\n public save(): void {\n this.savedSelectionRange = SelectionUtils.range;\n }\n\n /**\n * Restore saved SelectionUtils's range\n */\n public restore(): void {\n if (!this.savedSelectionRange) {\n return;\n }\n\n const sel = window.getSelection();\n\n sel.removeAllRanges();\n sel.addRange(this.savedSelectionRange);\n }\n\n /**\n * Clears saved selection\n */\n public clearSaved(): void {\n this.savedSelectionRange = null;\n }\n\n /**\n * Looks ahead to find passed tag from current selection\n *\n * @param {String} tagName - tag to found\n * @param {String} [className] - tag's class name\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\n const selection = window.getSelection();\n let parentTag = null;\n\n /**\n * If selection is missing or no anchorNode or focusNode were found then return null\n */\n if (!selection || !selection.anchorNode || !selection.focusNode) {\n return null;\n }\n\n /**\n * Define Nodes for start and end of selection\n */\n const boundNodes = [\n /** the Node in which the selection begins */\n selection.anchorNode as HTMLElement,\n /** the Node in which the selection ends */\n selection.focusNode as HTMLElement,\n ];\n\n /**\n * For each selection parent Nodes we try to find target tag [with target class name]\n * It would be saved in parentTag variable\n */\n boundNodes.forEach((parent) => {\n /** Reset tags limit */\n let searchDepthIterable = searchDepth;\n\n while (searchDepthIterable > 0 && parent.parentNode) {\n /**\n * Check tag's name\n */\n if (parent.tagName === tagName) {\n /**\n * Save the result\n */\n parentTag = parent;\n\n /**\n * Optional additional check for class-name mismatching\n */\n if (className && parent.classList && !parent.classList.contains(className)) {\n parentTag = null;\n }\n\n /**\n * If we have found required tag with class then go out from the cycle\n */\n if (parentTag) {\n break;\n }\n }\n\n /**\n * Target tag was not found. Go up to the parent and check it\n */\n parent = parent.parentNode as HTMLElement;\n searchDepthIterable--;\n }\n });\n\n /**\n * Return found tag or null\n */\n return parentTag;\n }\n\n /**\n * Expands selection range to the passed parent node\n *\n * @param {HTMLElement} element\n */\n public expandToTag(element: HTMLElement): void {\n const selection = window.getSelection();\n\n selection.removeAllRanges();\n const range = document.createRange();\n\n range.selectNodeContents(element);\n selection.addRange(range);\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Paragraph=e():t.Paragraph=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";var r=function(){function t(t,e){for(var n=0;n=0&&u.splice(e,1)}function h(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),v(e,t.attrs),p(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function b(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var u=s++;n=a||(a=h(e)),r=m.bind(null,n,u,!1),o=m.bind(null,n,u,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",v(e,t.attrs),p(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=l(t,e);return c(n,e),function(t){for(var o=[],i=0;i any;\n}\n\n/**\n * Codex Editor Util\n */\nexport default class Util {\n /**\n * Custom logger\n *\n * @param {string} msg - message\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\n * @param {*} [args] - argument to log with a message\n * @param {string} style - additional styling to message\n */\n public static log(msg: string, type: string = 'log', args?: any, style: string = 'color: inherit'): void {\n\n if ( !('console' in window) || !window.console[ type ] ) {\n return;\n }\n\n const editorLabelText = `Editor.js ${VERSION}`;\n const editorLabelStyle = `line-height: 1em;\n color: #006FEA;\n display: inline-block;\n font-size: 11px;\n line-height: 1em;\n background-color: #fff;\n padding: 4px 9px;\n border-radius: 30px;\n border: 1px solid rgba(56, 138, 229, 0.16);\n margin: 4px 5px 4px 0;`;\n\n try {\n if (['time', 'timeEnd'].includes(type)) {\n console[type](`( ${editorLabelText} ) ${msg}`);\n } else if (args) {\n console[type](`%c${editorLabelText}%c ${msg} %o`, editorLabelStyle, style, args);\n } else {\n console[type](`%c${editorLabelText}%c ${msg}`, editorLabelStyle, style);\n }\n } catch (ignored) {}\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes() {\n return {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n DOWN: 40,\n RIGHT: 39,\n DELETE: 46,\n META: 91,\n };\n }\n\n /**\n * Fires a promise sequence asyncronically\n *\n * @param {ChainData[]} chains - list or ChainData's\n * @param {Function} success - success callback\n * @param {Function} fallback - callback that fires in case of errors\n *\n * @return {Promise}\n */\n public static async sequence(\n chains: ChainData[],\n success: (data: any) => void = () => {},\n fallback: (data: any) => void = () => {},\n ): Promise {\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n async function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise {\n try {\n await chainData.function(chainData.data);\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n } catch (e) {\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n }\n }\n\n /**\n * pluck each element from queue\n * First, send resolved Promise as previous value\n * Each plugins \"prepare\" method returns a Promise, that's why\n * reduce current element will not be able to continue while can't get\n * a resolved Promise\n */\n return await chains.reduce(async (previousValue, currentValue) => {\n await previousValue;\n return waitNextBlock(currentValue, success, fallback);\n }, Promise.resolve());\n }\n\n /**\n * Make array from array-like collection\n *\n * @param {ArrayLike} collection\n *\n * @return {Array}\n */\n public static array(collection: ArrayLike): any[] {\n return Array.prototype.slice.call(collection);\n }\n\n /**\n * Check if passed variable is a function\n * @param {*} fn\n * @return {boolean}\n */\n public static isFunction(fn: any): boolean {\n return typeof fn === 'function';\n }\n\n /**\n * Check if passed function is a class\n * @param {function} fn\n * @return {boolean}\n */\n public static isClass(fn: any): boolean {\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\n }\n\n /**\n * Checks if object is empty\n *\n * @param {Object} object\n * @return {boolean}\n */\n public static isEmpty(object: object): boolean {\n return Object.keys(object).length === 0 && object.constructor === Object;\n }\n\n /**\n * Check if passed object is a Promise\n * @param {*} object - object to check\n * @return {Boolean}\n */\n public static isPromise(object: any): boolean {\n return Promise.resolve(object) === object;\n }\n\n /**\n * Check if passed element is contenteditable\n * @param {HTMLElement} element\n * @return {boolean}\n */\n public static isContentEditable(element: HTMLElement): boolean {\n return element.contentEditable === 'true';\n }\n\n /**\n * Delays method execution\n *\n * @param {Function} method\n * @param {Number} timeout\n */\n public static delay(method: (...args: any[]) => any, timeout: number) {\n return function() {\n const context = this,\n args = arguments;\n\n window.setTimeout(() => method.apply(context, args), timeout);\n };\n }\n\n /**\n * Get file extension\n *\n * @param {File} file\n * @return string\n */\n public static getFileExtension(file: File): string {\n return file.name.split('.').pop();\n }\n\n /**\n * Check if string is MIME type\n *\n * @param {string} type\n * @return boolean\n */\n public static isValidMimeType(type: string): boolean {\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\n }\n\n /**\n * Debouncing method\n * Call method after passed time\n *\n * Note that this method returns Function and declared variable need to be called\n *\n * @param {Function} func - function that we're throttling\n * @param {Number} wait - time in milliseconds\n * @param {Boolean} immediate - call now\n * @return {Function}\n */\n public static debounce(func: () => void, wait?: number , immediate?: boolean): () => void {\n let timeout;\n\n return () => {\n const context = this,\n args = arguments;\n\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n const callNow = immediate && !timeout;\n\n window.clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n\n /**\n * Copies passed text to the clipboard\n * @param text\n */\n public static copyTextToClipboard(text) {\n const el = Dom.make('div', 'codex-editor-clipboard', {\n innerHTML: text,\n });\n\n document.body.appendChild(el);\n\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNode(el);\n\n window.getSelection().removeAllRanges();\n selection.addRange(range);\n\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n}\n","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":root {\\n /**\\n * Selection color\\n */\\n --selectionColor: #a8d6ff;\\n\\n /**\\n * Toolbar buttons\\n */\\n --bg-light: #eff2f5;\\n\\n /**\\n * All gray texts: placeholders, settings\\n */\\n --grayText: #707684;\\n\\n /**\\n * Blue icons\\n */\\n --color-active-icon: #388AE5;\\n\\n /**\\n * Gray border, loaders\\n */\\n --color-gray-border: rgba(201, 201, 204, 0.48);\\n\\n /**\\n * Block content width\\n */\\n --content-width: 650px;\\n\\n /**\\n * Toolbar buttons height and width\\n */\\n --toolbar-buttons-size: 34px;\\n\\n /**\\n * Toolbar Plus Button and Toolbox buttons height and width\\n */\\n --toolbox-buttons-size: 24px;\\n\\n /**\\n * Confirm deletion bg\\n */\\n --color-confirm: #E24A4A;\\n}\\n/**\\n* Editor wrapper\\n*/\\n.codex-editor {\\n position: relative;\\n box-sizing: border-box;\\n}\\n.codex-editor .hide {\\n display: none;\\n }\\n.codex-editor__redactor {\\n padding-bottom: 300px;\\n }\\n.codex-editor-copyable {\\n position: absolute;\\n height: 1px;\\n width: 1px;\\n top: -400%;\\n opacity: 0.001;\\n }\\n.codex-editor svg {\\n fill: currentColor;\\n vertical-align: middle;\\n max-height: 100%;\\n }\\n/**\\n * Set color for native selection\\n */\\n::selection{\\n background-color: #a8d6ff;\\n background-color: var(--selectionColor);\\n}\\n/**\\n * Add placeholder to content editable elements with data attribute\\n * data-placeholder=\\\"Hello world!\\\"\\n */\\n[contentEditable=true][data-placeholder]:empty::before{\\n content: attr(data-placeholder);\\n color: #707684;\\n color: var(--grayText);\\n font-weight: normal;\\n}\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\n opacity: 0.3;\\n}\\n.ce-toolbar {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 0;\\n /*opacity: 0;*/\\n /*visibility: hidden;*/\\n transition: opacity 100ms ease;\\n will-change: opacity, transform;\\n display: none;\\n}\\n.ce-toolbar--opened {\\n display: block;\\n /*opacity: 1;*/\\n /*visibility: visible;*/\\n }\\n.ce-toolbar__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n position: relative;\\n }\\n.ce-toolbar__plus {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center\\n }\\n.ce-toolbar__plus:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbar__plus {\\n\\n position: absolute;\\n left: calc(calc(24px + 10px) * -1);\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\n }\\n.ce-toolbar__plus:hover,\\n .ce-toolbar__plus--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbar__plus--active{\\n animation: bounceIn 0.75s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-toolbar__plus--hidden {\\n display: none;\\n }\\n.ce-toolbar__plus,\\n .ce-toolbar .ce-toolbox {\\n top: 50%;\\n transform: translateY(-50%);\\n }\\n/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 10px;\\n padding-right: 16px;\\n opacity: 0;\\n }\\n.ce-toolbar__actions--opened {\\n opacity: 1;\\n }\\n.ce-toolbar__actions-buttons {\\n text-align: right;\\n }\\n.ce-toolbar__settings-btn {\\n display: inline-block;\\n width: 24px;\\n height: 24px;\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n }\\n.ce-toolbox {\\n position: absolute;\\n visibility: hidden;\\n transition: opacity 100ms ease;\\n will-change: opacity;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n}\\n.ce-toolbox--opened {\\n opacity: 1;\\n visibility: visible;\\n }\\n.ce-toolbox__button {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n.ce-toolbox__button:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbox__button:hover,\\n .ce-toolbox__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbox__button--active{\\n animation: bounceIn 0.75s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-inline-toolbar {\\n position: absolute;\\n background-color: #FFFFFF;\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-inline-toolbar::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-inline-toolbar {\\n padding: 6px;\\n transform: translateX(-50%);\\n display: none;\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n}\\n.ce-inline-toolbar--showed {\\n display: block;\\n }\\n.ce-inline-toolbar [hidden] {\\n display: none !important;\\n }\\n.ce-inline-tool {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.ce-inline-tool:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-inline-tool:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-inline-tool {\\n line-height: normal;\\n}\\n.ce-inline-tool > svg,\\n .ce-inline-tool .icon {\\n margin: auto;\\n }\\n.ce-inline-tool--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-inline-tool--last {\\n margin-right: 0 !important;\\n }\\n.ce-inline-tool--link .icon {\\n margin-top: -2px;\\n }\\n.ce-inline-tool--link .icon--unlink {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--link {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--unlink {\\n display: inline-block;\\n }\\n.ce-inline-tool-input {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n outline: none;\\n border: 0;\\n border-radius: 3px;\\n margin: 6px 0 0;\\n font-size: 13px;\\n padding: 8px;\\n width: 100%;\\n box-sizing: border-box;\\n display: none\\n }\\n.ce-inline-tool-input:-ms-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input--showed {\\n display: block;\\n }\\n.ce-settings {\\n position: absolute;\\n background-color: #FFFFFF;\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-settings::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-settings {\\n right: 5px;\\n top: 35px;\\n min-width: 124px\\n}\\n.ce-settings::before{\\n left: auto;\\n right: 12px;\\n }\\n.ce-settings {\\n\\n display: none;\\n}\\n.ce-settings--opened {\\n display: block;\\n animation-duration: 0.5s;\\n animation-name: bounceIn;\\n }\\n.ce-settings__plugin-zone:not(:empty){\\n padding: 6px 6px 0;\\n }\\n.ce-settings__default-zone:not(:empty){\\n padding: 6px;\\n }\\n.ce-settings__button {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n }\\n.ce-settings__button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-settings__button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-settings__button {\\n line-height: 32px;\\n }\\n.ce-settings__button > svg,\\n .ce-settings__button .icon {\\n margin: auto;\\n }\\n.ce-settings__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--disabled {\\n cursor: not-allowed !important;\\n opacity: .3;\\n }\\n.ce-settings__button--selected {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--delete {\\n transition: background-color 300ms ease;\\n will-change: background-color;\\n }\\n.ce-settings__button--delete .icon {\\n transition: transform 200ms ease-out;\\n will-change: transform;\\n }\\n.ce-settings__button--confirm {\\n background-color: #E24A4A;\\n background-color: var(--color-confirm);\\n color: #fff\\n }\\n.ce-settings__button--confirm:hover {\\n background-color: rgb(213, 74, 74) !important;\\n background-color: rgb(213, 74, 74) !important;\\n }\\n.ce-settings__button--confirm .icon {\\n transform: rotate(90deg);\\n }\\n.ce-block:first-of-type {\\n margin-top: 0;\\n }\\n.ce-block--focused {\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\n border-radius: 3px;\\n }\\n.ce-block--selected .ce-block__content {\\n background: #a8d6ff;\\n background: var(--selectionColor);\\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\n animation: selectionBounce 0.2s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-block--selected .ce-block__content img {\\n opacity: 0.55;\\n }\\n.ce-block--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n position: relative;\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n }\\n.ce-block--drop-target .ce-block__content:before {\\n content: '';\\n position: absolute;\\n top: 100%;\\n left: -20px;\\n margin-top: -1px;\\n height: 8px;\\n width: 8px;\\n border: solid #388AE5;\\n border: solid var(--color-active-icon);\\n border-width: 1px 1px 0 0;\\n transform-origin: right;\\n transform: rotate(45deg);\\n }\\n.ce-block--drop-target .ce-block__content:after {\\n content: '';\\n position: absolute;\\n top: 100%;\\n height: 1px;\\n width: 100%;\\n color: #388AE5;\\n color: var(--color-active-icon);\\n background: repeating-linear-gradient(\\n 90deg,\\n #388AE5,\\n #388AE5 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n background: repeating-linear-gradient(\\n 90deg,\\n var(--color-active-icon),\\n var(--color-active-icon) 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n }\\n.wobble {\\n animation-name: wobble;\\n animation-duration: 400ms;\\n}\\n/**\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\n */\\n@keyframes wobble {\\n from {\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@keyframes selectionBounce {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 50% {\\n transform: scale3d(1.01, 1.01, 1.01);\\n }\\n\\n 70% {\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n/**\\n * Block Tool wrapper\\n */\\n.cdx-block {\\n padding: 0.7em 0;\\n}\\n/**\\n * Input\\n */\\n.cdx-input {\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n border-radius: 3px;\\n padding: 10px 12px;\\n outline: none;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n/**\\n * Settings\\n */\\n.cdx-settings-button {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.cdx-settings-button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.cdx-settings-button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.cdx-settings-button > svg,\\n .cdx-settings-button .icon {\\n margin: auto;\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n/**\\n * Loader\\n */\\n.cdx-loader {\\n position: relative;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border)\\n}\\n.cdx-loader::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 18px;\\n height: 18px;\\n margin: -11px 0 0 -11px;\\n border: 2px solid rgba(201, 201, 204, 0.48);\\n border: 2px solid var(--color-gray-border);\\n border-left-color: #388AE5;\\n border-left-color: var(--color-active-icon);\\n border-radius: 50%;\\n animation: cdxRotation 1.2s infinite linear;\\n }\\n@keyframes cdxRotation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n/**\\n * Button\\n */\\n.cdx-button {\\n padding: 13px;\\n border-radius: 3px;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n font-size: 14.9px;\\n background: #fff;\\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n color: #707684;\\n color: var(--grayText);\\n text-align: center;\\n cursor: pointer\\n}\\n.cdx-button:hover {\\n background: #FBFCFE;\\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n }\\n.cdx-button svg {\\n height: 20px;\\n margin-right: 0.2em;\\n margin-top: -2px;\\n }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@babel/polyfill/lib/noConflict.js","webpack://CodexEditor/./node_modules/@babel/polyfill/noConflict.js","webpack://CodexEditor/./node_modules/@babel/register/lib/browser.js","webpack://CodexEditor/./node_modules/@babel/register/lib/index.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/inherits.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/@babel/runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/codex-notifier/dist/bundle.js","webpack://CodexEditor/./node_modules/core-js/es6/index.js","webpack://CodexEditor/./node_modules/core-js/fn/array/includes.js","webpack://CodexEditor/./node_modules/core-js/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/fn/object/values.js","webpack://CodexEditor/./node_modules/core-js/fn/promise/finally.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-end.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-start.js","webpack://CodexEditor/./node_modules/core-js/fn/symbol/async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-number-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-fill.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_bind.js","webpack://CodexEditor/./node_modules/core-js/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-weak.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails-is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/modules/_fix-re-wks.js","webpack://CodexEditor/./node_modules/core-js/modules/_flags.js","webpack://CodexEditor/./node_modules/core-js/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_inherit-if-required.js","webpack://CodexEditor/./node_modules/core-js/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-fround.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-sign.js","webpack://CodexEditor/./node_modules/core-js/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_strict-method.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-context.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-html.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-pad.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-trim.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-ws.js","webpack://CodexEditor/./node_modules/core-js/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed.js","webpack://CodexEditor/./node_modules/core-js/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.every.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.fill.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.filter.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find-index.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.for-each.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.join.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.last-index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.slice.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.some.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.sort.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.species.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.now.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.bind.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.has-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.name.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.acosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.asinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.atanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.clz32.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.fround.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.hypot.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.imul.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log10.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log2.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.tanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.trunc.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.epsilon.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-nan.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-precision.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-properties.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.freeze.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-frozen.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-sealed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.seal.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.has.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.flags.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.match.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.search.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.split.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.anchor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.big.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.blink.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.bold.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.code-point-at.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.ends-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontcolor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontsize.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.from-code-point.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.italics.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.link.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.raw.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.small.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.starts-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.strike.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sub.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sup.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.trim.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.data-view.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float64-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-set.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-end.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-start.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/web.dom.iterable.js","webpack://CodexEditor/./node_modules/core-js/modules/web.immediate.js","webpack://CodexEditor/./node_modules/core-js/modules/web.timers.js","webpack://CodexEditor/./node_modules/core-js/web/index.js","webpack://CodexEditor/./node_modules/css-loader/lib/css-base.js","webpack://CodexEditor/./node_modules/html-janitor/src/html-janitor.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./src/codex.ts","webpack://CodexEditor/./src/components/__module.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-delete.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-down.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-up.ts","webpack://CodexEditor/./src/components/block.ts","webpack://CodexEditor/./src/components/blocks.ts","webpack://CodexEditor/./src/components/core.ts","webpack://CodexEditor/./src/components/dom.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-bold.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-italic.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-link.ts","webpack://CodexEditor/./src/components/modules sync ^\\.\\/.*$","webpack://CodexEditor/./src/components/modules/api/blocks.ts","webpack://CodexEditor/./src/components/modules/api/caret.ts","webpack://CodexEditor/./src/components/modules/api/events.ts","webpack://CodexEditor/./src/components/modules/api/index.ts","webpack://CodexEditor/./src/components/modules/api/listeners.ts","webpack://CodexEditor/./src/components/modules/api/notifier.ts","webpack://CodexEditor/./src/components/modules/api/sanitizer.ts","webpack://CodexEditor/./src/components/modules/api/saver.ts","webpack://CodexEditor/./src/components/modules/api/selection.ts","webpack://CodexEditor/./src/components/modules/api/styles.ts","webpack://CodexEditor/./src/components/modules/api/toolbar.ts","webpack://CodexEditor/./src/components/modules/blockEvents.ts","webpack://CodexEditor/./src/components/modules/blockManager.ts","webpack://CodexEditor/./src/components/modules/blockSelection.ts","webpack://CodexEditor/./src/components/modules/caret.ts","webpack://CodexEditor/./src/components/modules/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.ts","webpack://CodexEditor/./src/components/modules/listeners.ts","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","webpack://CodexEditor/./src/components/modules/notifier.ts","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.ts","webpack://CodexEditor/./src/components/modules/sanitizer.ts","webpack://CodexEditor/./src/components/modules/saver.ts","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar/blockSettings.ts","webpack://CodexEditor/./src/components/modules/toolbar/index.ts","webpack://CodexEditor/./src/components/modules/toolbar/inline.ts","webpack://CodexEditor/./src/components/modules/toolbar/toolbox.ts","webpack://CodexEditor/./src/components/modules/tools.ts","webpack://CodexEditor/./src/components/modules/ui.ts","webpack://CodexEditor/./src/components/polyfills.ts","webpack://CodexEditor/./src/components/selection.ts","webpack://CodexEditor/./src/components/tools/paragraph/dist/bundle.js","webpack://CodexEditor/./src/components/utils.ts","webpack://CodexEditor/./src/styles/main.css"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","revert","args","register","node","assign","arr","Array","isArray","arr2","length","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","obj","iter","iterator","toString","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof2","g","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","e","global","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","result","keys","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","BACKSPACE","ENTER","ESCAPE","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","u","CMD","SHIFT","ALT","commands","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","show","message","getWrapper","document","body","appendChild","time","confirm","prompt","alert","setTimeout","remove","classList","add","hmr","transform","insertInto","locals","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","concat","join","all","atob","querySelector","HTMLIFrameElement","contentDocument","head","f","id","refs","parts","x","base","css","media","sourceMap","insertAt","nextSibling","insertBefore","firstChild","before","parentNode","removeChild","splice","b","createElement","attrs","setAttribute","singleton","h","URL","createObjectURL","revokeObjectURL","Blob","rel","convertToAbsoluteUrls","href","styleSheet","cssText","createTextNode","DEBUG","y","filter","Boolean","childNodes","location","protocol","host","pathname","replace","trim","test","style","innerHTML","cancelHandler","okHandler","okText","cancelText","placeholder","inputType","entries","getOwnPropertyDescriptors","String","padEnd","padStart","it","cof","msg","UNSCOPABLES","ArrayProto","forbiddenField","isObject","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","end","count","Math","min","inc","aLen","index","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","aFunction","memo","isRight","SPECIES","original","speciesConstructor","arraySlice","factories","partArgs","bound","construct","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","core","version","__e","$defineProperty","createDesc","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toPrimitive","hint","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","MATCH","re","exec","defined","wks","SYMBOL","fns","strfn","rxfn","RegExp","string","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","ITERATOR","iterFn","__g","documentElement","un","propertyIsEnumerable","Iterators","floor","isRegExp","ret","LIBRARY","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","isNode","last","notify","flush","parent","domain","exit","enter","nextTick","navigator","standalone","promise","toggle","observe","characterData","task","$$resolve","$$reject","$assign","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","str","$parseInt","parseInt","ws","hex","radix","newPromiseCapability","promiseCapability","bitmap","SRC","$toString","TPL","inspectSource","isFunction","check","buggy","tag","stat","shared","uid","copyright","toInteger","TO_STRING","pos","charCodeAt","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","max","number","valueOf","$typed","$buffer","propertyDesc","toIndex","classof","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","console","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","setProto","existingDescriptor","ownDesc","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","$at","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","$isView","isView","fin","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","getDesc","$values","finally","onFinally","$pad","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$task","MSIE","boundArgs","setInterval","useSourceMap","item","content","cssMapping","sourceMapping","toComment","sourceURLs","cssWithMappingToString","mediaQuery","alreadyImportedModules","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","HTMLJanitor","config","tagDefinitions","tags","validConfigValues","blockElementNames","isBlockElement","nodeName","inlineElementNames","isInlineElement","getAllowedAttrs","shouldRejectNode","allowedAttrs","shouldRejectAttr","attr","attrName","clean","sandbox","implementation","createHTMLDocument","_sanitize","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","removeAttribute","previousElementSibling","nextElementSibling","CodexEditor","configuration","_this","_classCallCheck2","onReady","editor","_core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","_dom","make","svg","listeners","handleClick","needConfirmation","events","off","blocks","stopPropagation","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","nextBlockElement","getBlockByIndex","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","scrollUpOffset","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","holder","compose","tunes","makeTunes","methodName","params","merge","save","pluginsContent","extractedBlock","measuringStart","performance","finishedExtraction","measuringEnd","_utils","isValid","tunesList","_blockTuneMoveUp","_blockTuneDelete","_blockTuneMoveDown","tune","tunesElement","createDocumentFragment","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","sanitize","emptyText","isEmpty","emptyMedia","hasMedia","focused","selected","wrapperStretched","dropTarget","Blocks","workingArea","children","block","insert","second","secondBlock","deleteCount","previousBlock","insertAdjacentElement","nextBlock","targetBlock","newBlock","contextRequire","filename","Core","onFail","_asyncToGenerator2","_regenerator","_callee","_context","holderId","tools","constructModules","configureModules","modulesToPrepare","_callee3","_context3","prepare","t0","Renderer","_this3","getModulesDiff","diff","moduleName","initialBlock","initialBlockData","sanitizer","hideToolbar","onChange","Dom","tagName","_el$classList","classNames","_toConsumableArray2","width","height","icon","createElementNS","elements","prepend","el1","el2","temp","getElementById","atLast","child","sibling","ELEMENT_NODE","nodeChild","isSingleTag","isNativeInput","getDeepestNode","DOCUMENT_FRAGMENT_NODE","isElement","textContent","leafs","isNodeEmpty","shift","isLeaf","leaf","childElementCount","BoldInlineTool","commandName","buttonActive","buttonModifier","range","execCommand","selection","isActive","queryCommandState","ItalicInlineTool","LinkInlineTool","commandLink","commandUnlink","ENTER_KEY","buttonUnlink","inputShowed","inputOpened","inlineToolbar","toolbar","_selection","enterPressed","parentAnchor","findParentTag","expandToTag","unlink","closeActions","checkState","toggleActions","anchorTag","openActions","hrefAttr","getAttribute","needFocus","focus","clearSavedSelection","clearSaved","restore","preventDefault","validateURL","prepareLink","insertLink","stopImmediatePropagation","link","addProtocol","isInternal","isAnchor","substring","isProtocolRelative","./api","./api/","./api/blocks","./api/blocks.ts","./api/caret","./api/caret.ts","./api/events","./api/events.ts","./api/index","./api/index.ts","./api/listeners","./api/listeners.ts","./api/notifier","./api/notifier.ts","./api/sanitizer","./api/sanitizer.ts","./api/saver","./api/saver.ts","./api/selection","./api/selection.ts","./api/styles","./api/styles.ts","./api/toolbar","./api/toolbar.ts","./blockEvents","./blockEvents.ts","./blockManager","./blockManager.ts","./blockSelection","./blockSelection.ts","./caret","./caret.ts","./dragNDrop","./dragNDrop.ts","./events","./events.ts","./listeners","./listeners.ts","./modificationsObserver","./modificationsObserver.ts","./notifier","./notifier.ts","./paste","./paste.ts","./renderer","./renderer.ts","./sanitizer","./sanitizer.ts","./saver","./saver.ts","./shortcuts","./shortcuts.ts","./toolbar","./toolbar/","./toolbar/blockSettings","./toolbar/blockSettings.ts","./toolbar/index","./toolbar/index.ts","./toolbar/inline","./toolbar/inline.ts","./toolbar/toolbox","./toolbar/toolbox.ts","./tools","./tools.ts","./ui","./ui.ts","webpackContext","req","webpackContextResolve","BlocksAPI","BlockManager","Toolbar","move","blockIndex","removeBlock","Caret","setToBlock","currentBlock","navigatePrevious","status","stretched","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","caret","ListenersAPI","notifier","NotifierAPI","SanitizerAPI","saver","SaverAPI","SelectionAPI","styles","StylesAPI","classes","ToolbarAPI","eventType","useCapture","options","Notifier","taintString","Sanitizer","Saver","className","_module","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","ESC","escapePressed","defaultHandler","needToolbarClosing","cmdKey","clearFocused","BlockSelection","clearSelection","InlineToolbar","handleShowingEvent","direction","Tools","isInitial","opened","plusButton","Toolbox","getBlockByChildNode","available","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","_this$Editor","allBlocksSelected","removeAllBlocks","removeCurrentBlock","isFirstBlock","canMergeBlocks","isAtStart","mergeBlocks","_this$Editor2","_caret","positions","END","_this$Editor3","blockToMerge","mergeable","createShadow","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","redactor","Proxy","_block","bindEvents","newIndex","composeBlock","pasteEvent","blockToMergeIndex","blockToMergeData","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","keydown","mouseUp","keyup","dragOver","dragLeave","isLastBlock","nextBlocks","previousBlocks","needToSelectAll","Shortcuts","handleCommandA","handleCommandC","restoreSelection","anyBlockSelected","selectAllBlocks","selectBlockByIndex","fakeClipboard","cleanHTML","sanitizerConfig","fragment","copyTextToClipboard","removeAllRanges","h1","h2","h3","h4","h5","h6","ol","ul","li","br","img","position","START","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","createRange","selectionStart","selectionEnd","setStart","setEnd","addRange","_range$getBoundingCli","bottom","_window","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","force","_this$Editor$BlockMan","nextContentfulBlock","nextInput","isAtEnd","_this$Editor$BlockMan2","previousContentfulBlock","previousInput","shadowCaret","sel","newRange","selectNode","current","siblings","contentEditable","isCollapsed","anchorNode","firstNode","firstLetterPosition","leftSiblings","getHigherLevelSiblings","nothingAtLeft","anchorOffset","lastNode","nothingAtRight","rightTrimmedText","DragNDrop","isStartedAtEditor","processDrop","dropEvent","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","alreadyExist","findOne","existingListeners","findAll","foundListeners","foundByEventTargets","findByEventTarget","mutationDebouncer","debounce","DebounceTimer","setObserver","_codexNotifier","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref2","_slicedToArray2","blockTools","onPaste","toolPasteConfig","pasteConfig","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref3","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","files","plainData","getData","htmlData","customConfig","getAllInlineToolsConfig","cleanData","isHTMLString","processText","_toolPasteConfig$file","extensions","mimeTypes","isValidMimeType","patterns","_ref4","_ref5","pattern","getBlock","items","_this4","processFile","paste","file","extension","getFileExtension","foundConfig","_ref6","_ref7","_ref7$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","composePasteEvent","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","isCurrentBlockInitial","needToReplaceCurrentBlock","_ref8","_callee6","_context6","_this5","insertBlock","_x6","_x7","_this6","initialTool","getNodes","toolTags","getInlineToolsConfig","plain","_this7","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","insertedBlock","currentToolSanitizeConfig","substitute","execResult","canReplaceCurrentBlock","_this8","reducer","destNode","DocumentFragment","isFragment","_ref9","_ref9$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref10","containsBlockElements","_ref11","detail","CustomEvent","chainData","function","sequence","configCache","inlineToolsConfigCache","blocksData","toolConfig","composeToolConfig","deepSanitize","dataToSanitize","rules","cleanArray","cleanObject","cleanOneItem","sanitizerInstance","createHTMLJanitorInstance","sanitizeGetter","SANITIZE_CONFIG","baseConfig","toolRules","fieldName","rule","toolsConfig","getToolSettings","enableInlineTools","inlineToolName","inline","inlineTool","ruleForItem","arrayItem","currentIterationItem","isRule","_htmlJanitor","extractedData","sanitizeBlocks","sanitizedData","makeOutput","allExtractedData","totalTime","groupCollapsed","extraction","groupEnd","registeredShortcuts","shortcut","newShortcut","_shortcuts","shc","BlockSettings","toolSettings","defaultSettings","wrapperOpened","addToolSettings","addDefaultSettings","closed","renderSettings","renderTunes","actions","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","forceClose","contentOffset","toolbox","offsetTop","withBlockActions","needToCloseToolbox","toolbarOpened","blockActions","settingsTogglerClicked","plusButtonHidden","actionsOpened","inlineToolbarShowed","buttonsWrapper","actionsWrapper","inlineToolButtonLast","buttons","toolbarVerticalMargin","addTools","allowedToShow","checkToolsState","selectionRect","rect","wrapperOffset","newCoords","filterTools","currentSelection","selectedText","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","IS_INLINE","inlineTools","SHORTCUT","enableShortcuts","surround","bold","constructInline","_inlineToolBold","italic","_inlineToolItalic","_inlineToolLink","toolsInstances","allTools","Map","activeButtonIndex","displayedToolsCount","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","LEAF_DIRECTIONS","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","_possibleConstructorReturn2","_getPrototypeOf2","toolsAvailable","toolsUnavailable","toolsSettings","_inlineTools","sequenceData","getListOfPrepareFunctions","success","fallback","plugin","CONFIG","constructorOptions","toolPreparationList","notImplementedMethods","IS_PASTE_DISALLOWED","paragraph","_bundle","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","keyDownOnEditor","hasPointerToBlock","highlightCurrentNode","clickedOnInlineToolbarButton","clickedInsideofEditor","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","_sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","getSelection","searchDepth","parentTag","focusNode","boundNodes","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","Util","editorLabelText","editorLabelStyle","ignored","chains","waitNextBlock","_callee2","successCallback","fallbackCallback","_context2","previousValue","currentValue","_x5","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","CTRL","SPACE"],"mappings":"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","file":"codex-editor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CodexEditor\"] = factory();\n\telse\n\t\troot[\"CodexEditor\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = \"\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\"","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");","require(\"./lib/noConflict\");\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = register;\nexports.revert = revert;\n\nfunction register() {}\n\nfunction revert() {}","exports = module.exports = function (...args) {\n return register(...args);\n};\n\nexports.__esModule = true;\n\nconst node = require(\"./node\");\n\nconst register = node.default;\nObject.assign(exports, node);","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Library for handling keyboard shortcuts\n * @copyright undefined\n * @license MIT\n * @author CodeX (https://ifmo.su)\n * @version 1.0.0\n */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){for(var n=0;n1)for(var n in u)u[n].includes(e[t])&&(this.commands[n]=!0);else this.keys[e[t]]=!0}},{key:\"execute\",value:function(e){var t=e.ctrlKey||e.metaKey,n=e.shiftKey,r=e.altKey,o={CMD:t,SHIFT:n,ALT:r},u=void 0,c=!0;for(u in this.commands)c=c&&o[u];var a=void 0,s=!0;for(a in this.keys)s=s&&e.keyCode===i[a];c&&s&&this.callback(e)}},{key:\"remove\",value:function(){this.element.removeEventListener(\"keydown\",this.executeShortcut)}}]),e}();t.default=c}])});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.notifier=e():t.notifier=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";n(1),\n/*!\n * Codex JavaScript Notification module\n * https://github.com/codex-team/js-notifier\n */\nt.exports=function(){var t=n(6),e=\"cdx-notify--bounce-in\",r=null;return{show:function(n){if(n.message){!function(){if(r)return!0;r=t.getWrapper(),document.body.appendChild(r)}();var o=null,i=n.time||8e3;switch(n.type){case\"confirm\":o=t.confirm(n);break;case\"prompt\":o=t.prompt(n);break;default:o=t.alert(n),window.setTimeout(function(){o.remove()},i)}r.appendChild(o),o.classList.add(e)}}}}()},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,'.cdx-notify--error{background:#fffbfb!important}.cdx-notify--error::before{background:#fb5d5d!important}.cdx-notify__input{max-width:130px;padding:5px 10px;background:#f7f7f7;border:0;border-radius:3px;font-size:13px;color:#656b7c;outline:0}.cdx-notify__input:-ms-input-placeholder{color:#656b7c}.cdx-notify__input::placeholder{color:#656b7c}.cdx-notify__input:focus:-ms-input-placeholder{color:rgba(101,107,124,.3)}.cdx-notify__input:focus::placeholder{color:rgba(101,107,124,.3)}.cdx-notify__button{border:none;border-radius:3px;font-size:13px;padding:5px 10px;cursor:pointer}.cdx-notify__button:last-child{margin-left:10px}.cdx-notify__button--cancel{background:#f2f5f7;box-shadow:0 2px 1px 0 rgba(16,19,29,0);color:#656b7c}.cdx-notify__button--cancel:hover{background:#eee}.cdx-notify__button--confirm{background:#34c992;box-shadow:0 1px 1px 0 rgba(18,49,35,.05);color:#fff}.cdx-notify__button--confirm:hover{background:#33b082}.cdx-notify__btns-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-top:5px}.cdx-notify__cross{position:absolute;top:5px;right:5px;width:10px;height:10px;padding:5px;opacity:.54;cursor:pointer}.cdx-notify__cross::after,.cdx-notify__cross::before{content:\\'\\';position:absolute;left:9px;top:5px;height:12px;width:2px;background:#575d67}.cdx-notify__cross::before{transform:rotate(-45deg)}.cdx-notify__cross::after{transform:rotate(45deg)}.cdx-notify__cross:hover{opacity:1}.cdx-notifies{position:fixed;z-index:2;bottom:20px;left:20px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif}.cdx-notify{position:relative;width:220px;margin-top:15px;padding:13px 16px;background:#fff;box-shadow:0 11px 17px 0 rgba(23,32,61,.13);border-radius:5px;font-size:14px;line-height:1.4em;word-wrap:break-word}.cdx-notify::before{content:\\'\\';position:absolute;display:block;top:0;left:0;width:3px;height:calc(100% - 6px);margin:3px;border-radius:5px;background:0 0}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.cdx-notify--bounce-in{animation-name:bounceIn;animation-duration:.6s;animation-iteration-count:1}.cdx-notify--success{background:#fafffe!important}.cdx-notify--success::before{background:#41ffb1!important}',\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o=0&&s.splice(e,1)}function b(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(e,t.attrs),l(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function x(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var s=c++;n=a||(a=b(e)),r=h.bind(null,n,s,!1),o=h.bind(null,n,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(e,t.attrs),l(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),c=t.href;t.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,e),o=function(){p(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){p(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=u(t,e);return d(n,e),function(t){for(var o=[],i=0;i 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('html-janitor', factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.HTMLJanitor = factory();\n }\n}(this, function () {\n\n /**\n * @param {Object} config.tags Dictionary of allowed tags.\n * @param {boolean} config.keepNestedBlockElements Default false.\n */\n function HTMLJanitor(config) {\n\n var tagDefinitions = config['tags'];\n var tags = Object.keys(tagDefinitions);\n\n var validConfigValues = tags\n .map(function(k) { return typeof tagDefinitions[k]; })\n .every(function(type) { return type === 'object' || type === 'boolean' || type === 'function'; });\n\n if(!validConfigValues) {\n throw new Error(\"The configuration was invalid\");\n }\n\n this.config = config;\n }\n\n // TODO: not exhaustive?\n var blockElementNames = ['P', 'LI', 'TD', 'TH', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'PRE'];\n function isBlockElement(node) {\n return blockElementNames.indexOf(node.nodeName) !== -1;\n }\n\n var inlineElementNames = ['A', 'B', 'STRONG', 'I', 'EM', 'SUB', 'SUP', 'U', 'STRIKE'];\n function isInlineElement(node) {\n return inlineElementNames.indexOf(node.nodeName) !== -1;\n }\n\n HTMLJanitor.prototype.clean = function (html) {\n const sandbox = document.implementation.createHTMLDocument();\n const root = sandbox.createElement(\"div\");\n root.innerHTML = html;\n\n this._sanitize(sandbox, root);\n\n return root.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (document, parentNode) {\n var treeWalker = createTreeWalker(document, parentNode);\n var node = treeWalker.firstChild();\n\n if (!node) { return; }\n\n do {\n if (node.nodeType === Node.TEXT_NODE) {\n // If this text node is just whitespace and the previous or next element\n // sibling is a block element, remove it\n // N.B.: This heuristic could change. Very specific to a bug with\n // `contenteditable` in Firefox: http://jsbin.com/EyuKase/1/edit?js,output\n // FIXME: make this an option?\n if (node.data.trim() === ''\n && ((node.previousElementSibling && isBlockElement(node.previousElementSibling))\n || (node.nextElementSibling && isBlockElement(node.nextElementSibling)))) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n } else {\n continue;\n }\n }\n\n // Remove all comments\n if (node.nodeType === Node.COMMENT_NODE) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n }\n\n var isInline = isInlineElement(node);\n var containsBlockElement;\n if (isInline) {\n containsBlockElement = Array.prototype.some.call(node.childNodes, isBlockElement);\n }\n\n // Block elements should not be nested (e.g.
  • ...); if\n // they are, we want to unwrap the inner block element.\n var isNotTopContainer = !! parentNode.parentNode;\n var isNestedBlockElement =\n isBlockElement(parentNode) &&\n isBlockElement(node) &&\n isNotTopContainer;\n\n var nodeName = node.nodeName.toLowerCase();\n\n var allowedAttrs = getAllowedAttrs(this.config, nodeName, node);\n\n var isInvalid = isInline && containsBlockElement;\n\n // Drop tag entirely according to the whitelist *and* if the markup\n // is invalid.\n if (isInvalid || shouldRejectNode(node, allowedAttrs)\n || (!this.config.keepNestedBlockElements && isNestedBlockElement)) {\n // Do not keep the inner text of SCRIPT/STYLE elements.\n if (! (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE')) {\n while (node.childNodes.length > 0) {\n parentNode.insertBefore(node.childNodes[0], node);\n }\n }\n parentNode.removeChild(node);\n\n this._sanitize(document, parentNode);\n break;\n }\n\n // Sanitize attributes\n for (var a = 0; a < node.attributes.length; a += 1) {\n var attr = node.attributes[a];\n\n if (shouldRejectAttr(attr, allowedAttrs, node)) {\n node.removeAttribute(attr.name);\n // Shift the array to continue looping.\n a = a - 1;\n }\n }\n\n // Sanitize children\n this._sanitize(document, node);\n\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(document, node) {\n return document.createTreeWalker(node,\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n null, false);\n }\n\n function getAllowedAttrs(config, nodeName, node){\n if (typeof config.tags[nodeName] === 'function') {\n return config.tags[nodeName](node);\n } else {\n return config.tags[nodeName];\n }\n }\n\n function shouldRejectNode(node, allowedAttrs){\n if (typeof allowedAttrs === 'undefined') {\n return true;\n } else if (typeof allowedAttrs === 'boolean') {\n return !allowedAttrs;\n }\n\n return false;\n }\n\n function shouldRejectAttr(attr, allowedAttrs, node){\n var attrName = attr.name.toLowerCase();\n\n if (allowedAttrs === true){\n return false;\n } else if (typeof allowedAttrs[attrName] === 'function'){\n return !allowedAttrs[attrName](attr.value, node);\n } else if (typeof allowedAttrs[attrName] === 'undefined'){\n return true;\n } else if (allowedAttrs[attrName] === false) {\n return true;\n } else if (typeof allowedAttrs[attrName] === 'string') {\n return (allowedAttrs[attrName] !== attr.value);\n }\n\n return false;\n }\n\n return HTMLJanitor;\n\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","'use strict';\n\nimport {EditorConfig} from '../types';\n\ndeclare const VERSION: string;\n\n/**\n * Apply polyfills\n */\nimport '@babel/register';\n\nimport 'components/polyfills';\nimport Core from './components/core';\n\n/**\n * Codex Editor\n *\n * Short Description (눈_눈;)\n * @version 2.0\n *\n * @author CodeX-Team \n */\nexport default class CodexEditor {\n /**\n * Promise that resolves when core modules are ready and UI is rendered on the page\n */\n public isReady: Promise;\n\n /**\n * Stores destroy method implementation.\n * Clear heap occupied by Editor and remove UI components from the DOM.\n */\n public destroy: () => void;\n\n /** Editor version */\n static get version(): string {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig|String|undefined} [configuration] - user configuration\n */\n public constructor(configuration?: EditorConfig|string) {\n /**\n * Set default onReady function\n */\n let onReady = () => {};\n\n /**\n * If `onReady` was passed in `configuration` then redefine onReady function\n */\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\n onReady = configuration.onReady;\n }\n\n /**\n * Create a CodeX Editor instance\n */\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor\n * as it can be used before other API methods are exported\n * @type {Promise}\n */\n this.isReady = editor.isReady.then(() => {\n this.exportAPI(editor);\n onReady();\n });\n }\n\n /**\n * Export external API methods\n *\n * @param editor\n */\n public exportAPI(editor: Core): void {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor.moduleInstances.ModificationsObserver.destroy();\n editor = null;\n\n for (const field in this) {\n if (this.hasOwnProperty(field)) {\n delete this[field];\n }\n }\n\n Object.setPrototypeOf(this, null);\n };\n\n fieldsToExport.forEach((field) => {\n this[field] = editor[field];\n });\n\n this.destroy = destroy;\n\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\n\n delete this.exportAPI;\n }\n}\n","import {EditorModules} from '../types-internal/editor-modules';\nimport {EditorConfig} from '../../types';\nimport {ModuleConfig} from '../types-internal/module-config';\n\n/**\n * @abstract\n * @class Module\n * @classdesc All modules inherits from this class.\n *\n * @typedef {Module} Module\n * @property {Object} config - Editor user settings\n * @property {EditorModules} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {EditorModules}\n */\n protected Editor: EditorModules;\n\n /**\n * Editor configuration object\n * @type {EditorConfig}\n */\n protected config: EditorConfig;\n\n /**\n * @constructor\n * @param {EditorConfig}\n */\n constructor({config}: ModuleConfig) {\n if (new.target === Module) {\n throw new TypeError('Constructors for abstract class Module are not allowed.');\n }\n\n this.config = config;\n }\n\n /**\n * Editor modules setter\n * @param {EditorModules} Editor\n */\n set state(Editor: EditorModules) {\n this.Editor = Editor;\n }\n}\n","/**\n * @class DeleteTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport {API, BlockTune} from '../../../types';\nimport $ from '../dom';\n\nexport default class DeleteTune implements BlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n wrapper: 'ass',\n button: 'ce-settings__button',\n buttonDelete: 'ce-settings__button--delete',\n buttonConfirm: 'ce-settings__button--confirm',\n };\n\n /**\n * Delete confirmation\n */\n private needConfirmation: boolean;\n\n /**\n * set false confirmation state\n */\n private resetConfirmation: () => void;\n\n /**\n * Tune nodes\n */\n private nodes: {button: HTMLElement} = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {{api: API}} api\n */\n constructor({api}) {\n this.api = api;\n\n this.resetConfirmation = () => {\n this.setConfirmation(false);\n };\n }\n\n /**\n * Create \"Delete\" button and add click event listener\n * @returns [Element}\n */\n public render() {\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\n this.nodes.button.appendChild($.svg('cross', 12, 12));\n this.api.listeners.on(this.nodes.button, 'click', (event: MouseEvent) => this.handleClick(event), false);\n return this.nodes.button;\n }\n\n /**\n * Delete block conditions passed\n * @param {MouseEvent} event\n */\n public handleClick(event: MouseEvent): void {\n\n /**\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\n * otherwise delete block\n */\n if (!this.needConfirmation) {\n this.setConfirmation(true);\n\n /**\n * Subscribe on event.\n * When toolbar block settings is closed but block deletion is not confirmed,\n * then reset confirmation state\n */\n this.api.events.on('block-settings-closed', this.resetConfirmation);\n\n } else {\n\n /**\n * Unsubscribe from block-settings closing event\n */\n this.api.events.off('block-settings-closed', this.resetConfirmation);\n\n this.api.blocks.delete();\n\n /**\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\n */\n event.stopPropagation();\n }\n }\n\n /**\n * change tune state\n */\n private setConfirmation(state): void {\n this.needConfirmation = state;\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\n }\n\n}\n","/**\n * @class MoveDownTune\n * @classdesc Editor's default tune - Moves down highlighted block\n *\n * @copyright 2018\n */\n\nimport $ from '../dom';\nimport {API, BlockTune} from '../../../types';\n\nexport default class MoveDownTune implements BlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-down',\n animation: 'wobble',\n };\n\n /**\n * MoveDownTune constructor\n *\n * @param {{api: API}} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Return 'move down' button\n */\n public render() {\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\n this.api.listeners.on(\n moveDownButton,\n 'click',\n (event) => this.handleClick(event as MouseEvent, moveDownButton),\n false,\n );\n return moveDownButton;\n }\n\n /**\n * Handle clicks on 'move down' button\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement) {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n // If Block is last do nothing\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1);\n const nextBlockCoords = nextBlockElement.getBoundingClientRect();\n\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\n\n /**\n * Next block ends on screen.\n * Increment scroll by next block's height to save element onscreen-position\n */\n if (nextBlockCoords.top < window.innerHeight) {\n\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\n\n }\n\n window.scrollTo(0, scrollOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\n\n }\n}\n","/**\n * @class MoveUpTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport $ from '../dom';\nimport {API, BlockTune} from '../../../types';\n\nexport default class MoveUpTune implements BlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: API;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-up',\n animation: 'wobble',\n };\n\n /**\n * MoveUpTune constructor\n *\n * @param {{api: API}} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Create \"MoveUp\" button and add click event listener\n * @returns [HTMLElement}\n */\n public render(): HTMLElement {\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\n this.api.listeners.on(\n moveUpButton,\n 'click',\n (event) => this.handleClick(event as MouseEvent, moveUpButton),\n false,\n );\n return moveUpButton;\n }\n\n /**\n * Move current block up\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement): void {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n if (currentBlockIndex === 0) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex);\n const previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1);\n\n /**\n * Here is two cases:\n * - when previous block has negative offset and part of it is visible on window, then we scroll\n * by window's height and add offset which is mathematically difference between two blocks\n *\n * - when previous block is visible and has offset from the window,\n * than we scroll window to the difference between this offsets.\n */\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\n\n let scrollUpOffset;\n\n if (previousBlockCoords.top > 0) {\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\n } else {\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\n }\n\n window.scrollBy(0, -1 * scrollUpOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\n }\n}\n","import {\n API,\n BlockTool,\n BlockToolConstructable,\n BlockToolData,\n BlockTune,\n BlockTuneConstructable,\n SanitizerConfig,\n ToolConfig,\n} from '../../types';\n\nimport $ from './dom';\nimport _ from './utils';\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {BlockTool} tool — current block tool (Paragraph, for example)\n * @property {Object} CSS — block`s css classes\n *\n */\n\n/** Import default tunes */\nimport MoveUpTune from './block-tunes/block-tune-move-up';\nimport DeleteTune from './block-tunes/block-tune-delete';\nimport MoveDownTune from './block-tunes/block-tune-move-down';\n\n/**\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\n *\n * @property tool - Tool instance\n * @property html - Returns HTML content of plugin\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\n * @property pluginsContent - HTML content that returns by Tool's render function\n */\nexport default class Block {\n\n /**\n * CSS classes for the Block\n * @return {{wrapper: string, content: string}}\n */\n static get CSS() {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n focused: 'ce-block--focused',\n selected: 'ce-block--selected',\n dropTarget: 'ce-block--drop-target',\n };\n }\n\n /**\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\n *\n * @returns {HTMLElement[]}\n */\n get inputs(): HTMLElement[] {\n const content = this.holder;\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\n\n const selector = '[contenteditable], textarea, input, '\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\n\n const inputs = _.array(content.querySelectorAll(selector));\n\n /**\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\n */\n if (this.inputIndex > inputs.length - 1) {\n this.inputIndex = inputs.length - 1;\n }\n\n return inputs;\n }\n\n /**\n * Return current Tool`s input\n *\n * @returns {HTMLElement}\n */\n get currentInput(): HTMLElement {\n return this.inputs[this.inputIndex];\n }\n\n /**\n * Set input index to the passed element\n *\n * @param {HTMLElement} element\n */\n set currentInput(element: HTMLElement) {\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\n\n if (index !== -1) {\n this.inputIndex = index;\n }\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get firstInput(): HTMLElement {\n return this.inputs[0];\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get lastInput(): HTMLElement {\n const inputs = this.inputs;\n\n return inputs[inputs.length - 1];\n }\n\n /**\n * Return next Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get nextInput(): HTMLElement {\n return this.inputs[this.inputIndex + 1];\n }\n\n /**\n * Return previous Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get previousInput(): HTMLElement {\n return this.inputs[this.inputIndex - 1];\n }\n\n /**\n * Returns Plugins content\n * @return {Node}\n */\n get pluginsContent(): Node {\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\n\n if (pluginsContent && pluginsContent.childNodes.length) {\n return pluginsContent.childNodes[0];\n }\n\n return null;\n }\n\n /**\n * Get Block's JSON data\n * @return {Object}\n */\n get data(): object {\n return this.save();\n }\n\n /**\n * Returns tool's sanitizer config\n * @return {object}\n */\n get sanitize(): SanitizerConfig {\n return this.tool.sanitize;\n }\n\n /**\n * is block mergeable\n * We plugin have merge function then we call it mergable\n * @return {boolean}\n */\n get mergeable(): boolean {\n return typeof this.tool.merge === 'function';\n }\n\n /**\n * Check block for emptiness\n * @return {Boolean}\n */\n get isEmpty(): boolean {\n const emptyText = $.isEmpty(this.pluginsContent),\n emptyMedia = !this.hasMedia;\n\n return emptyText && emptyMedia;\n }\n\n /**\n * Check if block has a media content such as images, iframes and other\n * @return {Boolean}\n */\n get hasMedia(): boolean {\n /**\n * This tags represents media-content\n * @type {string[]}\n */\n const mediaTags = [\n 'img',\n 'iframe',\n 'video',\n 'audio',\n 'source',\n 'input',\n 'textarea',\n 'twitterwidget',\n ];\n\n return !!this.holder.querySelector(mediaTags.join(','));\n }\n\n /**\n * Set focused state\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set focused(state: boolean) {\n this.holder.classList.toggle(Block.CSS.focused, state);\n }\n\n /**\n * Set selected state\n * We don't need to mark Block as Selected when it is empty\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n if (state) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\n }\n\n /**\n * Returns True if it is Selected\n * @return {boolean}\n */\n get selected(): boolean {\n return this.holder.classList.contains(Block.CSS.selected);\n }\n\n /**\n * Set stretched state\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\n */\n set stretched(state: boolean) {\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\n }\n\n /**\n * Block Tool`s name\n */\n public name: string;\n\n /**\n * Instance of the Tool Block represents\n */\n public tool: BlockTool;\n\n /**\n * Class blueprint of the ool Block represents\n */\n public class: BlockToolConstructable;\n\n /**\n * User Tool configuration\n */\n public settings: ToolConfig;\n\n /**\n * Wrapper for Block`s content\n */\n public holder: HTMLDivElement;\n\n /**\n * Tunes used by Tool\n */\n public tunes: BlockTune[];\n\n /**\n * Editor`s API\n */\n private readonly api: API;\n\n /**\n * Focused input index\n * @type {number}\n */\n private inputIndex = 0;\n\n /**\n * @constructor\n * @param {String} toolName - Tool name that passed on initialization\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\n * @param {Object} toolClass — Tool's class\n * @param {Object} settings - default settings\n * @param {Object} apiMethods - Editor API\n */\n constructor(\n toolName: string,\n toolInstance: BlockTool,\n toolClass: BlockToolConstructable,\n settings: ToolConfig,\n apiMethods: API,\n ) {\n this.name = toolName;\n this.tool = toolInstance;\n this.class = toolClass;\n this.settings = settings;\n this.api = apiMethods;\n this.holder = this.compose();\n\n /**\n * @type {BlockTune[]}\n */\n this.tunes = this.makeTunes();\n }\n\n /**\n * Calls Tool's method\n *\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\n *\n * @param {String} methodName\n * @param {Object} params\n */\n public call(methodName: string, params: object) {\n /**\n * call Tool's method with the instance context\n */\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\n this.tool[methodName].call(this.tool, params);\n }\n }\n\n /**\n * Call plugins merge method\n * @param {Object} data\n */\n public async mergeWith(data: BlockToolData): Promise {\n await this.tool.merge(data);\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public async save(): Promise {\n const extractedBlock = await this.tool.save(this.pluginsContent as HTMLElement);\n\n /**\n * Measuring execution time\n */\n const measuringStart = window.performance.now();\n let measuringEnd;\n\n return Promise.resolve(extractedBlock)\n .then((finishedExtraction) => {\n /** measure promise execution */\n measuringEnd = window.performance.now();\n\n return {\n tool: this.name,\n data: finishedExtraction,\n time : measuringEnd - measuringStart,\n };\n })\n .catch((error) => {\n _.log(`Saving proccess for ${this.name} tool failed due to the ${error}`, 'log', 'red');\n });\n }\n\n /**\n * Uses Tool's validation method to check the correctness of output data\n * Tool's validation method is optional\n *\n * @description Method also can return data if it passed the validation\n *\n * @param {Object} data\n * @returns {Boolean|Object} valid\n */\n public validateData(data: BlockToolData): BlockToolData|false {\n let isValid = true;\n\n if (this.tool.validate instanceof Function) {\n isValid = this.tool.validate(data);\n }\n\n if (!isValid) {\n return false;\n }\n\n return data;\n }\n\n /**\n * Make an array with default settings\n * Each block has default tune instance that have states\n * @return {BlockTune[]}\n */\n public makeTunes(): BlockTune[] {\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\n\n // Pluck tunes list and return tune instances with passed Editor API and settings\n return tunesList.map( (tune: BlockTuneConstructable) => {\n return new tune({\n api: this.api,\n settings: this.settings,\n });\n });\n }\n\n /**\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\n * @return {DocumentFragment}\n */\n public renderTunes(): DocumentFragment {\n const tunesElement = document.createDocumentFragment();\n\n this.tunes.forEach( (tune) => {\n $.append(tunesElement, tune.render());\n });\n\n return tunesElement;\n }\n\n /**\n * Toggle drop target state\n * @param {boolean} state\n */\n public set dropTarget(state) {\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\n }\n\n /**\n * Make default Block wrappers and put Tool`s content there\n * @returns {HTMLDivElement}\n */\n private compose(): HTMLDivElement {\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\n contentNode = $.make('div', Block.CSS.content),\n pluginsContent = this.tool.render();\n\n contentNode.appendChild(pluginsContent);\n wrapper.appendChild(contentNode);\n return wrapper;\n }\n}\n","import _ from './utils';\nimport $ from './dom';\nimport Block from './block';\n\n/**\n * @class Blocks\n * @classdesc Class to work with Block instances array\n *\n * @private\n *\n * @property {HTMLElement} workingArea — editor`s working node\n *\n */\nexport default class Blocks {\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n public get length(): number {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n public get array(): Block[] {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n public get nodes(): HTMLElement[] {\n return _.array(this.workingArea.children);\n }\n\n /**\n * Proxy trap to implement array-like setter\n *\n * @example\n * blocks[0] = new Block(...)\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — block index\n * @param {Block} block — Block to set\n * @returns {Boolean}\n */\n public static set(instance: Blocks, index: number, block: Block) {\n if (isNaN(Number(index))) {\n return false;\n }\n\n instance.insert(index, block);\n\n return true;\n }\n\n /**\n * Proxy trap to implement array-like getter\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — Block index\n * @returns {Block|*}\n */\n public static get(instance: Blocks, index: number) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\n }\n\n /**\n * Array of Block instances in order of addition\n */\n public blocks: Block[];\n\n /**\n * Editor`s area where to add Block`s HTML\n */\n public workingArea: HTMLElement;\n\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea: HTMLElement) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push new Block to the blocks array and append it to working area\n *\n * @param {Block} block\n */\n public push(block: Block): void {\n this.blocks.push(block);\n this.workingArea.appendChild(block.holder);\n }\n\n /**\n * Swaps blocks with indexes first and second\n * @param {Number} first - first block index\n * @param {Number} second - second block index\n */\n public swap(first: number, second: number): void {\n const secondBlock = this.blocks[second];\n\n /**\n * Change in DOM\n */\n $.swap(this.blocks[first].holder, secondBlock.holder);\n\n /**\n * Change in array\n */\n this.blocks[second] = this.blocks[first];\n this.blocks[first] = secondBlock;\n }\n\n /**\n * Insert new Block at passed index\n *\n * @param {Number} index — index to insert Block\n * @param {Block} block — Block to insert\n * @param {Boolean} replace — it true, replace block on given index\n */\n public insert(index: number, block: Block, replace: boolean = false): void {\n if (!this.length) {\n this.push(block);\n return;\n }\n\n if (index > this.length) {\n index = this.length;\n }\n\n if (replace) {\n this.blocks[index].holder.remove();\n }\n\n const deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n const previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n const nextBlock = this.blocks[index + 1];\n\n if (nextBlock) {\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\n } else {\n this.workingArea.appendChild(block.holder);\n }\n }\n }\n\n /**\n * Remove block\n * @param {Number|null} index\n */\n public remove(index: number): void {\n if (isNaN(index)) {\n index = this.length - 1;\n }\n\n this.blocks[index].holder.remove();\n this.blocks.splice(index, 1);\n }\n\n /**\n * Remove all blocks\n */\n public removeAll(): void {\n this.workingArea.innerHTML = '';\n this.blocks.length = 0;\n }\n\n /**\n * Insert Block after passed target\n *\n * @todo decide if this method is necessary\n *\n * @param {Block} targetBlock — target after wich Block should be inserted\n * @param {Block} newBlock — Block to insert\n */\n public insertAfter(targetBlock: Block, newBlock: Block): void {\n const index = this.blocks.indexOf(targetBlock);\n\n this.insert(index + 1, newBlock);\n }\n\n /**\n * Get Block by index\n *\n * @param {Number} index — Block index\n * @returns {Block}\n */\n public get(index: number): Block {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n public indexOf(block: Block): number {\n return this.blocks.indexOf(block);\n }\n}\n","import $ from './dom';\nimport _ from './utils';\nimport {EditorConfig, OutputData, SanitizerConfig, ToolSettings} from '../../types';\nimport {EditorModules} from '../types-internal/editor-modules';\n\n/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\nconst contextRequire = require.context('./modules', true);\n\nconst modules = [];\n\ncontextRequire.keys().forEach((filename) => {\n /**\n * Include files if:\n * - extension is .js or .ts\n * - does not starts with _\n */\n if (filename.match(/^\\.\\/[^_][\\w/]*\\.([tj])s$/)) {\n modules.push(contextRequire(filename));\n }\n});\n\n/**\n * @class Core\n *\n * @classdesc CodeX Editor core class\n *\n * @property this.config - all settings\n * @property this.moduleInstances - constructed editor components\n *\n * @type {Core}\n */\nexport default class Core {\n\n /**\n * Editor configuration passed by user to the constructor\n */\n public config: EditorConfig;\n\n /**\n * Object with core modules instances\n */\n public moduleInstances: EditorModules = {} as EditorModules;\n\n /**\n * Promise that resolves when all core modules are prepared and UI is rendered on the page\n */\n public isReady: Promise;\n\n /**\n * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config?: EditorConfig|string) {\n /**\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\n */\n let onReady, onFail;\n\n this.isReady = new Promise((resolve, reject) => {\n onReady = resolve;\n onFail = reject;\n });\n\n Promise.resolve()\n .then(async () => {\n this.configuration = config;\n\n await this.validate();\n await this.init();\n await this.start();\n\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧', 'log', '', 'color: #E24A75');\n\n setTimeout(() => {\n /**\n * Resolve this.isReady promise\n */\n onReady();\n }, 500);\n })\n .catch((error) => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n\n /**\n * Reject this.isReady promise\n */\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {EditorConfig|string|undefined} config\n */\n set configuration(config: EditorConfig|string) {\n /**\n * Process zero-configuration or with only holderId\n * Make config object\n */\n if (typeof config !== 'object') {\n config = {\n holderId: config,\n };\n }\n\n /**\n * Place config into the class property\n * @type {EditorConfig}\n */\n this.config = config;\n\n /**\n * If holderId is empty then set a default value\n */\n if (!this.config.holderId || typeof this.config.holderId !== 'string') {\n this.config.holderId = 'codex-editor';\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = this.config.initialBlock || 'paragraph';\n\n /**\n * Initial block type\n * Uses in case when there is no blocks passed\n * @type {{type: (*), data: {text: null}}}\n */\n const initialBlockData = {\n type : this.config.initialBlock,\n data : {},\n };\n\n this.config.placeholder = this.config.placeholder || 'write your story...';\n this.config.sanitizer = this.config.sanitizer || {\n p: true,\n b: true,\n a: true,\n } as SanitizerConfig;\n\n this.config.hideToolbar = this.config.hideToolbar ? this.config.hideToolbar : false;\n this.config.tools = this.config.tools || {};\n this.config.data = this.config.data || {} as OutputData;\n this.config.onReady = this.config.onReady || (() => {});\n this.config.onChange = this.config.onChange || (() => {});\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {} as OutputData;\n this.config.data.blocks = [ initialBlockData ];\n } else {\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\n this.config.data.blocks = [ initialBlockData ];\n }\n }\n }\n\n /**\n * Returns private property\n * @returns {EditorConfig}\n */\n get configuration(): EditorConfig|string {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {Promise}\n */\n public async validate(): Promise {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n throw Error('«holderId» param must being not empty');\n }\n\n /**\n * Check for a holder element's existence\n */\n if (!$.get(this.config.holderId)) {\n throw Error(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\n }\n\n /**\n * Check Tools for a class containing\n */\n for (const toolName in this.config.tools) {\n if (this.config.tools.hasOwnProperty(toolName)) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction((tool as ToolSettings).class)) {\n throw Error(\n `Tool «${toolName}» must be a constructor function or an object with function in the «class» property`,\n );\n }\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n public init() {\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n this.constructModules();\n\n /**\n * Modules configuration\n */\n this.configureModules();\n }\n\n /**\n * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n public async start() {\n const modulesToPrepare = [\n 'Tools',\n 'UI',\n 'BlockManager',\n 'Paste',\n 'DragNDrop',\n 'ModificationsObserver',\n 'BlockSelection',\n ];\n\n await modulesToPrepare.reduce(\n (promise, module) => promise.then(async () => {\n // _.log(`Preparing ${module} module`, 'time');\n\n try {\n await this.moduleInstances[module].prepare();\n } catch (e) {\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\n }\n // _.log(`Preparing ${module} module`, 'timeEnd');\n }),\n Promise.resolve(),\n );\n\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\n }\n\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n private constructModules(): void {\n modules.forEach( (Module) => {\n try {\n /**\n * We use class name provided by displayName property\n *\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\n */\n this.moduleInstances[Module.displayName] = new Module({\n config : this.configuration,\n });\n } catch ( e ) {\n _.log(`Module ${Module.displayName} skipped because`, 'warn', e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n private configureModules(): void {\n for (const name in this.moduleInstances) {\n if (this.moduleInstances.hasOwnProperty(name)) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff(name);\n }\n }\n }\n\n /**\n * Return modules without passed name\n * @param {string} name - module for witch modules difference should be calculated\n */\n private getModulesDiff(name: string): EditorModules {\n const diff = {} as EditorModules;\n\n for (const moduleName in this.moduleInstances) {\n /**\n * Skip module with passed name\n */\n if (moduleName === name) {\n continue;\n }\n diff[moduleName] = this.moduleInstances[moduleName];\n }\n\n return diff;\n }\n}\n","/**\n * DOM manipulations helper\n */\nexport default class Dom {\n /**\n * Check if passed tag has no closed tag\n * @param {HTMLElement} tag\n * @return {Boolean}\n */\n public static isSingleTag(tag: HTMLElement): boolean {\n return tag.tagName && [\n 'AREA',\n 'BASE',\n 'BR',\n 'COL',\n 'COMMAND',\n 'EMBED',\n 'HR',\n 'IMG',\n 'INPUT',\n 'KEYGEN',\n 'LINK',\n 'META',\n 'PARAM',\n 'SOURCE',\n 'TRACK',\n 'WBR',\n ].includes(tag.tagName);\n }\n\n /**\n * Helper for making Elements with classname and attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {array|string} classNames - list or name of CSS classname(s)\n * @param {Object} attributes - any attributes\n * @return {HTMLElement}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): HTMLElement {\n const el = document.createElement(tagName);\n\n if ( Array.isArray(classNames) ) {\n el.classList.add(...classNames);\n } else if ( classNames ) {\n el.classList.add(classNames);\n }\n\n for (const attrName in attributes) {\n if (attributes.hasOwnProperty(attrName)) {\n el[attrName] = attributes[attrName];\n }\n }\n\n return el;\n }\n\n /**\n * Creates Text Node with the passed content\n * @param {String} content - text content\n * @return {Text}\n */\n public static text(content: string): Text {\n return document.createTextNode(content);\n }\n\n /**\n * Creates SVG icon linked to the sprite\n * @param {string} name - name (id) of icon from sprite\n * @param {number} width\n * @param {number} height\n * @return {SVGElement}\n */\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n icon.classList.add('icon', 'icon--' + name);\n icon.setAttribute('width', width + 'px');\n icon.setAttribute('height', height + 'px');\n icon.innerHTML = ``;\n\n return icon;\n }\n\n /**\n * Append one or several elements to the parent\n *\n * @param {Element|DocumentFragment} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]|DocumentFragment): void {\n if ( Array.isArray(elements) ) {\n elements.forEach( (el) => parent.appendChild(el) );\n } else {\n parent.appendChild(elements);\n }\n }\n\n /**\n * Append element or a couple to the beginning of the parent elements\n *\n * @param {Element} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static prepend(parent: Element, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements = elements.reverse();\n elements.forEach( (el) => parent.prepend(el) );\n } else {\n parent.prepend(elements);\n }\n }\n\n /**\n * Swap two elements in parent\n * @param {HTMLElement} el1 - from\n * @param {HTMLElement} el2 - to\n */\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\n // create marker element and insert it where el1 is\n const temp = document.createElement('div'),\n parent = el1.parentNode;\n\n parent.insertBefore(temp, el1);\n\n // move el1 to right before el2\n parent.insertBefore(el1, el2);\n\n // move el2 to right before where el1 used to be\n parent.insertBefore(el2, temp);\n\n // remove temporary marker node\n parent.removeChild(temp);\n }\n\n /**\n * Selector Decorator\n *\n * Returns first match\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n *\n * @returns {Element}\n */\n public static find(el: Element|Document = document, selector: string): Element {\n return el.querySelector(selector);\n }\n\n /**\n * Get Element by Id\n *\n * @param {string} id\n * @returns {HTMLElement | null}\n */\n public static get(id: string): HTMLElement {\n return document.getElementById(id);\n }\n\n /**\n * Selector Decorator.\n *\n * Returns all matches\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n * @returns {NodeList}\n */\n public static findAll(el: Element|Document = document, selector: string): NodeList {\n return el.querySelectorAll(selector);\n }\n\n /**\n * Search for deepest node which is Leaf.\n * Leaf is the vertex that doesn't have any child nodes\n *\n * @description Method recursively goes throw the all Node until it finds the Leaf\n *\n * @param {Node} node - root Node. From this vertex we start Deep-first search\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\n * @param {Boolean} atLast - find last text node\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\n */\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\n /**\n * Current function have two directions:\n * - starts from first child and every time gets first or nextSibling in special cases\n * - starts from last child and gets last or previousSibling\n * @type {string}\n */\n const child = atLast ? 'lastChild' : 'firstChild',\n sibling = atLast ? 'previousSibling' : 'nextSibling';\n\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\n let nodeChild = node[child] as Node;\n\n /**\n * special case when child is single tag that can't contain any content\n */\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\n /**\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\n * from sibling\n *\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\n * In case of Node Element continue searching\n *\n * 3) If none of conditions above happened return parent Node Element\n */\n if (nodeChild[sibling]) {\n nodeChild = nodeChild[sibling];\n } else if (nodeChild.parentNode[sibling]) {\n nodeChild = nodeChild.parentNode[sibling];\n } else {\n return nodeChild.parentNode;\n }\n }\n\n return this.getDeepestNode(nodeChild, atLast);\n }\n\n return node;\n }\n\n /**\n * Check if object is DOM node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isElement(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Check if object is DocumentFragmemt node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isFragment(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n\n /**\n * Checks target if it is native input\n * @param {Element|String|Node} target - HTML element or string\n * @return {Boolean}\n */\n public static isNativeInput(target: any): boolean {\n const nativeInputs = [\n 'INPUT',\n 'TEXTAREA',\n ];\n\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\n }\n\n /**\n * Checks node if it is empty\n *\n * @description Method checks simple Node without any childs for emptiness\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\n *\n * @param {Node} node\n * @return {Boolean} true if it is empty\n */\n public static isNodeEmpty(node: Node): boolean {\n let nodeText;\n\n if ( this.isElement(node) && this.isNativeInput(node) ) {\n nodeText = (node as HTMLInputElement).value;\n } else {\n nodeText = node.textContent.replace('\\u200B', '');\n }\n\n return nodeText.trim().length === 0;\n }\n\n /**\n * checks node if it is doesn't have any child nodes\n * @param {Node} node\n * @return {boolean}\n */\n public static isLeaf(node: Node): boolean {\n if (!node) {\n return false;\n }\n\n return node.childNodes.length === 0;\n }\n\n /**\n * breadth-first search (BFS)\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\n *\n * @description Pushes to stack all DOM leafs and checks for emptiness\n *\n * @param {Node} node\n * @return {boolean}\n */\n public static isEmpty(node: Node): boolean {\n const treeWalker = [],\n leafs = [];\n\n if (!node) {\n return true;\n }\n\n if (!node.childNodes.length) {\n return this.isNodeEmpty(node);\n }\n\n treeWalker.push(node.firstChild);\n\n while ( treeWalker.length > 0 ) {\n node = treeWalker.shift();\n\n if (!node) { continue; }\n\n if ( this.isLeaf(node) ) {\n leafs.push(node);\n } else {\n treeWalker.push(node.firstChild);\n }\n\n while ( node && node.nextSibling ) {\n node = node.nextSibling;\n\n if (!node) { continue; }\n\n treeWalker.push(node);\n }\n\n /**\n * If one of childs is not empty, checked Node is not empty too\n */\n if (node && !this.isNodeEmpty(node)) {\n return false;\n }\n }\n\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\n }\n\n /**\n * Check if string contains html elements\n *\n * @returns {boolean}\n * @param {String} str\n */\n public static isHTMLString(str: string): boolean {\n const wrapper = Dom.make('div');\n\n wrapper.innerHTML = str;\n\n return wrapper.childElementCount > 0;\n }\n\n /**\n * Return length of node`s text content\n *\n * @param {Node} node\n * @returns {number}\n */\n public static getContentLength(node: Node): number {\n if (Dom.isNativeInput(node)) {\n return (node as HTMLInputElement).value.length;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node as Text).length;\n }\n\n return node.textContent.length;\n }\n\n /**\n * Return array of names of block html elements\n *\n * @returns {string[]}\n */\n static get blockElements(): string[] {\n return [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'ruby',\n 'section',\n 'table',\n 'tr',\n 'tfoot',\n 'ul',\n 'video',\n ];\n }\n}\n","import $ from '../dom';\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\n\n/**\n * Bold Tool\n *\n * Inline Toolbar Tool\n *\n * Makes selected text bolder\n */\nexport default class BoldInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n b: {},\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's command that uses for Bold\n */\n private readonly commandName: string = 'bold';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--bold',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: undefined,\n };\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('bold', 13, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+B';\n }\n}\n","import $ from '../dom';\nimport {InlineTool, SanitizerConfig} from '../../../types';\n\n/**\n * Italic Tool\n *\n * Inline Toolbar Tool\n *\n * Style selected text with italic\n */\nexport default class ItalicInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n i: {},\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's command that uses for Italic\n */\n private readonly commandName: string = 'italic';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--italic',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: null,\n };\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('italic', 6, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+I';\n }\n}\n","import SelectionUtils from '../selection';\n\nimport $ from '../dom';\nimport _ from '../utils';\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\nimport {Toolbar} from '../../../types/api';\n/**\n * Link Tool\n *\n * Inline Toolbar Tool\n *\n * Wrap selected text with tag\n */\nexport default class LinkInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): SanitizerConfig {\n return {\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow',\n },\n } as SanitizerConfig;\n }\n\n /**\n * Native Document's commands for link/unlink\n */\n private readonly commandLink: string = 'createLink';\n private readonly commandUnlink: string = 'unlink';\n\n /**\n * Enter key code\n */\n private readonly ENTER_KEY: number = 13;\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--link',\n buttonUnlink: 'ce-inline-tool--unlink',\n input: 'ce-inline-tool-input',\n inputShowed: 'ce-inline-tool-input--showed',\n };\n\n /**\n * Elements\n */\n private nodes: {\n button: HTMLButtonElement;\n input: HTMLInputElement;\n } = {\n button: null,\n input: null,\n };\n\n /**\n * SelectionUtils instance\n */\n private selection: SelectionUtils;\n\n /**\n * Input opening state\n */\n private inputOpened: boolean = false;\n\n /**\n * Available Inline Toolbar methods (open/close)\n */\n private inlineToolbar: Toolbar;\n\n /**\n * @param {{api: API}} - CodeX Editor API\n */\n constructor({api}) {\n this.inlineToolbar = api.toolbar;\n this.selection = new SelectionUtils();\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button') as HTMLButtonElement;\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('link', 15, 14));\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\n return this.nodes.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n this.nodes.input = document.createElement('input') as HTMLInputElement;\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.keyCode === this.ENTER_KEY ) {\n this.enterPressed(event);\n }\n });\n return this.nodes.input;\n }\n\n /**\n * Handle clicks on the Inline Toolbar icon\n * @param {Range} range\n */\n public surround(range: Range): void {\n /**\n * Range will be null when user makes second click on the 'link icon' to close opened input\n */\n if (range) {\n /**\n * Save selection before change focus to the input\n */\n this.selection.save();\n const parentAnchor = this.selection.findParentTag('A');\n\n /**\n * Unlink icon pressed\n */\n if (parentAnchor) {\n this.selection.expandToTag(parentAnchor);\n this.unlink();\n this.closeActions();\n this.checkState();\n this.inlineToolbar.close();\n return;\n }\n }\n\n this.toggleActions();\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection?: Selection): boolean {\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\n this.nodes.button.classList.add(this.CSS.buttonActive);\n this.openActions();\n\n /**\n * Fill input value with link href\n */\n const hrefAttr = anchorTag.getAttribute('href');\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\n\n this.selection.save();\n } else {\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\n this.nodes.button.classList.remove(this.CSS.buttonActive);\n }\n\n return !!anchorTag;\n }\n\n /**\n * Function called with Inline Toolbar closing\n */\n public clear(): void {\n this.closeActions();\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+K';\n }\n\n private toggleActions(): void {\n if (!this.inputOpened) {\n this.openActions(true);\n } else {\n this.closeActions(false);\n }\n }\n\n /**\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\n */\n private openActions(needFocus: boolean = false): void {\n this.nodes.input.classList.add(this.CSS.inputShowed);\n if (needFocus) {\n this.nodes.input.focus();\n }\n this.inputOpened = true;\n }\n\n /**\n * Close input\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\n * on toggle-clicks on the icon of opened Toolbar\n */\n private closeActions(clearSavedSelection: boolean = true): void {\n this.nodes.input.classList.remove(this.CSS.inputShowed);\n this.nodes.input.value = '';\n if (clearSavedSelection) {\n this.selection.clearSaved();\n }\n this.inputOpened = false;\n }\n\n /**\n * Enter pressed on input\n * @param {KeyboardEvent} event\n */\n private enterPressed(event: KeyboardEvent): void {\n let value = this.nodes.input.value || '';\n\n if (!value.trim()) {\n this.selection.restore();\n this.unlink();\n event.preventDefault();\n this.closeActions();\n }\n\n if (!this.validateURL(value)) {\n /**\n * @todo show notification 'Incorrect Link'\n */\n _.log('Incorrect Link pasted', 'warn', value);\n return;\n }\n\n value = this.prepareLink(value);\n\n this.selection.restore();\n this.insertLink(value);\n\n /**\n * Preventing events that will be able to happen\n */\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n this.closeActions();\n this.inlineToolbar.close();\n this.checkState();\n }\n\n /**\n * Detects if passed string is URL\n * @param {string} str\n * @return {Boolean}\n */\n private validateURL(str: string): boolean {\n /**\n * Don't allow spaces\n */\n return !/\\s/.test(str);\n }\n\n /**\n * Process link before injection\n * - sanitize\n * - add protocol for links like 'google.com'\n * @param {string} link - raw user input\n */\n private prepareLink(link: string): string {\n link = link.trim();\n link = this.addProtocol(link);\n return link;\n }\n\n /**\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\n * @param {String} link\n */\n private addProtocol(link: string): string {\n /**\n * If protocol already exists, do nothing\n */\n if (/^(\\w+):\\/\\//.test(link)) {\n return link;\n }\n\n /**\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\n * 1) Internal links like \"/general\"\n * 2) Anchors looks like \"#results\"\n * 3) Protocol-relative URLs like \"//google.com\"\n */\n const isInternal = /^\\/[^\\/\\s]/.test(link),\n isAnchor = link.substring(0, 1) === '#',\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\n\n if (!isInternal && !isAnchor && !isProtocolRelative) {\n link = 'http://' + link;\n }\n\n return link;\n }\n\n /**\n * Inserts tag with \"href\"\n * @param {string} link - \"href\" value\n */\n private insertLink(link: string): void {\n\n /**\n * Edit all link, not selected part\n */\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.selection.expandToTag(anchorTag);\n }\n\n document.execCommand(this.commandLink, false, link);\n }\n\n /**\n * Removes tag\n */\n private unlink(): void {\n document.execCommand(this.commandUnlink);\n }\n}\n","var map = {\n\t\"./api\": \"./src/components/modules/api/index.ts\",\n\t\"./api/\": \"./src/components/modules/api/index.ts\",\n\t\"./api/blocks\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/blocks.ts\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/caret\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/caret.ts\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/events\": \"./src/components/modules/api/events.ts\",\n\t\"./api/events.ts\": \"./src/components/modules/api/events.ts\",\n\t\"./api/index\": \"./src/components/modules/api/index.ts\",\n\t\"./api/index.ts\": \"./src/components/modules/api/index.ts\",\n\t\"./api/listeners\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/listeners.ts\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/notifier\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/notifier.ts\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/sanitizer\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/sanitizer.ts\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/saver\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/saver.ts\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/selection\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/selection.ts\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/styles\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/styles.ts\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/toolbar\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./api/toolbar.ts\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./blockEvents\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockEvents.ts\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockManager\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockManager.ts\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockSelection\": \"./src/components/modules/blockSelection.ts\",\n\t\"./blockSelection.ts\": \"./src/components/modules/blockSelection.ts\",\n\t\"./caret\": \"./src/components/modules/caret.ts\",\n\t\"./caret.ts\": \"./src/components/modules/caret.ts\",\n\t\"./dragNDrop\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events\": \"./src/components/modules/events.ts\",\n\t\"./events.ts\": \"./src/components/modules/events.ts\",\n\t\"./listeners\": \"./src/components/modules/listeners.ts\",\n\t\"./listeners.ts\": \"./src/components/modules/listeners.ts\",\n\t\"./modificationsObserver\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./notifier\": \"./src/components/modules/notifier.ts\",\n\t\"./notifier.ts\": \"./src/components/modules/notifier.ts\",\n\t\"./paste\": \"./src/components/modules/paste.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer\": \"./src/components/modules/renderer.ts\",\n\t\"./renderer.ts\": \"./src/components/modules/renderer.ts\",\n\t\"./sanitizer\": \"./src/components/modules/sanitizer.ts\",\n\t\"./sanitizer.ts\": \"./src/components/modules/sanitizer.ts\",\n\t\"./saver\": \"./src/components/modules/saver.ts\",\n\t\"./saver.ts\": \"./src/components/modules/saver.ts\",\n\t\"./shortcuts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/blockSettings\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/blockSettings.ts\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/index\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/index.ts\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/inline\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/inline.ts\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/toolbox\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./toolbar/toolbox.ts\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./tools\": \"./src/components/modules/tools.ts\",\n\t\"./tools.ts\": \"./src/components/modules/tools.ts\",\n\t\"./ui\": \"./src/components/modules/ui.ts\",\n\t\"./ui.ts\": \"./src/components/modules/ui.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/components/modules sync recursive ^\\\\.\\\\/.*$\";","import Module from '../../__module';\n\nimport {Blocks} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\nimport Block from '../../block';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module {\n /**\n * Available methods\n * @return {Blocks}\n */\n get methods(): Blocks {\n return {\n clear: () => this.clear(),\n render: (data: OutputData) => this.render(data),\n delete: () => this.delete(),\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\n getBlocksCount: () => this.getBlocksCount(),\n stretchBlock: (index: number, status: boolean = true) => this.stretchBlock(index, status),\n insertNewBlock: () => this.insertNewBlock(),\n };\n }\n\n /**\n * Returns Blocks count\n * @return {number}\n */\n public getBlocksCount(): number {\n return this.Editor.BlockManager.blocks.length;\n }\n\n /**\n * Returns current block index\n * @return {number}\n */\n public getCurrentBlockIndex(): number {\n return this.Editor.BlockManager.currentBlockIndex;\n }\n\n /**\n * Returns Block holder by Block index\n * @param {Number} index\n *\n * @return {HTMLElement}\n */\n public getBlockByIndex(index: number): HTMLElement {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n return block.holder;\n }\n\n /**\n * Call Block Manager method that swap Blocks\n * @param {number} fromIndex - position of first Block\n * @param {number} toIndex - position of second Block\n */\n public swap(fromIndex: number, toIndex: number): void {\n this.Editor.BlockManager.swap(fromIndex, toIndex);\n\n /**\n * Move toolbar\n * DO not close the settings\n */\n this.Editor.Toolbar.move(false);\n }\n\n /**\n * Deletes Block\n * @param blockIndex\n */\n public delete(blockIndex?: number): void {\n this.Editor.BlockManager.removeBlock(blockIndex);\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Clear Editor's area\n */\n public clear(): void {\n this.Editor.BlockManager.clear(true);\n }\n\n /**\n * Fills Editor with Blocks data\n * @param {OutputData} data — Saved Editor data\n */\n public render(data: OutputData): Promise {\n this.Editor.BlockManager.clear();\n return this.Editor.Renderer.render(data.blocks);\n }\n\n /**\n * Stretch Block's content\n * @param {number} index\n * @param {boolean} status - true to enable, false to disable\n */\n public stretchBlock(index: number, status: boolean = true): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status;\n }\n\n /**\n * Insert new Block\n * After set caret to this Block\n */\n public insertNewBlock() {\n const newBlock = this.Editor.BlockManager.insert();\n this.Editor.Caret.setToBlock(newBlock);\n }\n}\n","import Module from '../../__module';\nimport {Caret} from '../../../../types/api';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module {\n /**\n * Available methods\n * @return {Caret}\n */\n get methods(): Caret {\n return {};\n }\n}\n","import Module from '../../__module';\nimport {Events} from '../../../../types/api';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module {\n /**\n * Available methods\n * @return {Events}\n */\n get methods(): Events {\n return {\n emit: (eventName: string, data: object) => this.emit(eventName, data),\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\n };\n }\n\n /**\n * Subscribe on Events\n * @param {String} eventName\n * @param {Function} callback\n */\n public on(eventName, callback): void {\n this.Editor.Events.on(eventName, callback);\n }\n\n /**\n * Emit event with data\n * @param {String} eventName\n * @param {Object} data\n */\n public emit(eventName, data): void {\n this.Editor.Events.emit(eventName, data);\n }\n\n /**\n * Unsubscribe from Event\n * @param {String} eventName\n * @param {Function} callback\n */\n public off(eventName, callback): void {\n this.Editor.Events.off(eventName, callback);\n }\n\n}\n","/**\n * @module API\n * @copyright 2018\n *\n * Each block has an Editor API instance to use provided public methods\n * if you cant to read more about how API works, please see docs\n */\nimport Module from '../../__module';\nimport {API as APIInterfaces} from '../../../../types';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n public get methods(): APIInterfaces {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listeners: this.Editor.ListenersAPI.methods,\n notifier: this.Editor.NotifierAPI.methods,\n sanitizer: this.Editor.SanitizerAPI.methods,\n saver: this.Editor.SaverAPI.methods,\n selection: this.Editor.SelectionAPI.methods,\n styles: this.Editor.StylesAPI.classes,\n toolbar: this.Editor.ToolbarAPI.methods,\n } as APIInterfaces;\n }\n}\n","import Module from '../../__module';\nimport {Listeners} from '../../../../types/api';\n\n/**\n * @class ListenersAPI\n * Provides with methods working with DOM Listener\n */\nexport default class ListenersAPI extends Module {\n /**\n * Available methods\n * @return {Listeners}\n */\n get methods(): Listeners {\n return {\n on: (element: HTMLElement, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\n off: (element, eventType, handler) => this.off(element, eventType, handler),\n };\n }\n\n /**\n * adds DOM event listener\n *\n * @param {HTMLElement} element\n * @param {string} eventType\n * @param {() => void} handler\n * @param {boolean} useCapture\n */\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\n }\n\n /**\n * Removes DOM listener from element\n *\n * @param element\n * @param eventType\n * @param handler\n */\n public off(element, eventType, handler): void {\n this.Editor.Listeners.off(element, eventType, handler);\n }\n}\n","import Module from '../../__module';\nimport {Notifier} from '../../../../types/api';\nimport {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\nexport default class NotifierAPI extends Module {\n\n /**\n * Available methods\n */\n get methods(): Notifier {\n return {\n show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options),\n };\n }\n\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n return this.Editor.Notifier.show(options);\n }\n}\n","import Module from '../../__module';\nimport {Sanitizer} from '../../../../types/api';\n\n/**\n * @class SanitizerAPI\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module {\n /**\n * Available methods\n * @return {Sanitizer}\n */\n get methods(): Sanitizer {\n return {\n clean: (taintString, config) => this.clean(taintString, config),\n };\n }\n\n public clean(taintString, config) {\n return this.Editor.Sanitizer.clean(taintString, config);\n }\n\n}\n","import Module from '../../__module';\nimport {Saver} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module {\n /**\n * Available methods\n * @return {Saver}\n */\n get methods(): Saver {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): Promise {\n return this.Editor.Saver.save();\n }\n}\n","import Module from '../../__module';\nimport SelectionUtils from '../../selection';\nimport {Selection as SelectionAPIInterface} from '../../../../types/api';\n\n/**\n * @class SelectionAPI\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module {\n /**\n * Available methods\n * @return {SelectionAPIInterface}\n */\n get methods(): SelectionAPIInterface {\n return {\n findParentTag: (tagName: string, className?: string) => this.findParentTag(tagName, className),\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\n };\n }\n\n /**\n * Looks ahead from selection and find passed tag with class name\n * @param {string} tagName - tag to find\n * @param {string} className - tag's class name\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string): HTMLElement|null {\n return new SelectionUtils().findParentTag(tagName, className);\n }\n\n /**\n * Expand selection to passed tag\n * @param {HTMLElement} node - tag that should contain selection\n */\n public expandToTag(node: HTMLElement): void {\n new SelectionUtils().expandToTag(node);\n }\n\n}\n","import Module from '../../__module';\nimport {Styles} from '../../../../types/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n get classes(): Styles {\n return {\n /**\n * Base Block styles\n */\n block: 'cdx-block',\n\n /**\n * Inline Tools styles\n */\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonActive: 'ce-inline-tool--active',\n\n /**\n * UI elements\n */\n input: 'cdx-input',\n loader: 'cdx-loader',\n button: 'cdx-button',\n\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","import Module from '../../__module';\nimport {Toolbar} from '../../../../types/api';\n\n/**\n * @class ToolbarAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module {\n /**\n * Available methods\n * @return {Toolbar}\n */\n get methods(): Toolbar {\n return {\n close: () => this.close(),\n open: () => this.open(),\n };\n }\n\n /**\n * Open toolbar\n */\n public open(): void {\n this.Editor.Toolbar.open();\n }\n\n /**\n * Close toolbar and all included elements\n */\n public close(): void {\n this.Editor.Toolbar.close();\n }\n\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\nimport Module from '../__module';\nimport _ from '../utils';\nimport CaretClass from './caret';\n\nexport default class BlockEvents extends Module {\n /**\n * All keydowns on Block\n * @param {KeyboardEvent} event - keydown\n */\n public keydown(event: KeyboardEvent): void {\n /**\n * Run common method for all keydown events\n */\n this.beforeKeydownProcessing(event);\n\n /**\n * Fire keydown processor by event.keyCode\n */\n switch (event.keyCode) {\n case _.keyCodes.BACKSPACE:\n this.backspace(event);\n break;\n\n case _.keyCodes.ENTER:\n this.enter(event);\n break;\n\n case _.keyCodes.DOWN:\n case _.keyCodes.RIGHT:\n this.arrowRightAndDown(event);\n break;\n\n case _.keyCodes.UP:\n case _.keyCodes.LEFT:\n this.arrowLeftAndUp(event);\n break;\n\n case _.keyCodes.TAB:\n this.tabPressed(event);\n break;\n\n case _.keyCodes.ESC:\n this.escapePressed(event);\n break;\n default:\n this.defaultHandler();\n break;\n }\n }\n\n /**\n * Fires on keydown before event processing\n * @param {KeyboardEvent} event - keydown\n */\n public beforeKeydownProcessing(event): void {\n /**\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\n */\n if (!this.needToolbarClosing(event)) {\n return;\n }\n\n this.Editor.Toolbar.close();\n\n const cmdKey = event.ctrlKey || event.metaKey;\n const altKey = event.altKey;\n const shiftKey = event.shiftKey;\n\n /** clear selecton when it is not CMD, SHIFT, ALT keys */\n if (cmdKey || altKey || shiftKey) {\n return;\n }\n\n /**\n * Clear all highlightings\n */\n this.Editor.BlockManager.clearFocused();\n\n if (event.keyCode !== _.keyCodes.ENTER && event.keyCode !== _.keyCodes.BACKSPACE) {\n /**\n * Clear selection and restore caret before navigation\n */\n this.Editor.BlockSelection.clearSelection(true);\n }\n }\n\n /**\n * Key up on Block:\n * - shows Inline Toolbar if something selected\n */\n public keyup(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Mouse up on Block:\n * - shows Inline Toolbar if something selected\n */\n public mouseUp(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Open Toolbox to leaf Tools\n * @param {KeyboardEvent} event\n */\n public tabPressed(event): void {\n\n const {currentBlock} = this.Editor.BlockManager;\n\n /** Prevent Default behaviour */\n event.preventDefault();\n event.stopPropagation();\n\n /** this property defines leaf direction */\n const shiftKey = event.shiftKey,\n direction = shiftKey ? 'left' : 'right';\n\n /**\n * Don't show Plus and Toolbox near not-inital Tools\n */\n if (!this.Editor.Tools.isInitial(currentBlock.tool)) {\n return;\n }\n\n if (currentBlock.isEmpty) {\n if (!this.Editor.Toolbar.opened) {\n this.Editor.Toolbar.open(false , false);\n this.Editor.Toolbar.plusButton.show();\n }\n\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\n }\n\n /**\n * Escape pressed\n * @param event\n */\n public escapePressed(event): void { }\n\n /**\n * Add drop target styles\n *\n * @param {DragEvent} e\n */\n public dragOver(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node);\n\n block.dropTarget = true;\n }\n\n /**\n * Remove drop target style\n *\n * @param {DragEvent} e\n */\n public dragLeave(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node);\n\n block.dropTarget = false;\n }\n\n /**\n * ENTER pressed on block\n * @param {KeyboardEvent} event - keydown\n */\n private enter(event: KeyboardEvent): void {\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.available[currentBlock.name];\n\n /**\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\n return;\n }\n\n /**\n * Allow to create linebreaks by Shift+Enter\n */\n if (event.shiftKey) {\n return;\n }\n /**\n * Split the Current Block into two blocks\n * Renew local current node after split\n */\n const newCurrent = this.Editor.BlockManager.split();\n\n this.Editor.Caret.setToBlock(newCurrent);\n\n /**\n * If new Block is empty\n */\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\n /**\n * Show Toolbar\n */\n this.Editor.Toolbar.open(false);\n\n /**\n * Show Plus Button\n */\n this.Editor.Toolbar.plusButton.show();\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handle backspace keydown on Block\n * @param {KeyboardEvent} event - keydown\n */\n private backspace(event: KeyboardEvent): void {\n const { BlockManager, BlockSelection, Caret } = this.Editor;\n const currentBlock = BlockManager.currentBlock;\n const tool = this.Editor.Tools.available[currentBlock.name];\n\n /**\n * Check if Block should be removed by current Backspace keydown\n */\n if (currentBlock.selected || BlockManager.currentBlock.isEmpty) {\n if (BlockSelection.allBlocksSelected) {\n this.removeAllBlocks();\n } else {\n this.removeCurrentBlock();\n }\n\n /** Clear selection */\n BlockSelection.clearSelection();\n return;\n }\n\n /**\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n const isFirstBlock = BlockManager.currentBlockIndex === 0;\n const canMergeBlocks = Caret.isAtStart && !isFirstBlock;\n\n if (canMergeBlocks) {\n /**\n * preventing browser default behaviour\n */\n event.preventDefault();\n\n /**\n * Merge Blocks\n */\n this.mergeBlocks();\n }\n }\n\n /**\n * remove all selected Blocks\n */\n private removeAllBlocks(): boolean {\n const { BlockManager } = this.Editor;\n\n BlockManager.removeAllBlocks();\n return true;\n }\n\n /**\n * remove current Block and sets Caret to the correct position\n */\n private removeCurrentBlock(): boolean {\n const { BlockManager, Caret } = this.Editor;\n\n /** If current Block is empty just remove this Block */\n BlockManager.removeBlock();\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n * After BlockManager removes the Block (which is current now),\n * pointer that references to the current Block, now points to the Next\n */\n if (BlockManager.currentBlockIndex === 0) {\n Caret.setToBlock(BlockManager.currentBlock);\n } else {\n Caret.setToBlock(BlockManager.previousBlock, CaretClass.positions.END);\n }\n\n this.Editor.Toolbar.close();\n return true;\n }\n\n /**\n * Merge current and previous Blocks if they have the same type\n */\n private mergeBlocks() {\n const { BlockManager, Caret, Toolbar } = this.Editor;\n const targetBlock = BlockManager.getBlockByIndex(BlockManager.currentBlockIndex - 1),\n blockToMerge = BlockManager.currentBlock;\n\n /**\n * Blocks that can be merged:\n * 1) with the same Name\n * 2) Tool has 'merge' method\n *\n * other case will handle as usual ARROW LEFT behaviour\n */\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\n if (Caret.navigatePrevious()) {\n Toolbar.close();\n }\n\n return;\n }\n\n Caret.createShadow(targetBlock.pluginsContent);\n BlockManager.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n Caret.restoreCaret(targetBlock.pluginsContent as HTMLElement);\n targetBlock.pluginsContent.normalize();\n Toolbar.close();\n });\n }\n\n /**\n * Handle right and down keyboard keys\n */\n private arrowRightAndDown(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigateNext()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Handle left and up keyboard keys\n */\n private arrowLeftAndUp(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigatePrevious()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Default keydown handler\n */\n private defaultHandler(): void {}\n\n /**\n * Cases when we need to close Toolbar\n */\n private needToolbarClosing(event) {\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\n\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\n }\n\n}\n","/**\n * @class BlockManager\n * @classdesc Manage editor`s blocks storage and appearance\n *\n * @module BlockManager\n *\n * @version 2.0.0\n */\nimport Block from '../block';\nimport Module from '../__module';\nimport $ from '../dom';\nimport _ from '../utils';\nimport Blocks from '../blocks';\nimport {BlockTool, BlockToolConstructable, BlockToolData, PasteEvent, ToolConfig} from '../../../types';\nimport Caret from './caret';\n\n/**\n * @typedef {BlockManager} BlockManager\n * @property {Number} currentBlockIndex - Index of current working block\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\n */\nexport default class BlockManager extends Module {\n\n /**\n * returns last Block\n * @return {Block}\n */\n public get lastBlock(): Block {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n public get currentBlock(): Block {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n public get nextBlock(): Block {\n const isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\n\n if (isLastBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex + 1];\n }\n\n /**\n * Return first Block with inputs after current Block\n *\n * @returns {Block | undefined}\n */\n public get nextContentfulBlock(): Block {\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\n\n return nextBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Return first Block with inputs before current Block\n *\n * @returns {Block | undefined}\n */\n public get previousContentfulBlock(): Block {\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\n\n return previousBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Returns previous Block instance\n * @return {Block|null}\n */\n public get previousBlock(): Block {\n const isFirstBlock = this.currentBlockIndex === 0;\n\n if (isFirstBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex - 1];\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n public get blocks(): Block[] {\n return this._blocks.array;\n }\n\n /**\n * Index of current working block\n *\n * @type {number}\n */\n public currentBlockIndex: number = -1;\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n private _blocks: Blocks = null;\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n public async prepare() {\n const blocks = new Blocks(this.Editor.UI.nodes.redactor);\n\n /**\n * We need to use Proxy to overload set/get [] operator.\n * So we can use array-like syntax to access blocks\n *\n * @example\n * this._blocks[0] = new Block(...);\n *\n * block = this._blocks[0];\n *\n * @todo proxy the enumerate method\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = new Proxy(blocks, {\n set: Blocks.set,\n get: Blocks.get,\n });\n }\n\n /**\n * Creates Block instance by tool name\n *\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\n * @param {Object} data - constructor params\n * @param {Object} settings - block settings\n *\n * @return {Block}\n */\n public composeBlock(toolName: string, data: BlockToolData = {}, settings: ToolConfig = {}): Block {\n const toolInstance = this.Editor.Tools.construct(toolName, data) as BlockTool;\n const toolClass = this.Editor.Tools.available[toolName] as BlockToolConstructable;\n const block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n\n return block;\n }\n\n /**\n * Insert new block into _blocks\n *\n * @param {String} toolName — plugin name, by default method inserts initial block type\n * @param {Object} data — plugin data\n * @param {Object} settings - default settings\n *\n * @return {Block}\n */\n public insert(\n toolName: string = this.config.initialBlock,\n data: BlockToolData = {},\n settings: ToolConfig = {},\n ): Block {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n const newIndex = ++this.currentBlockIndex;\n const block = this.composeBlock(toolName, data, settings);\n\n this._blocks[newIndex] = block;\n return block;\n }\n\n /**\n * Insert pasted content. Call onPaste callback after insert.\n *\n * @param {string} toolName\n * @param {PasteEvent} pasteEvent - pasted data\n * @param {boolean} replace - should replace current block\n */\n public paste(\n toolName: string,\n pasteEvent: PasteEvent,\n replace: boolean = false,\n ): Block {\n let block;\n\n if (replace) {\n block = this.replace(toolName);\n } else {\n block = this.insert(toolName);\n }\n\n try {\n block.call('onPaste', pasteEvent);\n } catch (e) {\n _.log(`${toolName}: onPaste callback call is failed`, 'error', e);\n }\n return block;\n }\n\n /**\n * Always inserts at the end\n * @return {Block}\n */\n public insertAtEnd(): Block {\n /**\n * Define new value for current block index\n */\n this.currentBlockIndex = this.blocks.length - 1;\n\n /**\n * Insert initial typed block\n */\n return this.insert();\n }\n\n /**\n * Merge two blocks\n * @param {Block} targetBlock - previous block will be append to this block\n * @param {Block} blockToMerge - block that will be merged with target block\n *\n * @return {Promise} - the sequence that can be continued\n */\n public async mergeBlocks(targetBlock: Block, blockToMerge: Block): Promise {\n const blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n if (blockToMerge.isEmpty) {\n return;\n }\n\n const blockToMergeData = await blockToMerge.data;\n\n await targetBlock.mergeWith(blockToMergeData);\n\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n public removeBlock(index?: number): void {\n if (!index) {\n index = this.currentBlockIndex;\n }\n this._blocks.remove(index);\n\n /**\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\n */\n if (!this.blocks.length) {\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n }\n\n /**\n * Attention!\n * After removing insert new initial typed Block and focus on it\n * Removes all blocks\n */\n public removeAllBlocks(): void {\n for (let index = this.blocks.length - 1; index >= 0; index--) {\n this._blocks.remove(index);\n }\n\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n\n /**\n * Split current Block\n * 1. Extract content from Caret position to the Block`s end\n * 2. Insert a new Block below current one with extracted content\n *\n * @return {Block}\n */\n public split(): Block {\n const extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition();\n const wrapper = $.make('div');\n\n wrapper.append(extractedFragment as DocumentFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n const data = {\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\n };\n\n /**\n * Renew current Block\n * @type {Block}\n */\n return this.insert(this.config.initialBlock, data);\n }\n\n /**\n * Replace current working block\n *\n * @param {String} toolName — plugin name\n * @param {Object} data — plugin data\n *\n * @return {Block}\n */\n public replace(toolName: string, data: BlockToolData = {}): Block {\n const block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n public getBlockByIndex(index): Block {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n public getBlock(element: HTMLElement): Block {\n if (!$.isElement(element)) {\n element = element.parentNode as HTMLElement;\n }\n\n const nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock as HTMLElement);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n public highlightCurrentNode(): void {\n /**\n * Remove previous selected Block's state\n */\n this.clearFocused();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.focused = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n public clearFocused(): void {\n this.blocks.forEach( (block) => block.focused = false);\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Node} childNode - look ahead from this node.\n * @param {string} caretPosition - position where to set caret\n * @throws Error - when passed Node is not included at the Block\n */\n public setCurrentBlockByChildNode(childNode: Node, caretPosition: string = Caret.positions.DEFAULT): void {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const parentFirstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock as HTMLElement);\n\n this.Editor.Caret.setToInput(childNode as HTMLElement, caretPosition);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Return block which contents passed node\n *\n * @param {Node} childNode\n * @return {Block}\n */\n public getBlockByChildNode(childNode: Node): Block {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const firstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n return this.blocks.find((block) => block.holder === firstLevelBlock);\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n public swap(fromIndex, toIndex): void {\n /** Move up current Block */\n this._blocks.swap(fromIndex, toIndex);\n\n /** Now actual block moved up so that current block index decreased */\n this.currentBlockIndex = toIndex;\n }\n\n /**\n * Sets current Block Index -1 which means unknown\n * and clear highlightings\n */\n public dropPointer(): void {\n this.currentBlockIndex = -1;\n this.clearFocused();\n }\n\n /**\n * Clears Editor\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\n * we don't need to add empty initial block\n * 2) in api.blocks.clear we should add empty block\n */\n public clear(needAddInitialBlock: boolean = false): void {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n private bindEvents(block: Block): void {\n const {BlockEvents, Listeners} = this.Editor;\n\n Listeners.on(block.holder, 'keydown', (event) => BlockEvents.keydown(event as KeyboardEvent), true);\n Listeners.on(block.holder, 'mouseup', (event) => BlockEvents.mouseUp(event));\n Listeners.on(block.holder, 'keyup', (event) => BlockEvents.keyup(event));\n Listeners.on(block.holder, 'dragover', (event) => BlockEvents.dragOver(event as DragEvent));\n Listeners.on(block.holder, 'dragleave', (event) => BlockEvents.dragLeave(event as DragEvent));\n }\n}\n","/**\n * @class BlockSelection\n * @classdesc Manages Block selection with shortcut CMD+A and with mouse\n *\n * @module BlockSelection\n * @version 1.0.0\n */\nimport Module from '../__module';\nimport _ from '../utils';\nimport $ from '../dom';\n\nimport SelectionUtils from '../selection';\n\nexport default class BlockSelection extends Module {\n\n /**\n * Sanitizer Config\n * @return {SanitizerConfig}\n */\n private get sanitizerConfig() {\n return {\n p: {},\n h1: {},\n h2: {},\n h3: {},\n h4: {},\n h5: {},\n h6: {},\n ol: {},\n ul: {},\n li: {},\n br: true,\n img: {\n src: true,\n width: true,\n height: true,\n },\n a: {\n href: true,\n },\n b: {},\n i: {},\n u: {},\n };\n }\n\n /**\n * Flag used to define block selection\n * First CMD+A defines it as true and then second CMD+A selects all Blocks\n * @type {boolean}\n */\n private needToSelectAll: boolean = false;\n\n /**\n * SelectionUtils instance\n * @type {SelectionUtils}\n */\n private selection: SelectionUtils;\n\n /**\n * Flag that identifies all Blocks selection\n * @return {boolean}\n */\n public get allBlocksSelected(): boolean {\n const { BlockManager } = this.Editor;\n\n return BlockManager.blocks.every( (block) => block.selected === true);\n }\n\n /**\n * Set selected all blocks\n * @param {boolean} state\n */\n public set allBlocksSelected(state: boolean) {\n const { BlockManager } = this.Editor;\n\n BlockManager.blocks.forEach( (block) => block.selected = state);\n }\n\n /**\n * Module Preparation\n * Registers Shortcuts CMD+A and CMD+C\n * to select all and copy them\n */\n public prepare(): void {\n const { Shortcuts } = this.Editor;\n\n /** Selection shortcut */\n Shortcuts.add({\n name: 'CMD+A',\n handler: (event) => {\n this.handleCommandA(event);\n },\n });\n\n /** shortcut to copy all selected blocks */\n Shortcuts.add({\n name: 'CMD+C',\n handler: (event) => {\n this.handleCommandC(event);\n },\n });\n\n this.selection = new SelectionUtils();\n }\n\n /**\n * Clear selection from Blocks\n */\n public clearSelection(restoreSelection = false) {\n const { BlockManager } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\n\n this.allBlocksSelected = false;\n this.needToSelectAll = false;\n\n if (!anyBlockSelected) {\n return;\n }\n\n /**\n * restore selection when Block is already selected\n * but someone tries to write something.\n */\n if (restoreSelection) {\n this.selection.restore();\n }\n }\n\n /**\n * First CMD+A Selects current focused blocks,\n * and consequent second CMD+A keypress selects all blocks\n *\n * @param {keydown} event\n */\n private handleCommandA(event): void {\n /** Prevent default selection */\n event.preventDefault();\n\n if (this.needToSelectAll) {\n this.selectAllBlocks();\n this.needToSelectAll = false;\n } else {\n this.selectBlockByIndex();\n this.needToSelectAll = true;\n }\n }\n\n /**\n * Copying selected blocks\n * Before putting to the clipboard we sanitize all blocks and then copy to the clipboard\n *\n * @param event\n */\n private handleCommandC(event): void {\n const { BlockManager, Sanitizer } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\n\n if (!anyBlockSelected) {\n return;\n }\n\n const fakeClipboard = $.make('div');\n\n BlockManager.blocks.filter( (block) => block.selected )\n .forEach( (block) => {\n /**\n * Make

    tag that holds clean HTML\n */\n const cleanHTML = Sanitizer.clean(block.holder.innerHTML, this.sanitizerConfig);\n const fragment = $.make('p');\n\n fragment.innerHTML = cleanHTML;\n fakeClipboard.appendChild(fragment);\n });\n\n _.copyTextToClipboard(fakeClipboard.innerHTML);\n }\n\n /**\n * Select All Blocks\n * Each Block has selected setter that makes Block copyable\n */\n private selectAllBlocks() {\n const { BlockManager } = this.Editor;\n\n this.allBlocksSelected = true;\n }\n\n /**\n * select Block\n * @param {number?} index - Block index according to the BlockManager's indexes\n */\n private selectBlockByIndex(index?) {\n const { BlockManager } = this.Editor;\n\n /**\n * Remove previous focused Block's state\n */\n BlockManager.clearFocused();\n\n let block;\n\n if (isNaN(index)) {\n block = BlockManager.currentBlock;\n } else {\n block = BlockManager.getBlockByIndex(index);\n }\n\n /** Save selection */\n this.selection.save();\n SelectionUtils.get()\n .removeAllRanges();\n\n block.selected = true;\n }\n}\n","/**\n * @class Caret\n * @classdesc Contains methods for working Caret\n *\n * Uses Range methods to manipulate with caret\n *\n * @module Caret\n *\n * @version 2.0.0\n */\n\nimport Selection from '../selection';\nimport Module from '../__module';\nimport Block from '../block';\nimport $ from '../dom';\nimport _ from '../utils';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n public static get positions(): {START: string, END: string, DEFAULT: string} {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default',\n };\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n private static get CSS(): {shadowCaret: string} {\n return {\n shadowCaret: 'cdx-shadow-caret',\n };\n }\n\n /**\n * Get's deepest first node and checks if offset is zero\n * @return {boolean}\n */\n public get isAtStart(): boolean {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n const selection = Selection.get(),\n anchorNode = selection.anchorNode,\n firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(firstNode)) {\n return (firstNode as HTMLInputElement).selectionEnd === 0;\n }\n\n /**\n * Workaround case when caret in the text like \" |Hello!\"\n * selection.anchorOffset is 1, but real caret visible position is 0\n * @type {number}\n */\n let firstLetterPosition = anchorNode.textContent.search(/\\S/);\n\n if (firstLetterPosition === -1) { // empty text\n firstLetterPosition = 0;\n }\n\n /**\n * In case of\n *

    \n */\n if ($.isEmpty(firstNode)) {\n const leftSiblings = this.getHigherLevelSiblings(anchorNode as HTMLElement, 'left'),\n nothingAtLeft = leftSiblings.every( (node) => $.isEmpty(node) );\n\n if (nothingAtLeft && selection.anchorOffset === firstLetterPosition) {\n return true;\n }\n }\n\n /**\n * We use <= comparison for case:\n * \"| Hello\" <--- selection.anchorOffset is 0, but firstLetterPosition is 1\n */\n return firstNode === null || anchorNode === firstNode && selection.anchorOffset <= firstLetterPosition;\n }\n\n /**\n * Get's deepest last node and checks if offset is last node text length\n * @return {boolean}\n */\n public get isAtEnd(): boolean {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n const selection = Selection.get(),\n anchorNode = selection.anchorNode,\n lastNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput, true);\n\n /** In case lastNode is native input */\n if ($.isNativeInput(lastNode)) {\n return (lastNode as HTMLInputElement).selectionEnd === (lastNode as HTMLInputElement).value.length;\n }\n\n /**\n * In case of\n *
    \n * adaddad| <-- anchor node\n *

    <-- first (and deepest) node is \n *
    \n */\n if ($.isEmpty(lastNode)) {\n const leftSiblings = this.getHigherLevelSiblings(anchorNode as HTMLElement, 'right'),\n nothingAtRight = leftSiblings.every( (node) => $.isEmpty(node) );\n\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\n return true;\n }\n }\n\n /**\n * Workaround case:\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\n * Why not regular .trim():\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\n */\n const rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\n\n /**\n * We use >= comparison for case:\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\n */\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\n }\n\n /**\n * Method gets Block instance and puts caret to the text node with offset\n * There two ways that method applies caret position:\n * - first found text node: sets at the beginning, but you can pass an offset\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\n *\n * @param {Block} block - Block class\n * @param {String} position - position where to set caret.\n * If default - leave default behaviour and apply offset if it's passed\n * @param {Number} offset - caret offset regarding to the text node\n */\n public setToBlock(block: Block, position: string = Caret.positions.DEFAULT, offset: number = 0): void {\n const {BlockManager} = this.Editor;\n let element;\n\n switch (position) {\n case Caret.positions.START:\n element = block.firstInput;\n break;\n case Caret.positions.END:\n element = block.lastInput;\n break;\n default:\n element = block.currentInput;\n }\n\n if (!element) {\n return;\n }\n\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\n const contentLength = $.getContentLength(nodeToSet);\n\n switch (true) {\n case position === Caret.positions.START:\n offset = 0;\n break;\n case position === Caret.positions.END:\n case offset > contentLength:\n offset = contentLength;\n break;\n }\n\n /**\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\n */\n _.delay( () => {\n this.set(nodeToSet as HTMLElement, offset);\n }, 20)();\n\n BlockManager.setCurrentBlockByChildNode(block.holder);\n BlockManager.currentBlock.currentInput = element;\n }\n\n /**\n * Set caret to the current input of current Block.\n *\n * @param {HTMLElement} input - input where caret should be set\n * @param {String} position - position of the caret.\n * If default - leave default behaviour and apply offset if it's passed\n * @param {number} offset - caret offset regarding to the text node\n */\n public setToInput(input: HTMLElement, position: string = Caret.positions.DEFAULT, offset: number = 0): void {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet as HTMLElement, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet as HTMLElement, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet as HTMLElement, offset);\n }\n }\n\n currentBlock.currentInput = input;\n }\n\n /**\n * Creates Document Range and sets caret to the element with offset\n * @param {HTMLElement} element - target node.\n * @param {Number} offset - offset\n */\n public set(element: HTMLElement, offset: number = 0): void {\n const range = document.createRange(),\n selection = Selection.get();\n\n /** if found deepest node is native input */\n if ($.isNativeInput(element)) {\n element.focus();\n (element as HTMLInputElement).selectionStart = (element as HTMLInputElement).selectionEnd = offset;\n return;\n }\n\n range.setStart(element, offset);\n range.setEnd(element, offset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n /** If new cursor position is not visible, scroll to it */\n const {top, bottom} = range.getBoundingClientRect();\n const {innerHeight} = window;\n\n if (top < 0) { window.scrollBy(0, top); }\n if (bottom > innerHeight) { window.scrollBy(0, bottom - innerHeight); }\n }\n /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n public setToTheLastBlock(): void {\n const lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) {\n return;\n }\n\n /**\n * If last block is empty and it is an initialBlock, set to that.\n * Otherwise, append new empty block and set to that\n */\n if (lastBlock.isEmpty) {\n this.setToBlock(lastBlock);\n } else {\n const newBlock = this.Editor.BlockManager.insertAtEnd();\n\n this.setToBlock(newBlock);\n }\n }\n\n /**\n * Extract content fragment of current Block from Caret position to the end of the Block\n */\n public extractFragmentFromCaretPosition(): void|DocumentFragment {\n const selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n const range = selectRange.cloneRange();\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\n }\n\n /**\n * Set's caret to the next Block or Tool`s input\n * Before moving caret, we should check if caret position is at the end of Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the end\n *\n * @return {Boolean}\n */\n public navigateNext(force: boolean = false): boolean {\n const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;\n const {nextInput} = currentBlock;\n\n if (!nextContentfulBlock && !nextInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n return true;\n }\n\n if (this.isAtEnd) {\n /** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */\n if (!nextInput) {\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\n } else {\n this.setToInput(nextInput, Caret.positions.START);\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * Set's caret to the previous Tool`s input or Block\n * Before moving caret, we should check if caret position is start of the Plugins node\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\n *\n * @param {Boolean} force - force navigation even if caret is not at the start\n *\n * @return {Boolean}\n */\n public navigatePrevious(force: boolean = false): boolean {\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\n\n if (!currentBlock) {\n return false;\n }\n\n const {previousInput} = currentBlock;\n\n if (!previousContentfulBlock && !previousInput) {\n return false;\n }\n\n if (force) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n return true;\n }\n\n if (this.isAtStart) {\n /** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */\n if (!previousInput) {\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\n } else {\n this.setToInput(previousInput, Caret.positions.END);\n }\n return true;\n }\n\n return false;\n }\n\n /**\n * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n public createShadow(element): void {\n const shadowCaret = document.createElement('span');\n\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\n element.insertAdjacentElement('beforeEnd', shadowCaret);\n }\n\n /**\n * Restores caret position\n * @param {HTMLElement} element\n */\n public restoreCaret(element: HTMLElement): void {\n const shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\n\n if (!shadowCaret) {\n return;\n }\n\n /**\n * After we set the caret to the required place\n * we need to clear shadow caret\n *\n * - make new range\n * - select shadowed span\n * - use extractContent to remove it from DOM\n */\n const sel = new Selection();\n\n sel.expandToTag(shadowCaret as HTMLElement);\n\n setTimeout(() => {\n const newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\n\n /**\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\n * Then you can check it for emptiness\n *\n * @example\n *
    \n *\n * @return {Element[]}\n */\n private getHigherLevelSiblings(from: HTMLElement, direction?: string): HTMLElement[] {\n let current = from;\n const siblings = [];\n\n /**\n * Find passed node's firs-level parent (in example - blockquote)\n */\n while (current.parentNode && (current.parentNode as HTMLElement).contentEditable !== 'true') {\n current = current.parentNode as HTMLElement;\n }\n\n const sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\n\n /**\n * Find all left/right siblings\n */\n while (current[sibling]) {\n current = current[sibling] as HTMLElement;\n siblings.push(current);\n }\n\n return siblings;\n }\n}\n","import SelectionUtils from '../selection';\n\nimport Module from '../__module';\nimport Caret from './caret';\n\nexport default class DragNDrop extends Module {\n\n /**\n * If drag has been started at editor, we save it\n *\n * @type Boolean\n * @private\n */\n private isStartedAtEditor = false;\n\n /**\n * Bind events\n *\n * @private\n */\n public prepare(): void {\n this.bindEvents();\n }\n\n /**\n * Add drag events listeners to editor zone\n * @private\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\n\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\n this.isStartedAtEditor = true;\n }\n\n this.Editor.InlineToolbar.close();\n });\n\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\n }\n\n /**\n * Handle drop event\n *\n * @param {DragEvent} dropEvent\n */\n private processDrop = async (dropEvent: DragEvent): Promise => {\n const {\n BlockManager,\n Paste,\n } = this.Editor;\n\n dropEvent.preventDefault();\n\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\n document.execCommand('delete');\n }\n\n this.isStartedAtEditor = false;\n\n /**\n * Try to set current block by drop target.\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\n */\n try {\n BlockManager.setCurrentBlockByChildNode(dropEvent.target as Node, Caret.positions.END);\n } catch (e) {\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, Caret.positions.END);\n }\n\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\n }\n}\n","import Module from '../__module';\n\n/**\n * @module eventDispatcher\n *\n * Has two important methods:\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\n * - {Function} emit - fires all subscribers with data\n * - {Function off - unsubsribes callback\n *\n * @version 1.0.0\n *\n * @typedef {Events} Events\n * @property {Object} subscribers - all subscribers grouped by event name\n */\nexport default class Events extends Module {\n\n /**\n * Object with events` names as key and array of callback functions as value\n * @type {{}}\n */\n private subscribers: {[name: string]: Array<(data?: any) => any>} = {};\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n public on(eventName: string, callback: (data: any) => any) {\n if (!(eventName in this.subscribers)) {\n this.subscribers[eventName] = [];\n }\n\n // group by events\n this.subscribers[eventName].push(callback);\n }\n\n /**\n * Emit callbacks with passed data\n *\n * @param {String} eventName - event name\n * @param {Object} data - subscribers get this data when they were fired\n */\n public emit(eventName: string, data?: any): void {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce((previousData, currentHandler) => {\n const newData = currentHandler(previousData);\n\n return newData ? newData : previousData;\n }, data);\n }\n\n /**\n * Unsubsribe callback from event\n *\n * @param eventName\n * @param callback\n */\n public off(eventName: string, callback: (data: any) => void): void {\n for (let i = 0; i < this.subscribers[eventName].length; i++) {\n if (this.subscribers[eventName][i] === callback) {\n delete this.subscribers[eventName][i];\n break;\n }\n }\n }\n\n /**\n * Destroyer\n * clears subsribers list\n */\n public destroy(): void {\n this.subscribers = null;\n }\n}\n","import Module from '../__module';\nimport {EditorConfig} from '../../../types';\n\n/**\n * Event listener information\n */\nexport interface ListenerData {\n /**\n * Element where to listen to dispatched events\n */\n element: EventTarget;\n\n /**\n * Event to listen\n */\n eventType: string;\n\n /**\n * Event handler\n *\n * @param {Event} event\n */\n handler: (event: Event) => void;\n\n /**\n * Should event bubbling be used or not\n */\n useCapture: boolean;\n}\n\n/**\n * Codex Editor Listeners module\n *\n * @module Listeners\n *\n * Module-decorator for event listeners assignment\n *\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Listeners} Listeners\n * @property {Array} allListeners\n */\nexport default class Listeners extends Module {\n\n /**\n * Stores all listeners data to find/remove/process it\n * @type {ListenerData[]}\n */\n private allListeners: ListenerData[] = [];\n\n /**\n * Assigns event listener on element\n *\n * @param {EventTarget} element - DOM element that needs to be listened\n * @param {String} eventType - event type\n * @param {Function} handler - method that will be fired on event\n * @param {Boolean} useCapture - use event bubbling\n */\n public on(\n element: EventTarget,\n eventType: string,\n handler: (event: Event) => void,\n useCapture: boolean = false,\n ): void {\n const assignedEventData = {\n element,\n eventType,\n handler,\n useCapture,\n };\n\n const alreadyExist = this.findOne(element, eventType, handler);\n\n if (alreadyExist) { return; }\n\n this.allListeners.push(assignedEventData);\n element.addEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Removes event listener from element\n *\n * @param {EventTarget} element - DOM element that we removing listener\n * @param {String} eventType - event type\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\n * @param {Boolean} useCapture - use event bubbling\n */\n public off(\n element: EventTarget,\n eventType: string,\n handler: (event: Event) => void,\n useCapture: boolean = false,\n ): void {\n const existingListeners = this.findAll(element, eventType, handler);\n\n existingListeners.forEach((listener, i) => {\n const index = this.allListeners.indexOf(existingListeners[i]);\n\n if (index > 0) {\n this.allListeners.splice(index, 1);\n }\n });\n\n element.removeEventListener(eventType, handler, useCapture);\n }\n\n /**\n * @param {EventTarget} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {EventTarget|null}\n */\n public findOne(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData {\n const foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {EventTarget} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n public findAll(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData[] {\n let found;\n const foundByEventTargets = element ? this.findByEventTarget(element) : [];\n\n if (element && eventType && handler) {\n found = foundByEventTargets.filter( (event) => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByEventTargets.filter( (event) => event.eventType === eventType);\n } else {\n found = foundByEventTargets;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n public removeAll(): void {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n\n /**\n * Search method: looks for listener by passed element\n * @param {EventTarget} element - searching element\n * @returns {Array} listeners that found on element\n */\n private findByEventTarget(element: EventTarget): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.element === element) {\n return listener;\n }\n });\n }\n\n /**\n * Search method: looks for listener by passed event type\n * @param {String} eventType\n * @return {Array} listeners that found on element\n */\n private findByType(eventType: string): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.eventType === eventType) {\n return listener;\n }\n });\n }\n\n /**\n * Search method: looks for listener by passed handler\n * @param {Function} handler\n * @return {Array} listeners that found on element\n */\n private findByHandler(handler: (event: Event) => void): ListenerData[] {\n return this.allListeners.filter((listener) => {\n if (listener.handler === handler) {\n return listener;\n }\n });\n }\n}\n","/**\n * @module ModificationsObserver\n *\n * Handles any mutations\n * and gives opportunity to handle outside\n */\n\nimport Module from '../__module';\nimport _ from '../utils';\n\nexport default class ModificationsObserver extends Module {\n\n /**\n * Debounce Timer\n * @type {number}\n */\n public static readonly DebounceTimer = 450;\n\n /**\n * Used to prevent several mutation callback execution\n * @type {Function}\n */\n private mutationDebouncer = _.debounce( () => {\n this.config.onChange();\n }, ModificationsObserver.DebounceTimer);\n\n /**\n * Clear timeout and set null to mutationDebouncer property\n */\n public destroy() {\n this.mutationDebouncer = null;\n }\n\n /**\n * Preparation method\n * @return {Promise}\n */\n public async prepare(): Promise {\n /**\n * wait till Browser render Editor's Blocks\n */\n window.setTimeout( () => {\n this.setObserver();\n }, 1000);\n }\n\n /**\n * setObserver\n *\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\n * so that User can handle outside from API\n */\n private setObserver(): void {\n const {Listeners, UI} = this.Editor;\n\n /**\n * Set Listener to the Editor @@ -42,6 +42,7 @@ https://github.com/codex-editor/header#installation --> + @@ -94,7 +95,10 @@ image: { class: ImageTool, config: { - url: 'http://localhost:8008', + endpoints: { + byFile: 'http://localhost:8008/uploadFile', + byUrl: 'http://localhost:8008/fetchUrl', + }, }, inlineToolbar: ['link'], }, @@ -232,7 +236,7 @@ type: 'image', data: { file: { - url : 'https://ifmo.su/upload/redactor_images/o_e48549d1855c7fc1807308dd14990126.jpg', + url: 'https://ifmo.su/upload/redactor_images/o_e48549d1855c7fc1807308dd14990126.jpg', }, caption: '', stretched: false, diff --git a/example/tools/code b/example/tools/code index d0874d51..860d3046 160000 --- a/example/tools/code +++ b/example/tools/code @@ -1 +1 @@ -Subproject commit d0874d51fabb8f8881926306038079457f0db114 +Subproject commit 860d3046d0483046b9389d27e3a9c1ab51cf6b87 diff --git a/example/tools/embed b/example/tools/embed index f64378a2..af3d6545 160000 --- a/example/tools/embed +++ b/example/tools/embed @@ -1 +1 @@ -Subproject commit f64378a2f18ee69c66860a3e45d1e392417a4ca7 +Subproject commit af3d6545056ef07498363c9b160ad3e0df15bb0f diff --git a/example/tools/header b/example/tools/header index da319d47..a2568124 160000 --- a/example/tools/header +++ b/example/tools/header @@ -1 +1 @@ -Subproject commit da319d4757f1909d049f0f205be62ac08ef377f5 +Subproject commit a25681245f0fdbee1b4a01108e8384bff363a80f diff --git a/example/tools/image b/example/tools/image index 24a5fe20..e45da068 160000 --- a/example/tools/image +++ b/example/tools/image @@ -1 +1 @@ -Subproject commit 24a5fe205d55ab481233e60a8263f1433c316852 +Subproject commit e45da06890c453cb79c8aa88cf657ad988fcc1ca diff --git a/example/tools/list b/example/tools/list index f14f258b..c6b832e5 160000 --- a/example/tools/list +++ b/example/tools/list @@ -1 +1 @@ -Subproject commit f14f258b3d993e3b58db76f668d956134fcd813e +Subproject commit c6b832e5e4801f531011923a6c7340fb9a0067fa diff --git a/example/tools/marker b/example/tools/marker index 7642bb2b..99c37eb0 160000 --- a/example/tools/marker +++ b/example/tools/marker @@ -1 +1 @@ -Subproject commit 7642bb2b541e417307281849d24bc0cce6ff25e2 +Subproject commit 99c37eb07f9ed93551dd8ca2678f2ff740c6a15f diff --git a/example/tools/simple-image b/example/tools/simple-image index e970963a..d026d7d3 160000 --- a/example/tools/simple-image +++ b/example/tools/simple-image @@ -1 +1 @@ -Subproject commit e970963af843ac1b6131503545f0581325b33f37 +Subproject commit d026d7d36f1b20e24ea7990b4f629b5b3abb8791 diff --git a/example/tools/table b/example/tools/table index cfde1bc7..169bff33 160000 --- a/example/tools/table +++ b/example/tools/table @@ -1 +1 @@ -Subproject commit cfde1bc77e32ca884756f11832da282ba73b16b2 +Subproject commit 169bff33ddec03396f9b193de11b2adf03df7511 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index fda5b512..00000000 --- a/package-lock.json +++ /dev/null @@ -1,10378 +0,0 @@ -{ - "name": "codex.editor", - "version": "2.5.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/core": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz", - "integrity": "sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.6", - "@babel/helpers": "7.1.5", - "@babel/parser": "7.1.6", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6", - "convert-source-map": "1.6.0", - "debug": "4.1.0", - "json5": "2.1.0", - "lodash": "4.17.11", - "resolve": "1.8.1", - "semver": "5.6.0", - "source-map": "0.5.7" - } - }, - "@babel/generator": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz", - "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==", - "dev": true, - "requires": { - "@babel/types": "7.1.6", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "7.1.0", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/types": "7.1.6", - "lodash": "4.17.11" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, - "requires": { - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", - "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.6", - "lodash": "4.17.11" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-wrap-function": "7.1.0", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-replace-supers": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", - "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, - "requires": { - "@babel/template": "7.1.2", - "@babel/types": "7.1.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "7.1.6" - } - }, - "@babel/helper-wrap-function": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", - "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/helpers": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.5.tgz", - "integrity": "sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==", - "dev": true, - "requires": { - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - } - }, - "@babel/parser": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz", - "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz", - "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0", - "@babel/plugin-syntax-async-generators": "7.0.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz", - "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-json-strings": "7.0.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.0.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz", - "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz", - "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz", - "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz", - "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", - "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz", - "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz", - "integrity": "sha512-jlYcDrz+5ayWC7mxgpn1Wj8zj0mmjCT2w0mPIMSwO926eXBRxpEgoN/uQVRBfjtr8ayjcmS+xk2G1jaP8JjMJQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "lodash": "4.17.11" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz", - "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-define-map": "7.1.0", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "globals": "11.9.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz", - "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz", - "integrity": "sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz", - "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz", - "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz", - "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz", - "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz", - "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz", - "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz", - "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz", - "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-simple-access": "7.1.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz", - "integrity": "sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz", - "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", - "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz", - "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.1.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz", - "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "7.1.0", - "@babel/helper-get-function-arity": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", - "dev": true, - "requires": { - "regenerator-transform": "0.13.3" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz", - "integrity": "sha512-WFLMgzu5DLQEah0lKTJzYb14vd6UiES7PTnXcvrPZ1VrwFeJ+mTbvr65fFAsXYMt2bIoOoC0jk76zY1S7HZjUg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "resolve": "1.8.1", - "semver": "5.6.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz", - "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz", - "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", - "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz", - "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz", - "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", - "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - } - }, - "@babel/polyfill": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0.tgz", - "integrity": "sha512-dnrMRkyyr74CRelJwvgnnSUDh2ge2NCTyHVwpOdvRMHtJUyxLtMAfhBN3s64pY41zdw0kgiLPh6S20eb1NcX6Q==", - "dev": true, - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "@babel/preset-env": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.6.tgz", - "integrity": "sha512-YIBfpJNQMBkb6MCkjz/A9J76SNCSuGVamOVBgoUkLzpJD/z8ghHi9I42LQ4pulVX68N/MmImz6ZTixt7Azgexw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-proposal-async-generator-functions": "7.1.0", - "@babel/plugin-proposal-json-strings": "7.0.0", - "@babel/plugin-proposal-object-rest-spread": "7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "7.0.0", - "@babel/plugin-syntax-async-generators": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0", - "@babel/plugin-transform-arrow-functions": "7.0.0", - "@babel/plugin-transform-async-to-generator": "7.1.0", - "@babel/plugin-transform-block-scoped-functions": "7.0.0", - "@babel/plugin-transform-block-scoping": "7.1.5", - "@babel/plugin-transform-classes": "7.1.0", - "@babel/plugin-transform-computed-properties": "7.0.0", - "@babel/plugin-transform-destructuring": "7.1.3", - "@babel/plugin-transform-dotall-regex": "7.0.0", - "@babel/plugin-transform-duplicate-keys": "7.0.0", - "@babel/plugin-transform-exponentiation-operator": "7.1.0", - "@babel/plugin-transform-for-of": "7.0.0", - "@babel/plugin-transform-function-name": "7.1.0", - "@babel/plugin-transform-literals": "7.0.0", - "@babel/plugin-transform-modules-amd": "7.1.0", - "@babel/plugin-transform-modules-commonjs": "7.1.0", - "@babel/plugin-transform-modules-systemjs": "7.1.3", - "@babel/plugin-transform-modules-umd": "7.1.0", - "@babel/plugin-transform-new-target": "7.0.0", - "@babel/plugin-transform-object-super": "7.1.0", - "@babel/plugin-transform-parameters": "7.1.0", - "@babel/plugin-transform-regenerator": "7.0.0", - "@babel/plugin-transform-shorthand-properties": "7.0.0", - "@babel/plugin-transform-spread": "7.0.0", - "@babel/plugin-transform-sticky-regex": "7.0.0", - "@babel/plugin-transform-template-literals": "7.0.0", - "@babel/plugin-transform-typeof-symbol": "7.0.0", - "@babel/plugin-transform-unicode-regex": "7.0.0", - "browserslist": "4.3.4", - "invariant": "2.2.4", - "js-levenshtein": "1.1.4", - "semver": "5.6.0" - } - }, - "@babel/register": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0.tgz", - "integrity": "sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g==", - "dev": true, - "requires": { - "core-js": "2.5.7", - "find-cache-dir": "1.0.0", - "home-or-tmp": "3.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "pirates": "4.0.0", - "source-map-support": "0.5.9" - } - }, - "@babel/runtime": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.5.tgz", - "integrity": "sha512-xKnPpXG/pvK1B90JkwwxSGii90rQGKtzcMt2gI5G6+M0REXaq6rOHsGC2ay6/d0Uje7zzvSzjEzfR3ENhFlrfA==", - "dev": true, - "requires": { - "regenerator-runtime": "0.12.1" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.1.6", - "@babel/types": "7.1.6" - } - }, - "@babel/traverse": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", - "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.6", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.1.6", - "@babel/types": "7.1.6", - "debug": "4.1.0", - "globals": "11.9.0", - "lodash": "4.17.11" - } - }, - "@babel/types": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz", - "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" - } - }, - "@codexteam/shortcuts": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/@codexteam/shortcuts/-/shortcuts-1.0.0.tgz", - "integrity": "sha512-G7047f4qHnPtft2Gj7RsjJdXat/XXswUPjIGPHyHZeoARyIZTfX4/yTkgA3oDXvjFoC4cWN2+mKDDMdOET9/GQ==", - "dev": true - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", - "dev": true - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "@types/anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha512-7WcbyctkE8GTzogDb0ulRAEw7v8oIS54ft9mQTU7PfM0hp5e+8kpa+HeQ7IQrFbKtJXBKcZ4bh+Em9dTw5L6AQ==", - "dev": true - }, - "@types/node": { - "version": "10.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz", - "integrity": "sha512-8xZEYckCbUVgK8Eg7lf5Iy4COKJ5uXlnIOnePN0WUwSQggy9tolM+tDJf7wMOnT/JT/W9xDYIaYggt3mRV2O5w==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.4.tgz", - "integrity": "sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.4.tgz", - "integrity": "sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ==", - "dev": true, - "requires": { - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.4.19.tgz", - "integrity": "sha512-vO/PuQ9iF9Gy8spN8RUUjt5reu9Z+Tb7iWxeAopCmXaIZaIsOgtY5U6UE2ELlcRUBO1HbNWhy+lQE9G92IJcmQ==", - "dev": true, - "requires": { - "@types/anymatch": "1.3.0", - "@types/node": "10.12.10", - "@types/tapable": "1.0.4", - "@types/uglify-js": "3.0.4", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack-env": { - "version": "1.13.6", - "resolved": "http://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.6.tgz", - "integrity": "sha512-5Th3OsZ4gTRdr9Mho83BQ23cex4sRhOR4XTG+m+cJc0FhtUBK9Vn62hBJ+pnQYnSxoPOsKoAPOx6FcphxBC8ng==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.8.tgz", - "integrity": "sha512-dOrtdtEyB8sInpl75yLPNksY4sRl0j/+t6aHyB/YA+ab9hV3Fo7FmG12FHzP+2MvWVAJtDb+6eXR5EZbZJ+uVg==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.8", - "@webassemblyjs/helper-wasm-bytecode": "1.7.8", - "@webassemblyjs/wast-parser": "1.7.8" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.8.tgz", - "integrity": "sha512-kn2zNKGsbql5i56VAgRYkpG+VazqHhQQZQycT2uXAazrAEDs23gy+Odkh5VblybjnwX2/BITkDtNmSO76hdIvQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.8.tgz", - "integrity": "sha512-xUwxDXsd1dUKArJEP5wWM5zxgCSwZApSOJyP1XO7M8rNUChUDblcLQ4FpzTpWG2YeylMwMl1MlP5Ztryiz1x4g==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.8.tgz", - "integrity": "sha512-WXiIMnuvuwlhWvVOm8xEXU9DnHaa3AgAU0ZPfvY8vO1cSsmYb2WbGbHnMLgs43vXnA7XAob9b56zuZaMkxpCBg==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.8.tgz", - "integrity": "sha512-TLQxyD9qGOIdX5LPQOPo0Ernd88U5rHkFb8WAjeMIeA0sPjCHeVPaGqUGGIXjUcblUkjuDAc07bruCcNHUrHDA==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.8" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.8.tgz", - "integrity": "sha512-TjK0CnD8hAPkV5mbSp5aWl6SO1+H3WFcjWtixWoy8EMA99YnNzYhpc/WSYWhf7yrhpzkq5tZB0tvLK3Svr3IXA==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.8.tgz", - "integrity": "sha512-uCutAKR7Nm0VsFixcvnB4HhAyHouNbj0Dx1p7eRjFjXGGZ+N7ftTaG1ZbWCasAEbtwGj54LP8+lkBZdTCPmLGg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.8.tgz", - "integrity": "sha512-AdCCE3BMW6V34WYaKUmPgVHa88t2Z14P4/0LjLwuGkI0X6pf7nzp0CehzVVk51cKm2ymVXjl9dCG+gR1yhITIQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.8.tgz", - "integrity": "sha512-BkBhYQuzyl4hgTGOKo87Vdw6f9nj8HhI7WYpI0MCC5qFa5ahrAPOGgyETVdnRbv+Rjukl9MxxfDmVcVC435lDg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-buffer": "1.7.8", - "@webassemblyjs/helper-wasm-bytecode": "1.7.8", - "@webassemblyjs/wasm-gen": "1.7.8" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.8.tgz", - "integrity": "sha512-tOarWChdG1a3y1yqCX0JMDKzrat5tQe4pV6K/TX19BcXsBLYxFQOL1DEDa5KG9syeyvCrvZ+i1+Mv1ExngvktQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.8.tgz", - "integrity": "sha512-GCYeGPgUFWJiZuP4NICbcyUQNxNLJIf476Ei+K+jVuuebtLpfvwkvYT6iTUE7oZYehhkor4Zz2g7SJ/iZaPudQ==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.8.tgz", - "integrity": "sha512-9X+f0VV+xNXW2ujfIRSXBJENGE6Qh7bNVKqu3yDjTFB3ar3nsThsGBBKdTG58aXOm2iUH6v28VIf88ymPXODHA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.8.tgz", - "integrity": "sha512-6D3Hm2gFixrfyx9XjSON4ml1FZTugqpkIz5Awvrou8fnpyprVzcm4X8pyGRtA2Piixjl3DqmX/HB1xdWyE097A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-buffer": "1.7.8", - "@webassemblyjs/helper-wasm-bytecode": "1.7.8", - "@webassemblyjs/helper-wasm-section": "1.7.8", - "@webassemblyjs/wasm-gen": "1.7.8", - "@webassemblyjs/wasm-opt": "1.7.8", - "@webassemblyjs/wasm-parser": "1.7.8", - "@webassemblyjs/wast-printer": "1.7.8" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.8.tgz", - "integrity": "sha512-a7O/wE6eBeVKKUYgpMK7NOHmMADD85rSXLe3CqrWRDwWff5y3cSVbzpN6Qv3z6C4hdkpq9qyij1Ga1kemOZGvQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-wasm-bytecode": "1.7.8", - "@webassemblyjs/ieee754": "1.7.8", - "@webassemblyjs/leb128": "1.7.8", - "@webassemblyjs/utf8": "1.7.8" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.8.tgz", - "integrity": "sha512-3lbQ0PT81NHCdi1sR/7+SNpZadM4qYcTSr62nFFAA7e5lFwJr14M1Gi+A/Y3PgcDWOHYjsaNGPpPU0H03N6Blg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-buffer": "1.7.8", - "@webassemblyjs/wasm-gen": "1.7.8", - "@webassemblyjs/wasm-parser": "1.7.8" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.8.tgz", - "integrity": "sha512-rZ/zlhp9DHR/05zh1MbAjT2t624sjrPP/OkJCjXqzm7ynH+nIdNcn9Ixc+qzPMFXhIrk0rBoQ3to6sEIvHh9jQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-api-error": "1.7.8", - "@webassemblyjs/helper-wasm-bytecode": "1.7.8", - "@webassemblyjs/ieee754": "1.7.8", - "@webassemblyjs/leb128": "1.7.8", - "@webassemblyjs/utf8": "1.7.8" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.8.tgz", - "integrity": "sha512-Q/zrvtUvzWuSiJMcSp90fi6gp2nraiHXjTV2VgAluVdVapM4gy1MQn7akja2p6eSBDQpKJPJ6P4TxRkghRS5dg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/floating-point-hex-parser": "1.7.8", - "@webassemblyjs/helper-api-error": "1.7.8", - "@webassemblyjs/helper-code-frame": "1.7.8", - "@webassemblyjs/helper-fsm": "1.7.8", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.8.tgz", - "integrity": "sha512-GllIthRtwTxRDAURRNXscu7Napzmdf1jt1gpiZiK/QN4fH0lSGs3OTmvdfsMNP7tqI4B3ZtfaaWRlNIQug6Xyg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/wast-parser": "1.7.8", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "5.7.3" - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.3" - } - }, - "any-promise": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", - "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "4.17.11" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000910", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000910", - "electron-to-chromium": "1.3.84" - } - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-loader": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", - "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", - "dev": true, - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" - } - }, - "babel-plugin-add-module-exports": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz", - "integrity": "sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw==", - "dev": true, - "requires": { - "chokidar": "2.0.4" - } - }, - "babel-plugin-class-display-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-class-display-name/-/babel-plugin-class-display-name-2.1.0.tgz", - "integrity": "sha1-GY/xK56r0z4BHuE/L5iYmFYItNE=", - "dev": true - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "bail": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", - "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", - "dev": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", - "dev": true - }, - "bluebird": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", - "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - } - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "browserslist": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz", - "integrity": "sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000910", - "electron-to-chromium": "1.3.84", - "node-releases": "1.0.4" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "3.5.3", - "chownr": "1.1.1", - "glob": "7.1.3", - "graceful-fs": "4.1.15", - "lru-cache": "4.1.4", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.1", - "y18n": "4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000910", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000910", - "electron-to-chromium": "1.3.84" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000910", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000910.tgz", - "integrity": "sha512-eysv5eAsXCBnfnhTZsKBtCZKdgeFaRqOlTN74kCfzdHdz0In3E5Aop7PyqPI757DsdjVwJOWrFHIrTPYzmll6g==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000910", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000910.tgz", - "integrity": "sha512-u/nxtHGAzCGZzIxt3dA/tpSPOcirBZFWKwz1EPz4aaupnBI2XR0Rbr74g0zc6Hzy41OEM4uMoZ38k56TpYAWjQ==", - "dev": true - }, - "ccount": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", - "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "character-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", - "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", - "dev": true - }, - "character-entities-html4": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz", - "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", - "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", - "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", - "dev": true - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "cheerio": { - "version": "0.19.0", - "resolved": "http://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", - "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", - "dev": true, - "requires": { - "css-select": "1.0.0", - "dom-serializer": "0.1.0", - "entities": "1.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.10.1" - }, - "dependencies": { - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" - }, - "dependencies": { - "entities": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - } - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-regexp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", - "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", - "dev": true, - "requires": { - "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.1" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codex-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/codex-notifier/-/codex-notifier-1.1.0.tgz", - "integrity": "sha512-eoi5pzpjUEg1ktNdfmv/zwo8z0gmBnXOKFdwC0vZZOAs3htToGMVWKNqEJJNGvE0uzVsikVDCLJj7cYy/5T7+w==", - "dev": true - }, - "collapse-white-space": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", - "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "0.11.4", - "resolved": "http://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "1.0.4", - "color-convert": "1.9.3", - "color-string": "0.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "0.3.0", - "resolved": "http://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.3" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.4", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.0.6", - "randomfill": "1.0.4" - } - }, - "css-color-function": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz", - "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=", - "dev": true, - "requires": { - "balanced-match": "0.1.0", - "color": "0.11.4", - "debug": "3.2.6", - "rgb": "0.1.0" - }, - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz", - "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-loader": { - "version": "0.28.11", - "resolved": "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.1", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.1", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.1", - "source-list-map": "2.0.1" - } - }, - "css-select": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", - "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", - "dev": true, - "requires": { - "boolbase": "1.0.0", - "css-what": "1.0.0", - "domutils": "1.4.3", - "nth-check": "1.0.2" - }, - "dependencies": { - "domutils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", - "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - } - } - }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", - "dev": true, - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.2", - "regexpu-core": "1.0.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "css-what": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", - "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "resolved": "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.3", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.3", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.1", - "postcss-zindex": "2.2.0" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "1.0.2" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.2" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexify": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", - "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.84", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz", - "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==", - "dev": true - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.4.1", - "tapable": "1.1.0" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - } - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" - } - }, - "es6-promise": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "4.19.1", - "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.2.6", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.9.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.11", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.1", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.6.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "eslint-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", - "integrity": "sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==", - "dev": true, - "requires": { - "loader-fs-cache": "1.0.1", - "loader-utils": "1.1.0", - "object-assign": "4.1.1", - "object-hash": "1.3.1", - "rimraf": "2.6.2" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "5.7.3", - "acorn-jsx": "3.0.1" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "execall": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", - "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", - "dev": true, - "requires": { - "clone-regexp": "1.0.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "1.0.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, - "requires": { - "async": "2.6.1", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.3.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-glob": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz", - "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.3", - "micromatch": "3.1.10" - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.4", - "object-assign": "4.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flat-cache": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", - "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "graceful-fs": "4.1.15", - "rimraf": "2.6.2", - "write": "0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.11.1", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "1.0.2", - "is-windows": "1.0.2", - "resolve-dir": "1.0.1" - } - }, - "global-modules-path": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", - "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", - "dev": true - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "2.0.2", - "homedir-polyfill": "1.0.1", - "ini": "1.3.5", - "is-windows": "1.0.2", - "which": "1.3.1" - } - }, - "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", - "dev": true - }, - "globby": { - "version": "8.0.1", - "resolved": "http://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.4", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - }, - "dependencies": { - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "gonzales-pe": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", - "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", - "dev": true, - "requires": { - "minimist": "1.1.3" - }, - "dependencies": { - "minimist": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", - "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "home-or-tmp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", - "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", - "dev": true - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "dev": true, - "requires": { - "parse-passwd": "1.0.0" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "html-janitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/html-janitor/-/html-janitor-2.0.4.tgz", - "integrity": "sha512-92J5h9jNZRk30PMHapjHEJfkrBWKCOy0bq3oW2pBungky6lzYSoboBGPMvxl1XRKB2q+kniQmsLsPbdpY7RM2g==", - "dev": true - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - }, - "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.2", - "inherits": "2.0.3", - "readable-stream": "3.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.0.6.tgz", - "integrity": "sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "2.1.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" - }, - "dependencies": { - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "2.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-lazy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", - "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "3.0.0" - } - } - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.11", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.4.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-alphabetical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", - "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", - "dev": true - }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", - "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", - "dev": true, - "requires": { - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2" - } - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.12.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-decimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", - "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", - "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.3" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-supported-regexp-flag": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", - "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "1.1.2" - } - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "1.0.0" - } - }, - "is-whitespace-character": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", - "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-word-character": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", - "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isnumeric": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz", - "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, - "requires": { - "minimist": "1.2.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "known-css-properties": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.9.0.tgz", - "integrity": "sha512-2G/A/8XPhH6MmuVgl079wYsgdqfXE3cfm62txk/ajS4wvRWo6tEHcgQCJCHOOy12Fse1Sxlbf7/IJBpR9hnVew==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "2.0.0" - } - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, - "requires": { - "find-cache-dir": "0.1.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - } - } - }, - "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - }, - "dependencies": { - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "2.4.1" - } - }, - "longest-streak": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", - "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lru-cache": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz", - "integrity": "sha512-EPstzZ23znHUVLKj+lcXO1KvZkrlw+ZirdwvOmnAnA/1PB4ggyXJ77LRkCqkff+ShQ+cqoxCxLQOh4cKITO5iA==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "3.0.3" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "markdown-escapes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", - "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", - "dev": true - }, - "markdown-table": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", - "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", - "dev": true - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, - "mathml-tag-names": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", - "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "mdast-util-compact": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz", - "integrity": "sha512-d2WS98JSDVbpSsBfVvD9TaDMlqPRz7ohM/11G0rp5jOBb5q96RJ6YLszQ/09AAixyzh23FeIpCGqfaamEADtWg==", - "dev": true, - "requires": { - "unist-util-visit": "1.4.0" - } - }, - "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "1.2.0", - "p-is-promise": "1.1.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" - } - }, - "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" - } - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.1", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", - "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.4.tgz", - "integrity": "sha512-GqRV9GcHw8JCRDaP/JoeNMNzEGzHAknMvIHqMb2VeTOmg1Cf9+ej8bkV12tHfzWHQMCkQ5zUFgwFUkfraynNCw==", - "dev": true, - "requires": { - "semver": "5.6.0" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onecolor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-3.1.0.tgz", - "integrity": "sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ==", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", - "dev": true, - "requires": { - "execa": "0.10.0", - "lcid": "2.0.0", - "mem": "4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17" - } - }, - "parse-entities": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.0.tgz", - "integrity": "sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g==", - "dev": true, - "requires": { - "character-entities": "1.2.2", - "character-entities-legacy": "1.1.2", - "character-reference-invalid": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-decimal": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "dev": true, - "requires": { - "process": "0.11.10", - "util": "0.10.4" - } - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pirates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz", - "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==", - "dev": true, - "requires": { - "node-modules-regexp": "1.0.0" - } - }, - "pixrem": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-4.0.1.tgz", - "integrity": "sha1-LaSh3m7EQjxfw3lOkwuB1EkOxoY=", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "postcss": "6.0.23", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000910", - "electron-to-chromium": "1.3.84" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "pleeease-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-4.0.0.tgz", - "integrity": "sha1-ZjKy+wVkjSdY2GU4T7zteeHMrsc=", - "dev": true, - "requires": { - "onecolor": "3.1.0", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.9", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-apply": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.10.0.tgz", - "integrity": "sha512-h0jVwtwViCo0wu+l3hEa9+RNlFbwpeVBYKRBF1K6Kqwat9egE3dDTZsUrQ9YyNE/AP3WWC5G2/oXQAezWPOJnw==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz", - "integrity": "sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } - }, - "postcss-color-function": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-4.0.1.tgz", - "integrity": "sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ=", - "dev": true, - "requires": { - "css-color-function": "1.3.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-gray": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-4.1.0.tgz", - "integrity": "sha512-L4iLKQLdqChz6ZOgGb6dRxkBNw78JFYcJmBz1orHpZoeLtuhDDGegRtX9gSyfoCIM7rWZ3VNOyiqqvk83BEN+w==", - "dev": true, - "requires": { - "color": "2.0.1", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", - "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", - "dev": true, - "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-hex-alpha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz", - "integrity": "sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0" - }, - "dependencies": { - "color": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-hsl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz", - "integrity": "sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1", - "units-css": "0.4.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-hwb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz", - "integrity": "sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "color": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-mod-function": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-2.4.3.tgz", - "integrity": "sha512-TEATRHN1m2+vM4efwRoPyrAQTbBA4xgx1jSMPv64oLcwVFC4qr6d4o9DAD5LxygIMeBBBugQHvXoSIM+87NaFQ==", - "dev": true, - "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "6.0.23", - "postcss-values-parser": "1.5.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-rebeccapurple": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.1.0.tgz", - "integrity": "sha512-212hJUk9uSsbwO5ECqVjmh/iLsmiVL1xy9ce9TVf+X3cK/ZlUIlaMdoxje/YpsL9cmUH3I7io+/G2LyWx5rg1g==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-values-parser": "1.5.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-rgb": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz", - "integrity": "sha1-FFOcinExSUtILg3RzCZf9lFLUmM=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-color-rgba-fallback": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz", - "integrity": "sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1", - "rgb-hex": "2.1.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-cssnext": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz", - "integrity": "sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA==", - "dev": true, - "requires": { - "autoprefixer": "7.2.6", - "caniuse-api": "2.0.0", - "chalk": "2.4.1", - "pixrem": "4.0.1", - "pleeease-filters": "4.0.0", - "postcss": "6.0.23", - "postcss-apply": "0.8.0", - "postcss-attribute-case-insensitive": "2.0.0", - "postcss-calc": "6.0.2", - "postcss-color-function": "4.0.1", - "postcss-color-gray": "4.1.0", - "postcss-color-hex-alpha": "3.0.0", - "postcss-color-hsl": "2.0.0", - "postcss-color-hwb": "3.0.0", - "postcss-color-rebeccapurple": "3.1.0", - "postcss-color-rgb": "2.0.0", - "postcss-color-rgba-fallback": "3.0.0", - "postcss-custom-media": "6.0.0", - "postcss-custom-properties": "6.3.1", - "postcss-custom-selectors": "4.0.1", - "postcss-font-family-system-ui": "3.0.0", - "postcss-font-variant": "3.0.0", - "postcss-image-set-polyfill": "0.3.5", - "postcss-initial": "2.0.0", - "postcss-media-minmax": "3.0.0", - "postcss-nesting": "4.2.1", - "postcss-pseudo-class-any-link": "4.0.0", - "postcss-pseudoelements": "5.0.0", - "postcss-replace-overflow-wrap": "2.0.0", - "postcss-selector-matches": "3.0.1", - "postcss-selector-not": "3.0.1" - }, - "dependencies": { - "autoprefixer": { - "version": "7.2.6", - "resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000910", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.1" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000910", - "electron-to-chromium": "1.3.84" - } - }, - "caniuse-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-2.0.0.tgz", - "integrity": "sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ=", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000910", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-apply": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.8.0.tgz", - "integrity": "sha1-FOVEu7XLbxweBIhXll15rgZrE0M=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "balanced-match": "0.4.2", - "postcss": "6.0.23" - } - }, - "postcss-calc": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.2.tgz", - "integrity": "sha512-fiznXjEN5T42Qm7qqMCVJXS3roaj9r4xsSi+meaBVe7CJBl8t/QLOXu02Z2E6oWAMWIvCuF6JrvzFekmVEbOKA==", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss": "7.0.6", - "postcss-selector-parser": "2.2.3", - "reduce-css-calc": "2.1.5" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - } - } - }, - "postcss-custom-properties": { - "version": "6.3.1", - "resolved": "http://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-6.3.1.tgz", - "integrity": "sha512-zoiwn4sCiUFbr4KcgcNZLFkR6gVQom647L+z1p/KBVHZ1OYwT87apnS42atJtx6XlX2yI7N5fjXbFixShQO2QQ==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - } - } - }, - "postcss-nesting": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-4.2.1.tgz", - "integrity": "sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA==", - "dev": true, - "requires": { - "postcss": "6.0.23" - } - }, - "reduce-css-calc": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.5.tgz", - "integrity": "sha512-AybiBU03FKbjYzyvJvwkJZY6NLN+80Ufc2EqEs+41yQH+8wqBEslD6eGiS0oIeq5TNLA5PrhBeYHXWdn8gtW7A==", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss-value-parser": "3.3.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-custom-media": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz", - "integrity": "sha1-vlMnhBEOyylQRPtTlaGABushpzc=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-custom-properties": { - "version": "7.0.0", - "resolved": "http://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz", - "integrity": "sha512-dl/CNaM6z2RBa0vZZqsV6Hunj4HD6Spu7FcAkiVp5B2tgm6xReKKYzI7x7QNx3wTMBNj5v+ylfVcQGMW4xdkHw==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-custom-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz", - "integrity": "sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-matches": "3.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-font-family-system-ui": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz", - "integrity": "sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-font-variant": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz", - "integrity": "sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-html": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.34.0.tgz", - "integrity": "sha512-BIW982Kbf9/RikInNhNS3/GA6x/qY/+jhVS9KumqXZtU9ss8Yq15HhPJ6mnaXcU5bFq2ULxpOv96mHPAErpGMQ==", - "dev": true, - "requires": { - "htmlparser2": "3.10.0" - } - }, - "postcss-image-set-polyfill": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", - "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-media-query-parser": "0.2.3" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=", - "dev": true, - "requires": { - "lodash.template": "4.4.0", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-jsx": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.35.0.tgz", - "integrity": "sha512-AU2/9QDmHYJRxTiniMt2bJ9fwCzVF6n00VnR4gdnFGHeXRW2mGwoptpuPgYjfivkdI8LlNIuo+w8TyS6a4JhJw==", - "dev": true, - "requires": { - "@babel/core": "7.1.6", - "postcss-styled": "0.34.0" - } - }, - "postcss-less": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.0.2.tgz", - "integrity": "sha512-+JBOampmDnuaf4w8OIEqkCiF+sOm/nWukDsC+1FTrYcIstptOISzGpYZk24Qh+Ewlmzmi53sRyiTbiGvMCDRwA==", - "dev": true, - "requires": { - "postcss": "7.0.6" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.23", - "postcss-load-config": "2.0.0", - "schema-utils": "0.4.7" - }, - "dependencies": { - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.5", - "ajv-keywords": "3.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-markdown": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.34.0.tgz", - "integrity": "sha512-cKPggF9OMOKPoqDm5YpYszCqMsImFh78FK6P8p6IsEKZB6IkUJYKz0/QgadYy4jLb60jcFIHJ6v6jsMH7/ZQrA==", - "dev": true, - "requires": { - "remark": "9.0.0", - "unist-util-find-all-after": "1.0.2" - } - }, - "postcss-media-minmax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz", - "integrity": "sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.2" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000910", - "electron-to-chromium": "1.3.84" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.1", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.1", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-3.0.0.tgz", - "integrity": "sha512-1xxmLHSfubuUi6xZZ0zLsNoiKfk3BWQj6fkNMaBJC529wKKLcdeCxXt6KJmDLva+trNyQNwEaE/ZWMA7cve1fA==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-nested-ancestors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested-ancestors/-/postcss-nested-ancestors-2.0.0.tgz", - "integrity": "sha512-r8WbA1XLqbDuOGdCWpQ5nXdHvL4eKdnCEcDAnUlIAUHk7ZIQAESqPdxrWGPlq70ZB+FKw4wPbX1850dgFuxUKQ==", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "postcss": "6.0.23", - "postcss-resolve-nested-selector": "0.1.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-nesting": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-6.0.0.tgz", - "integrity": "sha512-Yoglsy6eZbDCbRIXoYSmnIt9ao4xyg07iFwVBd7WyIkDzMSeRxIqUk8xEAdkeJQ7eGfWo6RufrTU7FSUjZ22fg==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-pseudo-class-any-link": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz", - "integrity": "sha1-kVKgYT00UHIFE+iJKFS65C0O5o4=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-pseudoelements": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-5.0.0.tgz", - "integrity": "sha1-7vGU6NUkZFylIKlJ6V5RjoEkAss=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1" - } - }, - "postcss-replace-overflow-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz", - "integrity": "sha1-eU22+qVPjbEAhUOSqTr0V2i04ls=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-reporter": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.0.tgz", - "integrity": "sha512-5xQXm1UPWuFObjbtyQzWvQaupru8yFcFi4HUlm6OPo1o2bUszYASuqRJ7bVArb3svGCdbYtqdMBKrqR1Aoy+tw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "lodash": "4.17.11", - "log-symbols": "2.2.0", - "postcss": "7.0.6" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "postcss-safe-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", - "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", - "dev": true, - "requires": { - "postcss": "7.0.6" - }, - "dependencies": { - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-sass": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.2.0.tgz", - "integrity": "sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==", - "dev": true, - "requires": { - "gonzales-pe": "4.2.3", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-scss": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.6.tgz", - "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-selector-matches": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz", - "integrity": "sha1-5WNAEeE5UIgYYbvdWMLQER/8lqs=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-selector-not": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz", - "integrity": "sha1-Lk2y8JZTNsAefOx9tsYN/3ZzNdk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-smart-import": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/postcss-smart-import/-/postcss-smart-import-0.7.6.tgz", - "integrity": "sha512-9OpXaQ1uMMHWafUh0RWIpAKa3xxUDC2yyxicUPpGffH33nzbZG4/z+nk5Ocw5gGZ+3qkXV91iDV23Cmxf2Jhew==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "lodash": "4.17.11", - "object-assign": "4.1.1", - "postcss": "6.0.23", - "postcss-sass": "0.2.0", - "postcss-scss": "1.0.6", - "postcss-value-parser": "3.3.1", - "promise-each": "2.2.0", - "read-cache": "1.0.0", - "resolve": "1.8.1", - "sugarss": "1.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-styled": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/postcss-styled/-/postcss-styled-0.34.0.tgz", - "integrity": "sha512-Uaeetr/xOiQWGJgzPFOr32/Bwykpfh9TVE26OpmwDb8eEN205TS/gqkt9ri+C6otQzQKXqbMfeZNbKYi7QpeNA==", - "dev": true - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.1", - "svgo": "0.7.2" - } - }, - "postcss-syntax": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.34.0.tgz", - "integrity": "sha512-L36NZwq2UK743US+vl1CRMdBRZCBmFYfThP9n9jCFhX1Wfk6BqnRSgt0Fy8q44IwxPee/GCzlo7T1c1JIeUDlQ==", - "dev": true - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "postcss-values-parser": { - "version": "1.5.0", - "resolved": "http://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz", - "integrity": "sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - }, - "promise-each": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", - "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=", - "dev": true, - "requires": { - "any-promise": "0.1.0" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.6.1", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", - "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", - "dev": true, - "requires": { - "regenerate": "1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", - "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", - "dev": true, - "requires": { - "private": "0.1.8" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", - "dev": true - }, - "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remark": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", - "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", - "dev": true, - "requires": { - "remark-parse": "5.0.0", - "remark-stringify": "5.0.0", - "unified": "6.2.0" - } - }, - "remark-parse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", - "dev": true, - "requires": { - "collapse-white-space": "1.0.4", - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "is-word-character": "1.0.2", - "markdown-escapes": "1.0.2", - "parse-entities": "1.2.0", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", - "trim": "0.0.1", - "trim-trailing-lines": "1.1.1", - "unherit": "1.1.1", - "unist-util-remove-position": "1.1.2", - "vfile-location": "2.0.4", - "xtend": "4.0.1" - } - }, - "remark-stringify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", - "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", - "dev": true, - "requires": { - "ccount": "1.0.3", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "longest-streak": "2.0.2", - "markdown-escapes": "1.0.2", - "markdown-table": "1.1.2", - "mdast-util-compact": "1.0.2", - "parse-entities": "1.2.0", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", - "stringify-entities": "1.3.2", - "unherit": "1.1.1", - "xtend": "4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "http://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "2.0.2", - "global-modules": "1.0.0" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rgb": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz", - "integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=", - "dev": true - }, - "rgb-hex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-2.1.0.tgz", - "integrity": "sha1-x3PF/iJoolV42SU5qCp6XOU77aY=", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "5.5.2" - } - }, - "semver": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", - "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", - "dev": true - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "0.3.2" - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.2" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.2" - } - }, - "spdx-license-ids": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz", - "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==", - "dev": true - }, - "specificity": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", - "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "state-toggle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", - "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "stringify-entities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", - "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "dev": true, - "requires": { - "character-entities-html4": "1.1.2", - "character-entities-legacy": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "stylelint": { - "version": "9.8.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.8.0.tgz", - "integrity": "sha512-qYYgP9UnZ6S4uaXrfEGPIMeNv21gP4t3E7BtnYfJIiHKvz7AbrCP0vj1wPgD6OFyxLT5txQxtoznfSkm2vsUkQ==", - "dev": true, - "requires": { - "autoprefixer": "9.3.1", - "balanced-match": "1.0.0", - "chalk": "2.4.1", - "cosmiconfig": "5.0.7", - "debug": "4.1.0", - "execall": "1.0.0", - "file-entry-cache": "2.0.0", - "get-stdin": "6.0.0", - "global-modules": "1.0.0", - "globby": "8.0.1", - "globjoin": "0.1.4", - "html-tags": "2.0.0", - "ignore": "5.0.4", - "import-lazy": "3.1.0", - "imurmurhash": "0.1.4", - "known-css-properties": "0.9.0", - "leven": "2.1.0", - "lodash": "4.17.11", - "log-symbols": "2.2.0", - "mathml-tag-names": "2.1.0", - "meow": "5.0.0", - "micromatch": "3.1.10", - "normalize-selector": "0.2.0", - "pify": "4.0.1", - "postcss": "7.0.6", - "postcss-html": "0.34.0", - "postcss-jsx": "0.35.0", - "postcss-less": "3.0.2", - "postcss-markdown": "0.34.0", - "postcss-media-query-parser": "0.2.3", - "postcss-reporter": "6.0.0", - "postcss-resolve-nested-selector": "0.1.1", - "postcss-safe-parser": "4.0.1", - "postcss-sass": "0.3.5", - "postcss-scss": "2.0.0", - "postcss-selector-parser": "3.1.1", - "postcss-styled": "0.34.0", - "postcss-syntax": "0.34.0", - "postcss-value-parser": "3.3.1", - "resolve-from": "4.0.0", - "signal-exit": "3.0.2", - "slash": "2.0.0", - "specificity": "0.4.1", - "string-width": "2.1.1", - "style-search": "0.1.0", - "sugarss": "2.0.0", - "svg-tags": "1.0.0", - "table": "5.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "autoprefixer": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.3.1.tgz", - "integrity": "sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q==", - "dev": true, - "requires": { - "browserslist": "4.3.4", - "caniuse-lite": "1.0.30000910", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.6", - "postcss-value-parser": "3.3.1" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "cosmiconfig": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz", - "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==", - "dev": true, - "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "ignore": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.0.4.tgz", - "integrity": "sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "postcss": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", - "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-sass": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.5.tgz", - "integrity": "sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==", - "dev": true, - "requires": { - "gonzales-pe": "4.2.3", - "postcss": "7.0.6" - } - }, - "postcss-scss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz", - "integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==", - "dev": true, - "requires": { - "postcss": "7.0.6" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "requires": { - "postcss": "7.0.6" - } - }, - "table": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/table/-/table-5.1.0.tgz", - "integrity": "sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg==", - "dev": true, - "requires": { - "ajv": "6.5.5", - "lodash": "4.17.11", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - } - } - } - }, - "sugarss": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.1.tgz", - "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "svg-sprite-generator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/svg-sprite-generator/-/svg-sprite-generator-0.0.7.tgz", - "integrity": "sha1-FZd3zj6D6ADyVc7dMR2nYUkhY+k=", - "dev": true, - "requires": { - "async": "1.5.2", - "cheerio": "0.19.0", - "commander": "2.19.0", - "es6-promise": "2.3.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.11", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - } - }, - "tapable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", - "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "trim-trailing-lines": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", - "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", - "dev": true - }, - "trough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.3.tgz", - "integrity": "sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==", - "dev": true - }, - "ts-loader": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-5.3.0.tgz", - "integrity": "sha512-lGSNs7szRFj/rK9T1EQuayE3QNLg6izDUxt5jpmq0RG1rU2bapAt7E7uLckLCUPeO1jwxCiet2oRaWovc53UAg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "enhanced-resolve": "4.1.0", - "loader-utils": "1.1.0", - "micromatch": "3.1.10", - "semver": "5.6.0" - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.19.0", - "diff": "3.5.0", - "glob": "7.1.3", - "js-yaml": "3.7.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.6.0", - "tslib": "1.9.3", - "tsutils": "2.29.0" - } - }, - "tslint-loader": { - "version": "3.6.0", - "resolved": "http://registry.npmjs.org/tslint-loader/-/tslint-loader-3.6.0.tgz", - "integrity": "sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "object-assign": "4.1.1", - "rimraf": "2.6.2", - "semver": "5.6.0" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.3.0", - "worker-farm": "1.6.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.5", - "ajv-keywords": "3.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "unherit": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", - "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "xtend": "4.0.1" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", - "dev": true - }, - "unified": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", - "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", - "dev": true, - "requires": { - "bail": "1.0.3", - "extend": "3.0.2", - "is-plain-obj": "1.1.0", - "trough": "1.0.3", - "vfile": "2.3.0", - "x-is-string": "0.1.0" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "2.0.1" - } - }, - "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unist-util-find-all-after": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", - "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", - "dev": true, - "requires": { - "unist-util-is": "2.1.2" - } - }, - "unist-util-is": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", - "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", - "dev": true - }, - "unist-util-remove-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", - "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", - "dev": true, - "requires": { - "unist-util-visit": "1.4.0" - } - }, - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", - "dev": true - }, - "unist-util-visit": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", - "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", - "dev": true, - "requires": { - "unist-util-visit-parents": "2.0.1" - } - }, - "unist-util-visit-parents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz", - "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", - "dev": true, - "requires": { - "unist-util-is": "2.1.2" - } - }, - "units-css": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", - "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", - "dev": true, - "requires": { - "isnumeric": "0.2.0", - "viewport-dimensions": "0.2.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" - } - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "3.0.2", - "spdx-expression-parse": "3.0.0" - } - }, - "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", - "dev": true - }, - "vfile": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", - "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", - "dev": true, - "requires": { - "is-buffer": "1.1.6", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.2", - "vfile-message": "1.0.2" - } - }, - "vfile-location": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.4.tgz", - "integrity": "sha512-KRL5uXQPoUKu+NGvQVL4XLORw45W62v4U4gxJ3vRlDfI9QsT4ZN1PNXn/zQpKUulqGDpYuT0XDfp5q9O87/y/w==", - "dev": true - }, - "vfile-message": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.2.tgz", - "integrity": "sha512-dNdEXHfPCvzyOlEaaQ+DcXpcxEz+pFvdrebKLiAMjobjaBC2bMeWoHOKPwJ+I8A4jQOEUDH7uoVcLWDLF1qhVQ==", - "dev": true, - "requires": { - "unist-util-stringify-position": "1.1.2" - } - }, - "viewport-dimensions": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz", - "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.15", - "neo-async": "2.6.0" - } - }, - "webpack": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.20.2.tgz", - "integrity": "sha512-75WFUMblcWYcocjSLlXCb71QuGyH7egdBZu50FtBGl2Nso8CK3Ej+J7bTZz2FPFq5l6fzCisD9modB7t30ikuA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.8", - "@webassemblyjs/helper-module-context": "1.7.8", - "@webassemblyjs/wasm-edit": "1.7.8", - "@webassemblyjs/wasm-parser": "1.7.8", - "acorn": "5.7.3", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.5.5", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.3.1", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.6.0", - "node-libs-browser": "2.1.0", - "schema-utils": "0.4.7", - "tapable": "1.1.0", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.3.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz", - "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.5", - "ajv-keywords": "3.2.0" - } - } - } - }, - "webpack-cli": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", - "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "global-modules-path": "2.3.0", - "import-local": "2.0.0", - "interpret": "1.1.0", - "loader-utils": "1.1.0", - "supports-color": "5.5.0", - "v8-compile-cache": "2.0.2", - "yargs": "12.0.5" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.6.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - } - } - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "dev": true, - "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "0.5.1" - } - }, - "x-is-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", - "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" - }, - "dependencies": { - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "5.0.0", - "decamelize": "1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } -} diff --git a/package.json b/package.json index 2787a9e0..7591cd4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codex.editor", - "version": "2.5.6", + "version": "2.6.0", "description": "Codex Editor. Native JS, based on API and Open Source", "main": "build/codex-editor.js", "types": "./types/index.d.ts", @@ -57,7 +57,7 @@ "ts-loader": "^5.3.0", "tslint": "^5.11.0", "tslint-loader": "^3.6.0", - "typescript": "^2.9.2", + "typescript": "^3.1.6", "webpack": "4.20.2", "webpack-cli": "^3.1.0" } diff --git a/src/components/dom.ts b/src/components/dom.ts index 0ace62bb..6cbbbb00 100644 --- a/src/components/dom.ts +++ b/src/components/dom.ts @@ -191,7 +191,7 @@ export default class Dom { sibling = atLast ? 'previousSibling' : 'nextSibling'; if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) { - let nodeChild = node[child]; + let nodeChild = node[child] as Node; /** * special case when child is single tag that can't contain any content diff --git a/src/components/modules/blockManager.ts b/src/components/modules/blockManager.ts index af50404d..8c69a68f 100644 --- a/src/components/modules/blockManager.ts +++ b/src/components/modules/blockManager.ts @@ -9,8 +9,9 @@ import Block from '../block'; import Module from '../__module'; import $ from '../dom'; +import _ from '../utils'; import Blocks from '../blocks'; -import {BlockTool, BlockToolConstructable, BlockToolData, ToolConfig} from '../../../types'; +import {BlockTool, BlockToolConstructable, BlockToolData, PasteEvent, ToolConfig} from '../../../types'; import Caret from './caret'; /** @@ -149,7 +150,7 @@ export default class BlockManager extends Module { * * @return {Block} */ - public composeBlock(toolName: string, data: BlockToolData, settings?: ToolConfig): Block { + public composeBlock(toolName: string, data: BlockToolData = {}, settings: ToolConfig = {}): Block { const toolInstance = this.Editor.Tools.construct(toolName, data) as BlockTool; const toolClass = this.Editor.Tools.available[toolName] as BlockToolConstructable; const block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods); @@ -182,6 +183,34 @@ export default class BlockManager extends Module { return block; } + /** + * Insert pasted content. Call onPaste callback after insert. + * + * @param {string} toolName + * @param {PasteEvent} pasteEvent - pasted data + * @param {boolean} replace - should replace current block + */ + public paste( + toolName: string, + pasteEvent: PasteEvent, + replace: boolean = false, + ): Block { + let block; + + if (replace) { + block = this.replace(toolName); + } else { + block = this.insert(toolName); + } + + try { + block.call('onPaste', pasteEvent); + } catch (e) { + _.log(`${toolName}: onPaste callback call is failed`, 'error', e); + } + return block; + } + /** * Always inserts at the end * @return {Block} @@ -266,7 +295,7 @@ export default class BlockManager extends Module { const extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(); const wrapper = $.make('div'); - wrapper.append(extractedFragment); + wrapper.append(extractedFragment as DocumentFragment); /** * @todo make object in accordance with Tool diff --git a/src/components/modules/events.ts b/src/components/modules/events.ts index 5b95e5d4..df52cf2e 100644 --- a/src/components/modules/events.ts +++ b/src/components/modules/events.ts @@ -19,7 +19,7 @@ export default class Events extends Module { * Object with events` names as key and array of callback functions as value * @type {{}} */ - private subscribers: {[name: string]: Array<(data?: any) => void>} = {}; + private subscribers: {[name: string]: Array<(data?: any) => any>} = {}; /** * Subscribe any event on callback @@ -27,7 +27,7 @@ export default class Events extends Module { * @param {String} eventName - event name * @param {Function} callback - subscriber */ - public on(eventName: string, callback: (data: any) => void) { + public on(eventName: string, callback: (data: any) => any) { if (!(eventName in this.subscribers)) { this.subscribers[eventName] = []; } diff --git a/src/components/modules/paste.ts b/src/components/modules/paste.ts index d23c85da..5a510319 100644 --- a/src/components/modules/paste.ts +++ b/src/components/modules/paste.ts @@ -4,7 +4,7 @@ import SelectionUtils from '../selection'; import Module from '../__module'; import $ from '../dom'; import _ from '../utils'; -import {BlockToolData, PasteConfig} from '../../../types'; +import {BlockTool, BlockToolConstructable, PasteConfig, PasteEvent, PasteEventDetail} from '../../../types'; /** * Tag substitute object. @@ -15,14 +15,6 @@ interface TagSubstitute { * @type {string} */ tool: string; - - /** - * Callback to handle pasted element - * - * @param {HTMLElement} element - * @return {BlockToolData} - */ - handler: (element: HTMLElement) => BlockToolData; } /** @@ -41,15 +33,6 @@ interface PatternSubstitute { */ pattern: RegExp; - /** - * Callback to handle pasted pattern - * - * @param {string} text - * @param {string} key - * @return {BlockToolData} - */ - handler: (text: string, key: string) => BlockToolData; - /** * Name of related Tool * @type {string} @@ -72,14 +55,6 @@ interface FilesSubstitution { * @type {string[]} */ mimeTypes: string[]; - - /** - * Callback to handle pasted File - * - * @param {File} file - * @return {BlockToolData} - */ - handler: (file: File) => BlockToolData; } /** @@ -98,20 +73,16 @@ interface PasteData { */ content: HTMLElement; + /** + * Pasted data + */ + event: PasteEvent; + /** * True if content should be inserted as new Block * @type {boolean} */ isBlock: boolean; - - /** - * Callback that returns pasted data in BlockToolData format - * - * @param {HTMLElement | string} content - * @param {RegExp} patten - * @return {BlockToolData} - */ - handler: (content: HTMLElement|string, patten?: RegExp) => BlockToolData; } /** @@ -165,7 +136,7 @@ export default class Paste extends Module { const { Sanitizer } = this.Editor; if (dataTransfer.types.includes('Files')) { - await this.processFiles(dataTransfer.items); + await this.processFiles(dataTransfer.files); return; } @@ -222,9 +193,19 @@ export default class Paste extends Module { * @param {string} name * @param {Tool} tool */ - private processTool = ([name, tool]) => { + private processTool = ([name, tool]: [string, BlockToolConstructable]): void => { try { - const toolPasteConfig = tool.onPaste || {}; + const toolInstance = new this.Editor.Tools.blockTools[name]({ + api: this.Editor.API.methods, + config: {}, + data: {}, + }) as BlockTool; + + if (!toolInstance.onPaste || typeof toolInstance.onPaste !== 'function') { + return; + } + + const toolPasteConfig = tool.pasteConfig || {}; this.getTagsConfig(name, toolPasteConfig); this.getFilesConfig(name, toolPasteConfig); @@ -245,26 +226,6 @@ export default class Paste extends Module { * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration */ private getTagsConfig(name: string, toolPasteConfig: PasteConfig): void { - if (this.config.initialBlock === name && !toolPasteConfig.handler) { - _.log( - `«${name}» Tool must provide a paste handler.`, - 'warn', - ); - } - - if (!toolPasteConfig.handler) { - return; - } - - if (typeof toolPasteConfig.handler !== 'function') { - _.log( - `Paste handler for «${name}» Tool should be a function.`, - 'warn', - ); - - return; - } - const tags = toolPasteConfig.tags || []; tags.forEach((tag) => { @@ -278,7 +239,6 @@ export default class Paste extends Module { } this.toolsTags[tag.toUpperCase()] = { - handler: toolPasteConfig.handler, tool: name, }; }); @@ -294,15 +254,10 @@ export default class Paste extends Module { */ private getFilesConfig(name: string, toolPasteConfig: PasteConfig): void { - const {fileHandler, files = {}} = toolPasteConfig; + const {files = {}} = toolPasteConfig; let {extensions, mimeTypes} = files; - if (!fileHandler || (!extensions && !mimeTypes)) { - return; - } - - if (typeof fileHandler !== 'function') { - _.log(`Drop handler for «${name}» Tool should be a function.`); + if (!extensions && !mimeTypes) { return; } @@ -330,7 +285,6 @@ export default class Paste extends Module { this.toolsFiles[name] = { extensions: extensions || [], mimeTypes: mimeTypes || [], - handler: fileHandler, }; } @@ -341,16 +295,7 @@ export default class Paste extends Module { * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration */ private getPatternsConfig(name: string, toolPasteConfig: PasteConfig): void { - if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) { - return; - } - - if (typeof toolPasteConfig.patternHandler !== 'function') { - _.log( - `Pattern parser for «${name}» Tool should be a function.`, - 'warn', - ); - + if (!toolPasteConfig.patterns || _.isEmpty(toolPasteConfig.patterns)) { return; } @@ -366,7 +311,6 @@ export default class Paste extends Module { this.toolsPatterns.push({ key, pattern, - handler: toolPasteConfig.patternHandler, tool: name, }); }); @@ -410,12 +354,12 @@ export default class Paste extends Module { /** * Get files from data transfer object and insert related Tools * - * @param {DataTransferItemList} items - pasted or dropped items + * @param {FileList} items - pasted or dropped items */ - private async processFiles(items: DataTransferItemList) { + private async processFiles(items: FileList) { const {BlockManager} = this.Editor; - let dataToInsert: Array<{type: string, data: BlockToolData}>; + let dataToInsert: Array<{type: string, event: PasteEvent}>; dataToInsert = await Promise.all( Array @@ -427,11 +371,11 @@ export default class Paste extends Module { dataToInsert.forEach( (data, i) => { if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) { - BlockManager.replace(data.type, data.data); + BlockManager.paste(data.type, data.event, true); return; } - BlockManager.insert(data.type, data.data); + BlockManager.paste(data.type, data.event); }, ); } @@ -439,14 +383,9 @@ export default class Paste extends Module { /** * Get information about file and find Tool to handle it * - * @param {DataTransferItem} item + * @param {File} file */ - private async processFile(item: DataTransferItem) { - if (item.kind === 'string') { - return; - } - - const file = item.getAsFile(); + private async processFile(file: File) { const extension = _.getFileExtension(file); const foundConfig = Object @@ -468,9 +407,13 @@ export default class Paste extends Module { return; } - const [tool, {handler}] = foundConfig; + const [tool] = foundConfig; + const pasteEvent = this.composePasteEvent('file', { + file, + }); + return { - data: await handler(file), + event: pasteEvent, type: tool, }; } @@ -482,7 +425,7 @@ export default class Paste extends Module { * @param {boolean} isHTML - if passed string is HTML, this parameter should be true */ private async processText(data: string, isHTML: boolean = false) { - const {Caret, BlockManager} = this.Editor; + const {Caret, BlockManager, Tools} = this.Editor; const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data); if (!dataToInsert.length) { @@ -494,16 +437,11 @@ export default class Paste extends Module { return; } - /** - * If caret not at the end of of the Block and there is no selection, - * we split the Block and insert content at the middle. - */ - if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) { - this.splitBlock(); - } + const isCurrentBlockInitial = Tools.isInitial(BlockManager.currentBlock.tool); + const needToReplaceCurrentBlock = isCurrentBlockInitial && BlockManager.currentBlock.isEmpty; await Promise.all(dataToInsert.map( - async (content, i) => await this.insertBlock(content, i === 0), + async (content, i) => await this.insertBlock(content, i === 0 && needToReplaceCurrentBlock), )); Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END); @@ -516,9 +454,9 @@ export default class Paste extends Module { * @returns {PasteData[]} */ private processHTML(innerHTML: string): PasteData[] { - const {Tools, Sanitizer} = this.Editor, - initialTool = this.config.initialBlock, - wrapper = $.make('DIV'); + const {Tools, Sanitizer} = this.Editor; + const initialTool = this.config.initialBlock; + const wrapper = $.make('DIV'); wrapper.innerHTML = innerHTML; @@ -546,7 +484,7 @@ export default class Paste extends Module { break; } - const {handler, tags} = Tools.blockTools[tool].onPaste; + const {tags} = Tools.blockTools[tool].pasteConfig; const toolTags = tags.reduce((result, tag) => { result[tag.toLowerCase()] = {}; @@ -557,7 +495,11 @@ export default class Paste extends Module { content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig); - return {content, isBlock, handler, tool}; + const event = this.composePasteEvent('tag', { + data: content, + }); + + return {content, isBlock, tool, event}; }) .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content)); } @@ -576,8 +518,7 @@ export default class Paste extends Module { return []; } - const tool = initialBlock, - handler = Tools.blockTools[tool].onPaste.handler; + const tool = initialBlock; return plain .split(/\r?\n/) @@ -587,7 +528,11 @@ export default class Paste extends Module { content.innerHTML = text; - return {content, tool, isBlock: false, handler}; + const event = this.composePasteEvent('tag', { + data: content, + }); + + return {content, tool, isBlock: false, event}; }); } @@ -601,27 +546,21 @@ export default class Paste extends Module { */ private async processSingleBlock(dataToInsert: PasteData): Promise { const initialTool = this.config.initialBlock, - {BlockManager, Caret, Sanitizer} = this.Editor, + {BlockManager, Caret, Sanitizer, Tools} = this.Editor, {content, tool} = dataToInsert; if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) { const blockData = await this.processPattern(content.textContent); if (blockData) { - this.splitBlock(); let insertedBlock; - const sanitizeConfig = Sanitizer.composeToolConfig(tool); + const needToReplaceCurrentBlock = BlockManager.currentBlock + && Tools.isInitial(BlockManager.currentBlock.tool) + && BlockManager.currentBlock.isEmpty; - if (!_.isEmpty(sanitizeConfig)) { - blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig); - } + insertedBlock = BlockManager.paste(blockData.tool, blockData.event, needToReplaceCurrentBlock); - if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) { - insertedBlock = BlockManager.replace(blockData.tool, blockData.data); - } else { - insertedBlock = BlockManager.insert(blockData.tool, blockData.data); - } Caret.setToBlock(insertedBlock, CaretClass.positions.END); return; } @@ -639,7 +578,7 @@ export default class Paste extends Module { * @param {string} text * @returns Promise<{data: BlockToolData, tool: string}> */ - private async processPattern(text: string): Promise<{data: BlockToolData, tool: string}> { + private async processPattern(text: string): Promise<{event: PasteEvent, tool: string}> { const pattern = this.toolsPatterns.find((substitute) => { const execResult = substitute.pattern.exec(text); @@ -650,10 +589,17 @@ export default class Paste extends Module { return text === execResult.shift(); }); - const data = pattern && await pattern.handler(text, pattern.key); + if (!pattern) { + return; + } - return data && { - data, + const event = this.composePasteEvent('pattern', { + key: pattern.key, + data: text, + }); + + return { + event, tool: pattern.tool, }; } @@ -665,40 +611,19 @@ export default class Paste extends Module { * @returns {Promise} */ private async insertBlock(data: PasteData, canReplaceCurrentBlock: boolean = false): Promise { - const blockData = await data.handler(data.content), - {BlockManager, Caret} = this.Editor, - {currentBlock} = BlockManager; + const {BlockManager, Caret} = this.Editor; + const {currentBlock} = BlockManager; if (canReplaceCurrentBlock && currentBlock && currentBlock.isEmpty) { - BlockManager.replace(data.tool, blockData); + BlockManager.paste(data.tool, data.event, true); return; } - const block = BlockManager.insert(data.tool, blockData); + const block = BlockManager.paste(data.tool, data.event); Caret.setToBlock(block); } - /** - * Split current block if paste isn't in the end of the block - */ - private splitBlock() { - const {BlockManager, Caret} = this.Editor; - - if (!BlockManager.currentBlock) { - return; - } - - /** If we paste into middle of the current block: - * 1. Split - * 2. Navigate to the first part - */ - if (!BlockManager.currentBlock.isEmpty && !Caret.isAtEnd) { - BlockManager.split(); - BlockManager.currentBlockIndex--; - } - } - /** * Recursively divide HTML string to two types of nodes: * 1. Block element @@ -778,4 +703,16 @@ export default class Paste extends Module { return children.reduce(reducer, []); } + + /** + * Compose paste event with passed type and detail + * + * @param {string} type + * @param {PasteEventDetail} detail + */ + private composePasteEvent(type: string, detail: PasteEventDetail): PasteEvent { + return new CustomEvent(type, { + detail, + }) as PasteEvent; + } } diff --git a/src/components/modules/sanitizer.ts b/src/components/modules/sanitizer.ts index 4cbe1f4c..2a600095 100644 --- a/src/components/modules/sanitizer.ts +++ b/src/components/modules/sanitizer.ts @@ -298,7 +298,7 @@ export default class Sanitizer extends Module { * At least, if there is no config overrides, that API uses Default configuration * * @uses https://www.npmjs.com/package/html-janitor - * @licence https://github.com/guardian/html-janitor/blob/master/LICENSE + * @license https://github.com/guardian/html-janitor/blob/master/LICENSE * * @param {SanitizerConfig} config - sanitizer extension */ diff --git a/src/components/polyfills.ts b/src/components/polyfills.ts index cd4fd30c..f4b0663f 100644 --- a/src/components/polyfills.ts +++ b/src/components/polyfills.ts @@ -6,10 +6,11 @@ interface Element { matchesSelector: (selector: string) => boolean; mozMatchesSelector: (selector: string) => boolean; + msMatchesSelector: (selector: string) => boolean; oMatchesSelector: (selector: string) => boolean; - prepend: (nodes: Node|Node[]|any) => void; - append: (nodes: Node|Node[]|DocumentFragment|void) => void; + prepend: (nodes: Node|Node[]|DocumentFragment) => void; + append: (nodes: Node|Node[]|DocumentFragment) => void; } /** diff --git a/src/components/tools/paragraph b/src/components/tools/paragraph index 053e9a48..bf229afc 160000 --- a/src/components/tools/paragraph +++ b/src/components/tools/paragraph @@ -1 +1 @@ -Subproject commit 053e9a4885bca063ee1c571e1dacfc5bbe8fea76 +Subproject commit bf229afc88e682530c82c8fa12aadc85c8a41c8b diff --git a/tsconfig.json b/tsconfig.json index ad52c423..0d3f1bb5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,6 @@ "target": "es2017", "declaration": false, "moduleResolution": "node", // This resolution strategy attempts to mimic the Node.js module resolution mechanism at runtime - "lib": ["es2017", "dom"] + "lib": ["dom", "es2017", "es2018"] } } diff --git a/tslint.json b/tslint.json index 603ebde7..d32148ed 100644 --- a/tslint.json +++ b/tslint.json @@ -17,6 +17,7 @@ "import-sources-order": "any", "named-imports-order": "case-insensitive" }], + "no-string-literal": false, "no-empty": false, "no-namespace": false, "variable-name": [true, "allow-leading-underscore", "allow-pascal-case"] diff --git a/types/index.d.ts b/types/index.d.ts index 15a03e32..319d4485 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -20,6 +20,14 @@ export { BlockToolData, ToolSettings, ToolConfig, + PasteEvent, + PasteEventDetail, + PatternPasteEvent, + PatternPasteEventDetail, + HTMLPasteEvent, + HTMLPasteEventDetail, + FilePasteEvent, + FilePasteEventDetail, } from './tools'; export {BlockTune, BlockTuneConstructable} from './block-tunes'; export {EditorConfig, SanitizerConfig, PasteConfig} from './configs'; diff --git a/types/tools/block-tool.d.ts b/types/tools/block-tool.d.ts index 6526d384..a5ea7e39 100644 --- a/types/tools/block-tool.d.ts +++ b/types/tools/block-tool.d.ts @@ -3,6 +3,7 @@ import {BlockToolData} from './block-tool-data'; import {Tool, ToolConstructable} from './tool'; import {ToolConfig} from './tool-config'; import {API} from '../index'; +import {PasteEvent} from './paste-events'; /** * Describe Block Tool object * @see {@link docs/tools.md} @@ -50,6 +51,8 @@ export interface BlockTool extends Tool { * @param {BlockToolData} blockData */ merge?(blockData: BlockToolData): void; + + onPaste?(event: PasteEvent); } export interface BlockToolConstructable extends ToolConstructable { @@ -68,5 +71,10 @@ export interface BlockToolConstructable extends ToolConstructable { */ onPaste?: PasteConfig; + /** + * Paste substitutions configuration + */ + pasteConfig: PasteConfig; + new (config: {api: API, config: ToolConfig, data: BlockToolData}): BlockTool; } diff --git a/types/tools/index.d.ts b/types/tools/index.d.ts index c52fa0e6..cbd657a2 100644 --- a/types/tools/index.d.ts +++ b/types/tools/index.d.ts @@ -4,3 +4,4 @@ export * from './inline-tool'; export * from './tool'; export * from './tool-config'; export * from './tool-settings'; +export * from './paste-events'; diff --git a/types/tools/paste-events.d.ts b/types/tools/paste-events.d.ts new file mode 100644 index 00000000..35603041 --- /dev/null +++ b/types/tools/paste-events.d.ts @@ -0,0 +1,52 @@ +/** + * Event detail for tag substitution on paste + */ +export interface HTMLPasteEventDetail { + /** + * Pasted element + */ + data: HTMLElement; +} + +/** + * Paste event for tag substitution + */ +export interface HTMLPasteEvent extends CustomEvent { + readonly detail: HTMLPasteEventDetail; +} + +/** + * Event detail for file substitution on paste + */ +export interface FilePasteEventDetail { + /** + * Pasted file + */ + file: File; +} + +export interface FilePasteEvent extends CustomEvent { + readonly detail: FilePasteEventDetail; +} + +/** + * Event detail for pattern substitution on paste + */ +export interface PatternPasteEventDetail { + /** + * Pattern key + */ + key: string; + + /** + * Pasted string + */ + data: string; +} + +export interface PatternPasteEvent extends CustomEvent { + readonly detail: PatternPasteEventDetail; +} + +export type PasteEvent = HTMLPasteEvent | FilePasteEvent | PatternPasteEvent; +export type PasteEventDetail = HTMLPasteEventDetail | FilePasteEventDetail | PatternPasteEventDetail; diff --git a/yarn.lock b/yarn.lock index adcb37ce..0b0e151c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3199,7 +3199,7 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-janitor@^2.0.2: +html-janitor@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/html-janitor/-/html-janitor-2.0.4.tgz#ae5a115cdf3331cd5501edd7b5471b18ea44cdbb" integrity sha512-92J5h9jNZRk30PMHapjHEJfkrBWKCOy0bq3oW2pBungky6lzYSoboBGPMvxl1XRKB2q+kniQmsLsPbdpY7RM2g== @@ -6873,10 +6873,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^2.9.2: - version "2.9.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" - integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== +typescript@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" + integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== uglify-es@^3.3.4: version "3.3.9"
    element that holds only Blocks\n */\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\n this.mutationDebouncer();\n }, false);\n }\n}\n","import Module from '../__module';\n\n/**\n * Use external package module for notifications\n *\n * @see https://github.com/codex-team/js-notifier\n */\nimport notifier, {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\n/**\n * Notifier module\n */\nexport default class Notifier extends Module {\n\n /**\n * Show web notification\n *\n * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} options\n */\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n notifier.show(options);\n }\n}\n","import CaretClass from './caret';\nimport SelectionUtils from '../selection';\n\nimport Module from '../__module';\nimport $ from '../dom';\nimport _ from '../utils';\nimport {BlockTool, BlockToolConstructable, PasteConfig, PasteEvent, PasteEventDetail} from '../../../types';\n\n/**\n * Tag substitute object.\n */\ninterface TagSubstitute {\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n}\n\n/**\n * Pattern substitute object.\n */\ninterface PatternSubstitute {\n /**\n * Pattern`s key\n * @type {string}\n */\n key: string;\n\n /**\n * Pattern regexp\n * @type {RegExp}\n */\n pattern: RegExp;\n\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n}\n\n/**\n * Files` types substitutions object.\n */\ninterface FilesSubstitution {\n /**\n * Array of file extensions Tool can handle\n * @type {string[]}\n */\n extensions: string[];\n\n /**\n * Array of MIME types Tool can handle\n * @type {string[]}\n */\n mimeTypes: string[];\n}\n\n/**\n * Processed paste data object.\n */\ninterface PasteData {\n /**\n * Name of related Tool\n * @type {string}\n */\n tool: string;\n\n /**\n * Pasted data. Processed and wrapped to HTML element\n * @type {HTMLElement}\n */\n content: HTMLElement;\n\n /**\n * Pasted data\n */\n event: PasteEvent;\n\n /**\n * True if content should be inserted as new Block\n * @type {boolean}\n */\n isBlock: boolean;\n}\n\n/**\n * @class Paste\n * @classdesc Contains methods to handle paste on editor\n *\n * @module Paste\n *\n * @version 2.0.0\n */\nexport default class Paste extends Module {\n\n /** If string`s length is greater than this number we don't check paste patterns */\n public static readonly PATTERN_PROCESSING_MAX_LENGTH = 450;\n\n /**\n * Tags` substitutions parameters\n */\n private toolsTags: {[tag: string]: TagSubstitute} = {};\n\n /**\n * Store tags to substitute by tool name\n */\n private tagsByTool: {[tools: string]: string[]} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: PatternSubstitute[] = [];\n\n /** Files` substitutions parameters */\n private toolsFiles: {\n [tool: string]: FilesSubstitution,\n } = {};\n\n /**\n * Set onPaste callback and collect tools` paste configurations\n *\n * @public\n */\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\n }\n\n /**\n * Handle pasted or dropped data transfer object\n *\n * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object\n * @param {boolean} isDragNDrop\n */\n public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise {\n const { Sanitizer } = this.Editor;\n\n if (dataTransfer.types.includes('Files')) {\n await this.processFiles(dataTransfer.files);\n return;\n }\n\n const plainData = dataTransfer.getData('text/plain');\n let htmlData = dataTransfer.getData('text/html');\n\n /**\n * If text was drag'n'dropped, wrap content with P tag to insert it as the new Block\n */\n if (isDragNDrop && plainData.trim() && htmlData.trim()) {\n htmlData = '

    ' + ( htmlData.trim() ? htmlData : plainData ) + '

    ';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.getAllInlineToolsConfig());\n\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]: [string, BlockToolConstructable]): void => {\n try {\n const toolInstance = new this.Editor.Tools.blockTools[name]({\n api: this.Editor.API.methods,\n config: {},\n data: {},\n }) as BlockTool;\n\n if (!toolInstance.onPaste || typeof toolInstance.onPaste !== 'function') {\n return;\n }\n\n const toolPasteConfig = tool.pasteConfig || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: PasteConfig): void {\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n tool: name,\n };\n });\n\n this.tagsByTool[name] = tags.map((t) => t.toUpperCase());\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: PasteConfig): void {\n\n const {files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!extensions && !mimeTypes) {\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: PasteConfig): void {\n if (!toolPasteConfig.patterns || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element as HTMLElement);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise => {\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {FileList} items - pasted or dropped items\n */\n private async processFiles(items: FileList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, event: PasteEvent}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.paste(data.type, data.event, true);\n return;\n }\n\n BlockManager.paste(data.type, data.event);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {File} file\n */\n private async processFile(file: File) {\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool] = foundConfig;\n const pasteEvent = this.composePasteEvent('file', {\n file,\n });\n\n return {\n event: pasteEvent,\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager, Tools} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n const isCurrentBlockInitial = Tools.isInitial(BlockManager.currentBlock.tool);\n const needToReplaceCurrentBlock = isCurrentBlockInitial && BlockManager.currentBlock.isEmpty;\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0 && needToReplaceCurrentBlock),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {PasteData[]}\n */\n private processHTML(innerHTML: string): PasteData[] {\n const {Tools, Sanitizer} = this.Editor;\n const initialTool = this.config.initialBlock;\n const wrapper = $.make('DIV');\n\n wrapper.innerHTML = innerHTML;\n\n const nodes = this.getNodes(wrapper);\n\n return nodes\n .map((node) => {\n let content, tool = initialTool, isBlock = false;\n\n switch (node.nodeType) {\n /** If node is a document fragment, use temp wrapper to get innerHTML */\n case Node.DOCUMENT_FRAGMENT_NODE:\n content = $.make('div');\n content.appendChild(node);\n break;\n\n /** If node is an element, then there might be a substitution */\n case Node.ELEMENT_NODE:\n content = node as HTMLElement;\n isBlock = true;\n\n if (this.toolsTags[content.tagName]) {\n tool = this.toolsTags[content.tagName].tool;\n }\n break;\n }\n\n const {tags} = Tools.blockTools[tool].pasteConfig;\n\n const toolTags = tags.reduce((result, tag) => {\n result[tag.toLowerCase()] = {};\n\n return result;\n }, {});\n const customConfig = Object.assign({}, toolTags, Sanitizer.getInlineToolsConfig(tool));\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n const event = this.composePasteEvent('tag', {\n data: content,\n });\n\n return {content, isBlock, tool, event};\n })\n .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {PasteData[]}\n */\n private processPlain(plain: string): PasteData[] {\n const {initialBlock} = this.config as {initialBlock: string},\n {Tools} = this.Editor;\n\n if (!plain) {\n return [];\n }\n\n const tool = initialBlock;\n\n return plain\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n const event = this.composePasteEvent('tag', {\n data: content,\n });\n\n return {content, tool, isBlock: false, event};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {PasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: PasteData): Promise {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret, Sanitizer, Tools} = this.Editor,\n {content, tool} = dataToInsert;\n\n if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) {\n const blockData = await this.processPattern(content.textContent);\n\n if (blockData) {\n let insertedBlock;\n\n const needToReplaceCurrentBlock = BlockManager.currentBlock\n && Tools.isInitial(BlockManager.currentBlock.tool)\n && BlockManager.currentBlock.isEmpty;\n\n insertedBlock = BlockManager.paste(blockData.tool, blockData.event, needToReplaceCurrentBlock);\n\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n const currentToolSanitizeConfig = Sanitizer.getInlineToolsConfig(BlockManager.currentBlock.name);\n\n /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, Sanitizer.clean(content.innerHTML, currentToolSanitizeConfig));\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: BlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{event: PasteEvent, tool: string}> {\n const pattern = this.toolsPatterns.find((substitute) => {\n const execResult = substitute.pattern.exec(text);\n\n if (!execResult) {\n return false;\n }\n\n return text === execResult.shift();\n });\n\n if (!pattern) {\n return;\n }\n\n const event = this.composePasteEvent('pattern', {\n key: pattern.key,\n data: text,\n });\n\n return {\n event,\n tool: pattern.tool,\n };\n }\n\n /**\n *\n * @param {PasteData} data\n * @param {Boolean} canReplaceCurrentBlock - if true and is current Block is empty, will replace current Block\n * @returns {Promise}\n */\n private async insertBlock(data: PasteData, canReplaceCurrentBlock: boolean = false): Promise {\n const {BlockManager, Caret} = this.Editor;\n const {currentBlock} = BlockManager;\n\n if (canReplaceCurrentBlock && currentBlock && currentBlock.isEmpty) {\n BlockManager.paste(data.tool, data.event, true);\n return;\n }\n\n const block = BlockManager.paste(data.tool, data.event);\n\n Caret.setToBlock(block);\n }\n\n /**\n * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n const {tool = ''} = this.toolsTags[element.tagName] || {};\n const toolTags = this.tagsByTool[tool] || [];\n\n const isSubstitutable = tags.includes(element.tagName);\n const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase());\n const containsAnotherToolTags = Array\n .from(element.children)\n .some(\n ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName),\n );\n\n const containsBlockElements = Array.from(element.children).some(\n ({tagName}) => $.blockElements.includes(tagName.toLowerCase()),\n );\n\n /** Append inline elements to previous fragment */\n if (!isBlockElement && !isSubstitutable) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (\n (isSubstitutable && !containsAnotherToolTags) ||\n (isBlockElement && !containsBlockElements && !containsAnotherToolTags )\n ) {\n return [...nodes, destNode, element];\n }\n break;\n\n /**\n * If node is text node, wrap it with DocumentFragment\n */\n case Node.TEXT_NODE:\n destNode.appendChild(node);\n return [...nodes, destNode];\n\n default:\n return [...nodes, destNode];\n }\n\n return [...nodes, ...Array.from(node.childNodes).reduce(reducer, [])];\n };\n\n return children.reduce(reducer, []);\n }\n\n /**\n * Compose paste event with passed type and detail\n *\n * @param {string} type\n * @param {PasteEventDetail} detail\n */\n private composePasteEvent(type: string, detail: PasteEventDetail): PasteEvent {\n return new CustomEvent(type, {\n detail,\n }) as PasteEvent;\n }\n}\n","import Module from '../__module';\nimport _, {ChainData} from '../utils';\nimport {BlockToolData} from '../../../types';\n\n/**\n * Codex Editor Renderer Module\n *\n * @module Renderer\n * @author CodeX Team\n *\n * @version 2.0.0\n */\nexport default class Renderer extends Module {\n /**\n * @typedef {Object} RendererBlocks\n * @property {String} type - tool name\n * @property {Object} data - tool data\n */\n\n /**\n * @example\n *\n * blocks: [\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Hello from Codex!'\n * }\n * },\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Leave feedback if you like it!'\n * }\n * },\n * ]\n *\n */\n\n /**\n * Make plugin blocks from array of plugin`s data\n * @param {RendererBlocks[]} blocks\n */\n public render(blocks: BlockToolData[]): Promise {\n const chainData = blocks.map((block) => ({function: () => this.insertBlock(block)}));\n\n return _.sequence(chainData as ChainData[]);\n }\n\n /**\n * Get plugin instance\n * Add plugin instance to BlockManager\n * Insert block to working zone\n *\n * @param {Object} item\n * @returns {Promise}\n * @private\n */\n public async insertBlock(item): Promise {\n const tool = item.type;\n const data = item.data;\n const settings = item.settings;\n\n if (tool in this.Editor.Tools.available) {\n try {\n this.Editor.BlockManager.insert(tool, data, settings);\n } catch (error) {\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\n throw Error(error);\n }\n } else {\n /**\n * @todo show warning notification message\n *\n * `${tool} blocks was skipped.`\n */\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\n }\n }\n}\n","/**\n * CodeX Sanitizer\n *\n * @module Sanitizer\n * Clears HTML from taint tags\n *\n * @version 2.0.0\n *\n * @example\n * Module can be used within two ways:\n * 1) When you have an instance\n * - this.Editor.Sanitizer.clean(yourTaintString);\n * 2) As static method\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\n *\n * {@link SanitizerConfig}\n */\n\nimport Module from '../__module';\nimport _ from '../utils';\n\n/**\n * @typedef {Object} SanitizerConfig\n * @property {Object} tags - define tags restrictions\n *\n * @example\n *\n * tags : {\n * p: true,\n * a: {\n * href: true,\n * rel: \"nofollow\",\n * target: \"_blank\"\n * }\n * }\n */\n\nimport HTMLJanitor from 'html-janitor';\nimport {BlockToolData, InlineToolConstructable, SanitizerConfig} from '../../../types';\n\nexport default class Sanitizer extends Module {\n /**\n * Memoize tools config\n */\n private configCache: {[toolName: string]: SanitizerConfig} = {};\n\n /**\n * Cached inline tools config\n */\n private inlineToolsConfigCache: SanitizerConfig | null = null;\n\n /**\n * Sanitize Blocks\n *\n * Enumerate blocks and clean data\n *\n * @param {{tool, data: BlockToolData}[]} blocksData[]\n */\n public sanitizeBlocks(\n blocksData: Array<{tool: string, data: BlockToolData}>,\n ): Array<{tool: string, data: BlockToolData}> {\n\n return blocksData.map((block) => {\n const toolConfig = this.composeToolConfig(block.tool);\n\n if (_.isEmpty(toolConfig)) {\n return block;\n }\n\n block.data = this.deepSanitize(block.data, toolConfig);\n\n return block;\n });\n }\n\n /**\n * Method recursively reduces Block's data and cleans with passed rules\n *\n * @param {BlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string\n * @param {SanitizerConfig} rules - object with sanitizer rules\n */\n public deepSanitize(dataToSanitize: any, rules: SanitizerConfig): any {\n /**\n * BlockData It may contain 3 types:\n * - Array\n * - Object\n * - Primitive\n */\n if (Array.isArray(dataToSanitize)) {\n /**\n * Array: call sanitize for each item\n */\n return this.cleanArray(dataToSanitize, rules);\n } else if (typeof dataToSanitize === 'object') {\n /**\n * Objects: just clean object deeper.\n */\n return this.cleanObject(dataToSanitize, rules);\n } else {\n /**\n * Primitives (number|string|boolean): clean this item\n *\n * Clean only strings\n */\n if (typeof dataToSanitize === 'string') {\n return this.cleanOneItem(dataToSanitize, rules);\n }\n return dataToSanitize;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * Method allows to use default config\n *\n * @param {string} taintString - taint string\n * @param {SanitizerConfig} customConfig - allowed tags\n *\n * @return {string} clean HTML\n */\n public clean(taintString: string, customConfig: SanitizerConfig = {} as SanitizerConfig): string {\n\n const sanitizerConfig = {\n tags: customConfig,\n };\n\n /**\n * API client can use custom config to manage sanitize process\n */\n const sanitizerInstance = this.createHTMLJanitorInstance(sanitizerConfig);\n return sanitizerInstance.clean(taintString);\n }\n\n /**\n * Merge with inline tool config\n *\n * @param {string} toolName\n * @param {SanitizerConfig} toolRules\n * @return {SanitizerConfig}\n */\n public composeToolConfig(toolName: string): SanitizerConfig {\n /**\n * If cache is empty, then compose tool config and put it to the cache object\n */\n if (this.configCache[toolName]) {\n return this.configCache[toolName];\n }\n\n const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;\n const toolClass = this.Editor.Tools.available[toolName];\n const baseConfig = this.getInlineToolsConfig(toolName);\n\n /**\n * If Tools doesn't provide sanitizer config or it is empty\n */\n if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {\n return baseConfig;\n }\n\n const toolRules = toolClass.sanitize;\n\n const toolConfig = {} as SanitizerConfig;\n for (const fieldName in toolRules) {\n if (toolRules.hasOwnProperty(fieldName)) {\n const rule = toolRules[fieldName];\n if (typeof rule === 'object') {\n toolConfig[fieldName] = Object.assign({}, baseConfig, rule);\n } else {\n toolConfig[fieldName] = rule;\n }\n }\n }\n this.configCache[toolName] = toolConfig;\n\n return toolConfig;\n }\n\n /**\n * Returns Sanitizer config\n * When Tool's \"inlineToolbar\" value is True, get all sanitizer rules from all tools,\n * otherwise get only enabled\n */\n public getInlineToolsConfig(name: string): SanitizerConfig {\n const {Tools} = this.Editor;\n\n const toolsConfig = Tools.getToolSettings(name),\n enableInlineTools = toolsConfig.inlineToolbar || [];\n\n let config = {} as SanitizerConfig;\n\n if (typeof enableInlineTools === 'boolean' && enableInlineTools) {\n /**\n * getting all tools sanitizer rule\n */\n config = this.getAllInlineToolsConfig();\n } else {\n /**\n * getting only enabled\n */\n (enableInlineTools as string[]).map( (inlineToolName) => {\n config = Object.assign(\n config,\n Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG],\n ) as SanitizerConfig;\n });\n }\n\n return config;\n }\n\n /**\n * Return general config for all inline tools\n */\n public getAllInlineToolsConfig(): SanitizerConfig {\n const {Tools} = this.Editor;\n\n if (this.inlineToolsConfigCache) {\n return this.inlineToolsConfigCache;\n }\n\n const config: SanitizerConfig = {} as SanitizerConfig;\n\n Object.entries(Tools.inline)\n .forEach( ([name, inlineTool]: [string, InlineToolConstructable]) => {\n Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]);\n });\n\n this.inlineToolsConfigCache = config;\n\n return this.inlineToolsConfigCache;\n }\n\n /**\n * Clean array\n * @param {array} array - [1, 2, {}, []]\n * @param {object} ruleForItem\n */\n private cleanArray(array: any[], ruleForItem: SanitizerConfig): any[] {\n return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem));\n }\n\n /**\n * Clean object\n * @param {object} object - {level: 0, text: 'adada', items: [1,2,3]}}\n * @param {object} rules - { b: true } or true|false\n * @return {object}\n */\n private cleanObject(object: any, rules: SanitizerConfig|{[field: string]: SanitizerConfig}): any {\n const cleanData = {};\n\n for (const fieldName in object) {\n if (!object.hasOwnProperty(fieldName)) {\n continue;\n }\n\n const currentIterationItem = object[fieldName];\n\n /**\n * Get object from config by field name\n * - if it is a HTML Janitor rule, call with this rule\n * - otherwise, call with parent's config\n */\n const ruleForItem = this.isRule(rules[fieldName] as SanitizerConfig) ? rules[fieldName] : rules;\n\n cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as SanitizerConfig);\n }\n return cleanData;\n }\n\n /**\n * @param {string} taintString\n * @param {SanitizerConfig|boolean} rule\n * @return {string}\n */\n private cleanOneItem(taintString: string, rule: SanitizerConfig|boolean): string {\n if (typeof rule === 'object') {\n return this.clean(taintString, rule);\n } else if (rule === false) {\n return this.clean(taintString, {} as SanitizerConfig);\n } else {\n return taintString;\n }\n }\n\n /**\n * Check if passed item is a HTML Janitor rule:\n * { a : true }, {}, false, true, function(){} — correct rules\n * undefined, null, 0, 1, 2 — not a rules\n * @param config\n */\n private isRule(config: SanitizerConfig): boolean {\n return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function';\n }\n\n /**\n * If developer uses editor's API, then he can customize sanitize restrictions.\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\n * At least, if there is no config overrides, that API uses Default configuration\n *\n * @uses https://www.npmjs.com/package/html-janitor\n * @license https://github.com/guardian/html-janitor/blob/master/LICENSE\n *\n * @param {SanitizerConfig} config - sanitizer extension\n */\n private createHTMLJanitorInstance(config: {tags: SanitizerConfig}): HTMLJanitor|null {\n if (config) {\n return new HTMLJanitor(config);\n }\n return null;\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\nimport Module from '../__module';\nimport {OutputData} from '../../../types';\n\ndeclare const VERSION: string;\n\n/**\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\n *\n * @typedef {Saver} Saver\n * @property {Element} html - Editor HTML content\n * @property {String} json - Editor JSON output\n */\nexport default class Saver extends Module {\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {OutputData}\n */\n public async save(): Promise {\n const blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n const extractedData = await Promise.all(chainData);\n\n const sanitizedData = await this.Editor.Sanitizer.sanitizeBlocks(extractedData);\n return this.makeOutput(sanitizedData);\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {OutputData}\n */\n private makeOutput(allExtractedData): OutputData {\n let totalTime = 0;\n const blocks = [];\n\n console.groupCollapsed('[CodexEditor saving]:');\n\n allExtractedData.forEach((extraction) => {\n /** Group process info */\n console.log(`«${extraction.tool}» saving info`, extraction);\n totalTime += extraction.time;\n blocks.push({\n type: extraction.tool,\n data: extraction.data,\n });\n });\n\n console.log('Total', totalTime);\n console.groupEnd();\n\n return {\n time: +new Date(),\n blocks,\n version: VERSION,\n };\n }\n}\n","import Shortcut from '@codexteam/shortcuts';\n\n/**\n * ShortcutData interface\n * Each shortcut must have name and handler\n * `name` is a shortcut, like 'CMD+K', 'CMD+B' etc\n * `handler` is a callback\n */\nexport interface ShortcutData {\n\n /**\n * Shortcut name\n * Ex. CMD+I, CMD+B ....\n */\n name: string;\n\n /**\n * Shortcut handler\n */\n handler(event): void;\n}\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\nimport Module from '../__module';\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module {\n /**\n * All registered shortcuts\n * @type {Shortcut[]}\n */\n private registeredShortcuts: Shortcut[] = [];\n\n /**\n * Register shortcut\n * @param {ShortcutData} shortcut\n */\n public add(shortcut: ShortcutData): void {\n const { UI } = this.Editor;\n\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: UI.nodes.redactor,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {ShortcutData} shortcut\n */\n public remove(shortcut: string): void {\n const index = this.registeredShortcuts.findIndex((shc) => shc.name === shortcut);\n\n this.registeredShortcuts[index].remove();\n this.registeredShortcuts.splice(index, 1);\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\n/**\n * Block Settings\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n */\nexport default class BlockSettings extends Module {\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n public get events(): {opened: string, closed: string} {\n return {\n opened: 'block-settings-opened',\n closed: 'block-settings-closed',\n };\n }\n\n /**\n * Block Settings CSS\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\n */\n private static get CSS() {\n return {\n // Settings Panel\n wrapper: 'ce-settings',\n wrapperOpened: 'ce-settings--opened',\n toolSettings: 'ce-settings__plugin-zone',\n defaultSettings: 'ce-settings__default-zone',\n\n button: 'ce-settings__button',\n };\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n public get opened(): boolean {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Block settings UI HTML elements\n */\n public nodes: {[key: string]: HTMLElement} = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null,\n };\n\n /**\n * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n public make(): void {\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\n\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\n\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\n }\n\n /**\n * Open Block Settings pane\n */\n public open(): void {\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\n\n /**\n * Fill Tool's settings\n */\n this.addToolSettings();\n\n /**\n * Add default settings that presents for all Blocks\n */\n this.addDefaultSettings();\n\n /** Tell to subscribers that block settings is opened */\n this.Editor.Events.emit(this.events.opened);\n }\n\n /**\n * Close Block Settings pane\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\n\n /** Clear settings */\n this.nodes.toolSettings.innerHTML = '';\n this.nodes.defaultSettings.innerHTML = '';\n\n /** Tell to subscribers that block settings is closed */\n this.Editor.Events.emit(this.events.closed);\n }\n\n /**\n * Add Tool's settings\n */\n private addToolSettings(): void {\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\n }\n }\n\n /**\n * Add default settings\n */\n private addDefaultSettings(): void {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\n/**\n *\n * «Toolbar» is the node that moves up/down over current block\n *\n * ______________________________________ Toolbar ____________________________________________\n * | |\n * | ..................... Content .................... ......... Block Actions .......... |\n * | . . . . |\n * | . . . [Open Settings] . |\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\n * | . . . [Settings Panel] . |\n * | .................................................. .................................. |\n * | |\n * |___________________________________________________________________________________________|\n *\n *\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\n *\n * _______________ Toolbox _______________\n * | |\n * | [Header] [Image] [List] [Quote] ... |\n * |_______________________________________|\n *\n *\n * Settings Panel — is an Element with block settings:\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n *\n *\n * @class\n * @classdesc Toolbar module\n *\n * @typedef {Toolbar} Toolbar\n * @property {Object} nodes\n * @property {Element} nodes.wrapper - Toolbar main element\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\n * @property {Element} nodes.toolbox - Container for tools\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\n * @property {Element} nodes.settings - Settings Panel\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\n */\nexport default class Toolbar extends Module {\n /**\n * HTML Elements used for Toolbar UI\n */\n public nodes: {[key: string]: HTMLElement} = {\n wrapper : null,\n content : null,\n actions : null,\n\n // Content Zone\n plusButton : null,\n\n // Actions Zone\n blockActionsButtons: null,\n settingsToggler : null,\n };\n\n /**\n * CSS styles\n * @return {Object}\n */\n private static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\n actionsOpened: 'ce-toolbar__actions--opened',\n\n toolbarOpened: 'ce-toolbar--opened',\n\n // Content Zone\n plusButton: 'ce-toolbar__plus',\n plusButtonHidden: 'ce-toolbar__plus--hidden',\n\n // Actions Zone\n blockActionsButtons: 'ce-toolbar__actions-buttons',\n settingsToggler: 'ce-toolbar__settings-btn',\n };\n }\n\n /**\n * Makes toolbar\n */\n public make(): void {\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\n\n /**\n * Make Content Zone and Actions Zone\n */\n ['content', 'actions'].forEach( (el) => {\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\n $.append(this.nodes.wrapper, this.nodes[el]);\n });\n\n /**\n * Fill Content Zone:\n * - Plus Button\n * - Toolbox\n */\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\n $.append(this.nodes.content, this.nodes.plusButton);\n this.Editor.Listeners.on(this.nodes.plusButton, 'click', () => this.plusButtonClicked(), false);\n\n /**\n * Make a Toolbox\n */\n this.Editor.Toolbox.make();\n\n /**\n * Fill Actions Zone:\n * - Settings Toggler\n * - Remove Block Button\n * - Settings Panel\n */\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\n const settingsIcon = $.svg('dots', 18, 4);\n\n $.append(this.nodes.settingsToggler, settingsIcon);\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\n\n /**\n * Make and append Settings Panel\n */\n this.Editor.BlockSettings.make();\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\n\n /**\n * Append toolbar to the Editor\n */\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Bind events on the Toolbar elements\n */\n this.bindEvents();\n }\n\n /**\n * Move Toolbar to the Current Block\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\n */\n public move(forceClose: boolean = true): void {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n const currentBlock = this.Editor.BlockManager.currentBlock.holder;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * Set Toolbar Min Height as Block's height\n * Plus Button and Toolbox positioned at the center of the Toolbar\n */\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\n\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n /**\n * Move Toolbar to the Top coordinate of Block\n */\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button and Actions\n * @param {boolean} withBlockActions - by default, Toolbar opens with Block Actions.\n * This flag allows to open Toolbar without Actions.\n * @param {boolean} needToCloseToolbox - by default, Toolbar will be moved with opening\n * (by click on Block, or by enter)\n * with closing Toolbox and Block Settings\n * This flag allows to open Toolbar with Toolbox\n */\n public open(withBlockActions: boolean = true, needToCloseToolbox: boolean = true): void {\n setTimeout(() => {\n this.move(needToCloseToolbox);\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n\n if (withBlockActions) {\n this.blockActions.show();\n } else {\n this.blockActions.hide();\n }\n }, 50);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n public get opened(): boolean {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\n this.blockActions.hide();\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n /**\n * Plus Button public methods\n * @return {{hide: function(): void, show: function(): void}}\n */\n public get plusButton(): {hide: () => void, show: () => void} {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => {\n if (this.Editor.Toolbox.isEmpty) {\n return;\n }\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\n },\n };\n }\n\n /**\n * Block actions appearance manipulations\n * @return {{hide: function(): void, show: function(): void}}\n */\n private get blockActions(): {hide: () => void, show: () => void} {\n return {\n hide: () => {\n this.nodes.actions.classList.remove(Toolbar.CSS.actionsOpened);\n },\n show : () => {\n this.nodes.actions.classList.add(Toolbar.CSS.actionsOpened);\n },\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n private plusButtonClicked(): void {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n private bindEvents(): void {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', () => this.settingsTogglerClicked());\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n private settingsTogglerClicked(): void {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\nimport BoldInlineTool from '../../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../../inline-tools/inline-tool-link';\nimport SelectionUtils from '../../selection';\nimport _ from '../../utils';\nimport {InlineTool, InlineToolConstructable, ToolConstructable, ToolSettings} from '../../../../types';\n\n/**\n * Inline toolbar with actions that modifies selected text fragment\n *\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\n * | B i [link] [mark] |\n * |________________________|\n */\nexport default class InlineToolbar extends Module {\n\n /**\n * Returns internal inline tools\n * Includes Bold, Italic, Link\n */\n private get internalTools(): {[name: string]: InlineTool} {\n return {\n bold: this.Editor.Tools.constructInline(BoldInlineTool),\n italic: this.Editor.Tools.constructInline(ItalicInlineTool),\n link: this.Editor.Tools.constructInline(LinkInlineTool),\n };\n }\n\n /**\n * Get external tools\n * Tools that has isInline is true\n */\n private get externalTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n\n /**\n * CSS styles\n */\n public CSS = {\n inlineToolbar: 'ce-inline-toolbar',\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\n buttonsWrapper: 'ce-inline-toolbar__buttons',\n actionsWrapper: 'ce-inline-toolbar__actions',\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonLast: 'ce-inline-tool--last',\n };\n\n /**\n * Inline Toolbar elements\n */\n private nodes: {wrapper: HTMLElement, buttons: HTMLElement, actions: HTMLElement} = {\n wrapper: null,\n buttons: null,\n /**\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\n * For example, input for the 'link' tool or textarea for the 'comment' tool\n */\n actions: null,\n };\n\n /**\n * Margin above/below the Toolbar\n */\n private readonly toolbarVerticalMargin: number = 20;\n\n /**\n * Tools instances\n */\n private toolsInstances: Map;\n\n /**\n * Inline Toolbar Tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = this.inlineTools;\n\n this.toolsInstances = new Map();\n for (const tool in allTools) {\n if (allTools.hasOwnProperty(tool)) {\n this.toolsInstances.set(tool, allTools[tool]);\n }\n }\n }\n\n return this.toolsInstances;\n }\n\n /**\n * Making DOM\n */\n public make() {\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\n\n /**\n * Append Inline Toolbar to the Editor\n */\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Append Inline Toolbar Tools\n */\n this.addTools();\n\n }\n\n /**\n * Moving / appearance\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Shows Inline Toolbar by keyup/mouseup\n * @param {KeyboardEvent|MouseEvent} event\n */\n public handleShowingEvent(event): void {\n if (!this.allowedToShow(event)) {\n this.close();\n return;\n }\n\n this.move();\n this.open();\n\n /** Check Tools state for selected fragment */\n this.checkToolsState();\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Move Toolbar to the selected text\n */\n public move(): void {\n const selectionRect = SelectionUtils.rect as DOMRect;\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\n const newCoords = {\n x: selectionRect.x - wrapperOffset.left,\n y: selectionRect.y\n + selectionRect.height\n // + window.scrollY\n - wrapperOffset.top\n + this.toolbarVerticalMargin,\n };\n\n /**\n * If we know selections width, place InlineToolbar to center\n */\n if (selectionRect.width) {\n newCoords.x += Math.floor(selectionRect.width / 2);\n }\n\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\n }\n\n /**\n * Hides Inline Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Shows Inline Toolbar\n */\n private open(): void {\n /**\n * Filter inline-tools and show only allowed by Block's Tool\n */\n this.filterTools();\n\n /**\n * Show Inline Toolbar\n */\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\n\n /**\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\n */\n this.tools.forEach( (toolInstance: InlineTool) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Need to show Inline Toolbar or not\n * @param {KeyboardEvent|MouseEvent} event\n */\n private allowedToShow(event): boolean {\n /**\n * Tags conflicts with window.selection function.\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\n */\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\n\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\n return false;\n }\n\n const currentSelection = SelectionUtils.get(),\n selectedText = SelectionUtils.text;\n\n // old browsers\n if (!currentSelection || !currentSelection.anchorNode) {\n return false;\n }\n\n // empty selection\n if (currentSelection.isCollapsed || selectedText.length < 1) {\n return false;\n }\n\n // is enabled by current Block's Tool\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n if (!currentBlock) {\n return false;\n }\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n }\n\n /**\n * Show only allowed Tools\n */\n private filterTools(): void {\n const currentSelection = SelectionUtils.get(),\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n\n /**\n * All Inline Toolbar buttons\n * @type {HTMLElement[]}\n */\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\n\n /**\n * Show previously hided\n */\n buttons.forEach((button) => {\n button.hidden = false;\n button.classList.remove(this.CSS.inlineToolButtonLast);\n });\n\n /**\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\n */\n if (Array.isArray(inlineToolbarSettings)) {\n buttons.forEach((button) => {\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\n });\n }\n\n /**\n * Tick for removing right-margin from last visible button.\n * Current generation of CSS does not allow to filter :visible elements\n */\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\n\n if (lastVisibleButton) {\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\n }\n }\n\n /**\n * Working with Tools\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Fill Inline Toolbar with Tools\n */\n private addTools(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n this.addTool(toolName, toolInstance);\n });\n }\n\n /**\n * Add tool button and activate clicks\n */\n private addTool(toolName: string, tool: InlineTool): void {\n const {\n Listeners,\n Tools,\n } = this.Editor;\n\n const button = tool.render();\n\n if (!button) {\n _.log('Render method must return an instance of Node', 'warn', toolName);\n return;\n }\n\n button.dataset.tool = toolName;\n this.nodes.buttons.appendChild(button);\n\n if (typeof tool.renderActions === 'function') {\n const actions = tool.renderActions();\n this.nodes.actions.appendChild(actions);\n }\n\n Listeners.on(button, 'click', (event) => {\n this.toolClicked(tool);\n event.preventDefault();\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * Get internal inline tools\n */\n const internalTools: string[] = Object\n .entries(Tools.internalTools)\n .filter(([name, toolClass]: [string, ToolConstructable|ToolSettings]) => {\n if (_.isFunction(toolClass)) {\n return toolClass[Tools.apiSettings.IS_INLINE];\n }\n\n return (toolClass as ToolSettings).class[Tools.apiSettings.IS_INLINE];\n })\n .map(([name, toolClass]: [string, InlineToolConstructable|ToolSettings]) => name);\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (internalTools.includes(toolName)) {\n shortcut = this.inlineTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[Tools.apiSettings.SHORTCUT];\n }\n\n if (shortcut) {\n this.enableShortcuts(tool, shortcut);\n }\n }\n\n /**\n * Enable Tool shortcut with Editor Shortcuts Module\n * @param {InlineTool} tool - Tool instance\n * @param {string} shortcut - shortcut according to the ShortcutData Module format\n */\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n const {currentBlock} = this.Editor.BlockManager;\n\n /**\n * Editor is not focused\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * We allow to fire shortcut with empty selection (isCollapsed=true)\n * it can be used by tools like «Mention» that works without selection:\n * Example: by SHIFT+@ show dropdown and insert selected username\n */\n // if (SelectionUtils.isCollapsed) return;\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\n return;\n }\n\n event.preventDefault();\n this.toolClicked(tool);\n },\n });\n }\n\n /**\n * Inline Tool button clicks\n * @param {InlineTool} tool - Tool's instance\n */\n private toolClicked(tool: InlineTool): void {\n const range = SelectionUtils.range;\n\n tool.surround(range);\n this.checkToolsState();\n }\n\n /**\n * Check Tools` state by selection\n */\n private checkToolsState(): void {\n this.tools.forEach( (toolInstance) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\n\n /**\n * Get inline tools tools\n * Tools that has isInline is true\n */\n private get inlineTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\nimport _ from '../../utils';\nimport {BlockToolConstructable} from '../../../../types';\n\n/**\n * @class Toolbox\n * @classdesc Holder for Tools\n *\n * @typedef {Toolbox} Toolbox\n * @property {Boolean} opened - opening state\n * @property {Object} nodes - Toolbox nodes\n * @property {Object} CSS - CSS class names\n *\n */\nexport default class Toolbox extends Module {\n\n private static LEAF_DIRECTIONS = {\n RIGHT: 'right',\n LEFT: 'left',\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n public opened: boolean = false;\n\n /**\n * HTMLElements used for Toolbox UI\n */\n public nodes: {\n toolbox: HTMLElement,\n buttons: HTMLElement[],\n } = {\n toolbox: null,\n buttons: [],\n };\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n private activeButtonIndex: number = -1;\n\n /**\n * How many tools displayed in Toolbox\n * @type {number}\n */\n private displayedToolsCount: number = 0;\n\n /**\n * CSS styles\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\n */\n static get CSS() {\n return {\n toolbox: 'ce-toolbox',\n toolboxButton: 'ce-toolbox__button',\n toolboxButtonActive : 'ce-toolbox__button--active',\n toolboxOpened: 'ce-toolbox--opened',\n };\n }\n\n /**\n * Makes the Toolbox\n */\n public make(): void {\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\n\n this.addTools();\n }\n\n /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n public toolButtonActivate(event: MouseEvent|KeyboardEvent, toolName: string): void {\n const tool = this.Editor.Tools.toolsClasses[toolName] as BlockToolConstructable;\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n public open(): void {\n if (this.isEmpty) {\n return;\n }\n\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n public close(): void {\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\n this.opened = false;\n\n /** remove active item pointer */\n this.activeButtonIndex = -1;\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\n\n if (activeButton) {\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n }\n\n /**\n * Close Toolbox\n */\n public toggle(): void {\n if (!this.opened) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * Leaf\n * flip through the toolbox items\n * @param {String} direction - leaf direction, right is default\n */\n public leaf(direction: string = Toolbox.LEAF_DIRECTIONS.RIGHT): void {\n const childNodes = this.nodes.toolbox.childNodes;\n\n /**\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\n */\n if (this.activeButtonIndex === -1) {\n /**\n * Normalize \"previous\" Tool index depending on direction.\n * We need to do this to highlight \"first\" Tool correctly\n *\n * Order of Tools: [0] [1] ... [n - 1]\n * [0 = n] because of: n % n = 0 % n\n *\n * Direction 'right': for [0] the [n - 1] is a previous index\n * [n - 1] -> [0]\n *\n * Direction 'left': for [n - 1] the [0] is a previous index\n * [n - 1] <- [0]\n *\n * @type {number}\n */\n this.activeButtonIndex = direction === Toolbox.LEAF_DIRECTIONS.RIGHT ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n (childNodes[this.activeButtonIndex] as HTMLElement).classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === Toolbox.LEAF_DIRECTIONS.RIGHT) {\n /**\n * If we go right then choose next (+1) Tool\n * @type {number}\n */\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\n } else {\n /**\n * If we go left then choose previous (-1) Tool\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\n * @type {number}\n */\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\n }\n\n /**\n * Highlight new chosen Tool\n */\n (childNodes[this.activeButtonIndex] as HTMLElement).classList.add(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * get tool name when it is selected\n * In case when nothing selection returns null\n *\n * @return {String|null}\n */\n public get getActiveTool(): string {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return (childNodes[this.activeButtonIndex] as HTMLElement).title;\n }\n\n /**\n * Returns True if Toolbox is Empty and nothing to show\n * @return {boolean}\n */\n public get isEmpty(): boolean {\n return this.displayedToolsCount === 0;\n }\n\n /**\n * Iterates available tools and appends them to the Toolbox\n */\n private addTools(): void {\n const tools = this.Editor.Tools.available;\n\n for (const toolName in tools) {\n if (tools.hasOwnProperty(toolName)) {\n this.addTool(toolName, tools[toolName] as BlockToolConstructable);\n }\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {BlockToolConstructable} tool - tool class\n */\n private addTool(toolName: string, tool: BlockToolConstructable): void {\n const api = this.Editor.Tools.apiSettings;\n\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\n return;\n }\n\n /**\n * @todo Add checkup for the render method\n */\n // if (typeof tool.render !== 'function') {\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\n // return;\n // }\n\n /**\n * Skip tools that pass 'displayInToolbox=false'\n */\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\n return;\n }\n\n const button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\n title: toolName,\n });\n\n button.innerHTML = tool.toolboxIcon;\n\n $.append(this.nodes.toolbox, button);\n\n this.nodes.toolbox.appendChild(button);\n this.nodes.buttons.push(button);\n\n /**\n * Add click listener\n */\n this.Editor.Listeners.on(button, 'click', (event: KeyboardEvent|MouseEvent) => {\n this.toolButtonActivate(event, toolName);\n });\n\n /**\n * Enable shortcut\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\n }\n\n /** Increment Tools count */\n this.displayedToolsCount++;\n }\n\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {BlockToolConstructable} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the ShortcutData Module format\n */\n private enableShortcut(tool: BlockToolConstructable, toolName: string, shortcut: string) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event: KeyboardEvent) => {\n event.preventDefault();\n this.insertNewBlock(tool, toolName);\n },\n });\n }\n\n /**\n * Inserts new block\n * Can be called when button clicked on Toolbox or by ShortcutData\n *\n * @param {BlockToolConstructable} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n private insertNewBlock(tool: BlockToolConstructable, toolName: string) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n let newBlock;\n\n if (currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\n\n /**\n * Apply callback before inserting html\n */\n newBlock.call('appendCallback', {});\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * close toolbar when node is changed\n */\n this.Editor.Toolbar.close();\n }\n}\n","import Paragraph from '../tools/paragraph/dist/bundle';\nimport Module from '../__module';\nimport _ from '../utils';\nimport {BlockToolConstructable, ToolConfig, ToolConstructable, ToolSettings} from '../../../types';\nimport BoldInlineTool from '../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\n\n/**\n * @module Codex Editor Tools Submodule\n *\n * Creates Instances from Plugins and binds external config to the instances\n */\n\n/**\n * Class properties:\n *\n * @typedef {Tools} Tools\n * @property {Tools[]} toolsAvailable - available Tools\n * @property {Tools[]} toolsUnavailable - unavailable Tools\n * @property {object} toolsClasses - all classes\n * @property {object} toolsSettings - Tools settings\n * @property {EditorConfig} config - Editor config\n */\nexport default class Tools extends Module {\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n public get available(): {[name: string]: ToolConstructable} {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n public get unavailable(): {[name: string]: ToolConstructable} {\n return this.toolsUnavailable;\n }\n\n /**\n * Return Tools for the Inline Toolbar\n * @return {Object} - object of Inline Tool's classes\n */\n public get inline(): {[name: string]: ToolConstructable} {\n if (this._inlineTools) {\n return this._inlineTools;\n }\n\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (!tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n /**\n * Some Tools validation\n */\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\n const notImplementedMethods = inlineToolRequiredMethods.filter( (method) => !this.constructInline(tool)[method]);\n\n if (notImplementedMethods.length) {\n _.log(\n `Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`,\n 'warn',\n notImplementedMethods,\n );\n return false;\n }\n\n return true;\n });\n\n /**\n * collected inline tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n /**\n * Cache prepared Tools\n */\n this._inlineTools = result;\n\n return this._inlineTools;\n }\n\n /**\n * Return editor block tools\n */\n public get blockTools(): {[name: string]: BlockToolConstructable} {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n return !tool[this.apiSettings.IS_INLINE];\n });\n\n /**\n * collected block tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n return result;\n }\n\n /**\n * Constant for available Tools Settings\n * @return {object}\n */\n public get apiSettings() {\n return {\n CONFIG: 'config',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n SANITIZE_CONFIG: 'sanitize',\n };\n }\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n public readonly toolsClasses: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes available to use\n */\n private readonly toolsAvailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes not availbale to use beacause of preparation failure\n */\n private readonly toolsUnavailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\n */\n private readonly toolsSettings: {[name: string]: ToolSettings} = {};\n\n /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n private _inlineTools: {[name: string]: ToolConstructable} = {};\n\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.toolsClasses = {};\n\n this.toolsSettings = {};\n\n /**\n * Available tools list\n * {name: Class, ...}\n * @type {Object}\n */\n this.toolsAvailable = {};\n\n /**\n * Tools that rejected a prepare method\n * {name: Class, ... }\n * @type {Object}\n */\n this.toolsUnavailable = {};\n\n this._inlineTools = null;\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n public prepare() {\n /**\n * Assign internal tools\n */\n Object.assign(this.config.tools, this.internalTools);\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n throw Error('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for (const toolName in this.config.tools) {\n /**\n * If Tool is an object not a Tool's class then\n * save class and settings separately\n */\n if (typeof this.config.tools[toolName] === 'object') {\n /**\n * Save Tool's class from 'class' field\n * @type {Tool}\n */\n this.toolsClasses[toolName] = (this.config.tools[toolName] as ToolSettings).class;\n\n /**\n * Save Tool's settings\n * @type {ToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName] as ToolSettings;\n\n /**\n * Remove Tool's class from settings\n */\n delete this.toolsSettings[toolName].class;\n } else {\n /**\n * Save Tool's class\n * @type {Tool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName] as ToolConstructable;\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {class: this.config.tools[toolName] as ToolConstructable};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n const sequenceData = this.getListOfPrepareFunctions();\n\n /**\n * if sequence data contains nothing then resolve current chain and run other module prepare\n */\n if (sequenceData.length === 0) {\n return Promise.resolve();\n }\n\n /**\n * to see how it works {@link Util#sequence}\n */\n return _.sequence(sequenceData, (data: any) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n public success(data) {\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * @param {ChainData.data} data - append tool to unavailable list\n */\n public fallback(data) {\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * Return Tool`s instance\n *\n * @param {String} tool — tool name\n * @param {BlockToolData} data — initial data\n * @return {BlockTool}\n */\n public construct(tool, data) {\n const plugin = this.toolsClasses[tool];\n\n /**\n * Configuration to be passed to the Tool's constructor\n */\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\n\n /**\n * @type {{api: API, config: ({}), data: BlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data,\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {InlineTool} tool\n * @return {InlineTool} — instance\n */\n public constructInline(tool) {\n /**\n * @type {{api: API}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n };\n\n return new tool(constructorOptions);\n }\n\n /**\n * Check if passed Tool is an instance of Initial Block Tool\n * @param {Tool} tool - Tool to check\n * @return {Boolean}\n */\n public isInitial(tool) {\n return tool instanceof this.available[this.config.initialBlock];\n }\n\n /**\n * Return Tool's config by name\n * @param {string} toolName\n * @return {ToolSettings}\n */\n public getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n\n /**\n * Binds prepare function of plugins with user or default config\n * @return {Array} list of functions that needs to be fired sequentially\n */\n private getListOfPrepareFunctions(): Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig},\n }> {\n const toolPreparationList: Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig}}\n > = [];\n\n for (const toolName in this.toolsClasses) {\n if (this.toolsClasses.hasOwnProperty(toolName)) {\n const toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function: toolClass.prepare,\n data: {\n toolName,\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG],\n },\n });\n } else {\n /**\n * If Tool hasn't a prepare method, mark it as available\n */\n this.toolsAvailable[toolName] = toolClass;\n }\n }\n }\n\n return toolPreparationList;\n }\n\n /**\n * Returns internal tools\n * Includes Bold, Italic, Link and Paragraph\n */\n get internalTools() {\n return {\n bold: BoldInlineTool,\n italic: ItalicInlineTool,\n link: LinkInlineTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true,\n },\n };\n }\n}\n","/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\n/**\n * Module UI\n *\n * @type {UI}\n */\nimport Module from '../__module';\nimport $ from '../dom';\nimport _ from '../utils';\n\nimport Selection from '../selection';\nimport {ModuleConfig} from '../../types-internal/module-config';\n\n/**\n * @class\n *\n * @classdesc Makes CodeX Editor UI:\n * \n * \n * \n * \n * \n *\n * @typedef {UI} UI\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\n * @property {Object} nodes -\n * @property {Element} nodes.holder - element where we need to append redactor\n * @property {Element} nodes.wrapper - \n * @property {Element} nodes.redactor - \n */\nexport default class UI extends Module {\n\n /**\n * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string}}\n */\n private get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * HTML Elements used for UI\n */\n public nodes: {[key: string]: HTMLElement} = {\n holder: null,\n wrapper: null,\n redactor: null,\n };\n\n /**\n * Making main interface\n */\n public async prepare(): Promise {\n await this.make();\n\n /**\n * Append SVG sprite\n */\n await this.appendSVGSprite();\n\n /**\n * Make toolbar\n */\n await this.Editor.Toolbar.make();\n\n /**\n * Make the Inline toolbar\n */\n await this.Editor.InlineToolbar.make();\n\n /**\n * Load and append CSS\n */\n await this.loadStyles();\n\n /**\n * Bind events for the UI elements\n */\n await this.bindEvents();\n }\n\n /**\n * Clean editor`s UI\n */\n public destroy(): void {\n this.nodes.holder.innerHTML = '';\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise}\n */\n private async make(): Promise {\n /**\n * Element where we need to append CodeX Editor\n * @type {Element}\n */\n this.nodes.holder = document.getElementById(this.config.holderId);\n\n if (!this.nodes.holder) {\n throw Error('Holder wasn\\'t found by ID: #' + this.config.holderId);\n }\n\n /**\n * Create and save main UI elements\n */\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\n\n this.nodes.wrapper.appendChild(this.nodes.redactor);\n this.nodes.holder.appendChild(this.nodes.wrapper);\n }\n\n /**\n * Appends CSS\n */\n private loadStyles(): void {\n /**\n * Load CSS\n */\n const styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n const tag = $.make('style', null, {\n textContent: styles.toString(),\n });\n\n /**\n * Append styles at the top of HEAD tag\n */\n $.prepend(document.head, tag);\n }\n\n /**\n * Bind events on the CodeX Editor interface\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(\n this.nodes.redactor,\n 'click',\n (event) => this.redactorClicked(event as MouseEvent),\n false,\n );\n this.Editor.Listeners.on(document, 'keydown', (event) => this.documentKeydown(event as KeyboardEvent), true );\n this.Editor.Listeners.on(document, 'click', (event) => this.documentClicked(event as MouseEvent), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n private documentKeydown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case _.keyCodes.ENTER:\n this.enterPressed(event);\n break;\n default:\n this.defaultBehaviour(event);\n break;\n }\n }\n\n /**\n * Ignore all other document's keydown events\n * @param {KeyboardEvent} event\n */\n private defaultBehaviour(event: KeyboardEvent): void {\n const keyDownOnEditor = (event.target as HTMLElement).closest(`.${this.CSS.editorWrapper}`);\n\n /**\n * Ignore keydowns on document\n * clear pointer and close toolbar\n */\n if (!keyDownOnEditor) {\n /**\n * Remove all highlights and remove caret\n */\n this.Editor.BlockManager.dropPointer();\n\n /**\n * Close Toolbar\n */\n this.Editor.Toolbar.close();\n }\n }\n\n /**\n * Enter pressed on document\n * @param event\n */\n private enterPressed(event: KeyboardEvent): void {\n const hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\n\n /**\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\n * In our case it is document.body\n *\n * So, BlockManager points some Block and Enter press is on Body\n * We can create a new block\n */\n if (hasPointerToBlock && (event.target as HTMLElement).tagName === 'BODY') {\n /**\n * Insert initial typed Block\n */\n const newBlock = this.Editor.BlockManager.insert();\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * And highlight\n */\n this.Editor.BlockManager.highlightCurrentNode();\n\n /**\n * Move toolbar and show plus button because new Block is empty\n */\n this.Editor.Toolbar.move();\n this.Editor.Toolbar.plusButton.show();\n }\n\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n private documentClicked(event: MouseEvent): void {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const target = event.target as HTMLElement;\n const clickedOnInlineToolbarButton = target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = target.closest(`.${this.CSS.editorWrapper}`);\n\n /** Clear highlightings and pointer on BlockManager */\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\n this.Editor.BlockManager.dropPointer();\n this.Editor.Toolbar.close();\n }\n\n if (!clickedOnInlineToolbarButton) {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n if (Selection.isAtEditor) {\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on the redactor zone\n *\n * @param {MouseEvent} event\n *\n * @description\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\n * it uses for the following:\n * - add CSS modifier for the selected Block\n * - on Enter press, we make a new Block under that\n *\n * 2. Move and show the Toolbar\n *\n * 3. Set a Caret\n *\n * 4. By clicks on the Editor's bottom zone:\n * - if last Block is empty, set a Caret to this\n * - otherwise, add a new empty Block and set a Caret to that\n *\n * 5. Hide the Inline Toolbar\n *\n * @see selectClickedBlock\n *\n */\n private redactorClicked(event: MouseEvent): void {\n const clickedNode = event.target as HTMLElement;\n\n /**\n * Select clicked Block as Current\n */\n try {\n /**\n * Renew Current Block\n */\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\n\n /**\n * Highlight Current Node\n */\n this.Editor.BlockManager.highlightCurrentNode();\n } catch (e) {\n /**\n * If clicked outside first-level Blocks, set Caret to the last empty Block\n */\n this.Editor.Caret.setToTheLastBlock();\n }\n\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n /**\n * Move and open toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Hide the Plus Button\n */\n this.Editor.Toolbar.plusButton.hide();\n\n if (!this.Editor.BlockManager.currentBlock) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * Show the Plus Button if:\n * - Block is an initial-block (Text)\n * - Block is empty\n */\n const isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool);\n\n if (isInitialBlock) {\n /**\n * Check isEmpty only for paragraphs to prevent unnecessary tree-walking on Tools with many nodes (for ex. Table)\n */\n const isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n private appendSVGSprite(): void {\n const spriteHolder = $.make('div');\n\n spriteHolder.hidden = true;\n spriteHolder.style.display = 'none';\n spriteHolder.innerHTML = sprite;\n\n $.append(this.nodes.wrapper, spriteHolder);\n }\n}\n","'use strict';\n\n/**\n * Extend Element interface to include prefixed and experimental properties\n */\ninterface Element {\n matchesSelector: (selector: string) => boolean;\n mozMatchesSelector: (selector: string) => boolean;\n msMatchesSelector: (selector: string) => boolean;\n oMatchesSelector: (selector: string) => boolean;\n\n prepend: (nodes: Node|Node[]|DocumentFragment) => void;\n append: (nodes: Node|Node[]|DocumentFragment) => void;\n}\n\n/**\n * The Element.matches() method returns true if the element\n * would be selected by the specified selector string;\n * otherwise, returns false.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\n */\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\n let i = matches.length;\n\n while (--i >= 0 && matches.item(i) !== this) {\n }\n\n return i > -1;\n };\n}\n\n/**\n * The Element.closest() method returns the closest ancestor\n * of the current element (or the current element itself) which\n * matches the selectors given in parameter.\n * If there isn't such an ancestor, it returns null.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\n */\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n let el = this;\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (el.matches(s)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null);\n\n return null;\n };\n}\n\n/**\n * The ParentNode.prepend method inserts a set of Node objects\n * or DOMString objects before the first child of the ParentNode.\n * DOMString objects are inserted as equivalent Text nodes.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\n */\nif (!Element.prototype.prepend) {\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\n const docFrag = document.createDocumentFragment();\n\n if (!Array.isArray(nodes)) {\n nodes = [ nodes ];\n }\n\n nodes.forEach((node: Node|any) => {\n const isNode = node instanceof Node;\n\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\n });\n\n this.insertBefore(docFrag, this.firstChild);\n };\n}\n","/**\n * TextRange interface fot IE9-\n */\nimport _ from './utils';\n\ninterface TextRange {\n boundingTop: number;\n boundingLeft: number;\n boundingBottom: number;\n boundingRight: number;\n boundingHeight: number;\n boundingWidth: number;\n}\n\n/**\n * Interface for object returned by document.selection in IE9-\n */\ninterface MSSelection {\n createRange: () => TextRange;\n type: string;\n}\n\n/**\n * Extends Document interface for IE9-\n */\ninterface Document {\n selection?: MSSelection;\n}\n\n/**\n * Working with selection\n * @typedef {SelectionUtils} SelectionUtils\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n */\n static get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Returns selected anchor\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\n * @return {Node|null}\n */\n static get anchorNode(): Node|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorNode : null;\n }\n\n /**\n * Returns selection offset according to the anchor node\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\n * @return {Number|null}\n */\n static get anchorOffset(): number|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorOffset : null;\n }\n\n /**\n * Is current selection range collapsed\n * @return {boolean|null}\n */\n static get isCollapsed(): boolean|null {\n const selection = window.getSelection();\n\n return selection ? selection.isCollapsed : null;\n }\n\n /**\n * Check current selection if it is at Editor's zone\n * @return {boolean}\n */\n static get isAtEditor(): boolean {\n const selection = SelectionUtils.get();\n\n /**\n * Something selected on document\n */\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement;\n }\n\n let editorZone = null;\n if (selectedNode) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Return first range\n * @return {Range|null}\n */\n static get range(): Range {\n const selection = window.getSelection();\n\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\n }\n\n /**\n * Calculates position and size of selected text\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\n */\n static get rect(): DOMRect|ClientRect {\n let sel: Selection|MSSelection = (document as Document).selection,\n range: TextRange|Range;\n\n let rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n } as DOMRect;\n\n if (sel && sel.type !== 'Control') {\n sel = sel as MSSelection;\n range = sel.createRange() as TextRange;\n rect.x = range.boundingLeft;\n rect.y = range.boundingTop;\n rect.width = range.boundingWidth;\n rect.height = range.boundingHeight;\n\n return rect;\n }\n\n if (!window.getSelection) {\n _.log('Method window.getSelection is not supported', 'warn');\n return rect;\n }\n\n sel = window.getSelection();\n\n if (!sel.rangeCount) {\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\n return rect;\n }\n\n range = sel.getRangeAt(0).cloneRange() as Range;\n\n if (range.getBoundingClientRect) {\n rect = range.getBoundingClientRect() as DOMRect;\n }\n // Fall back to inserting a temporary element\n if (rect.x === 0 && rect.y === 0) {\n const span = document.createElement('span');\n\n if (span.getBoundingClientRect) {\n // Ensure span has dimensions and position by\n // adding a zero-width space character\n span.appendChild( document.createTextNode('\\u200b') );\n range.insertNode(span);\n rect = span.getBoundingClientRect() as DOMRect;\n\n const spanParent = span.parentNode;\n\n spanParent.removeChild(span);\n\n // Glue any broken text nodes back together\n spanParent.normalize();\n }\n }\n\n return rect;\n }\n\n /**\n * Returns selected text as String\n * @returns {string}\n */\n static get text(): string {\n return window.getSelection ? window.getSelection().toString() : '';\n }\n\n /**\n * Returns window SelectionUtils\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\n * @return {Selection}\n */\n public static get(): Selection {\n return window.getSelection();\n }\n\n public instance: Selection = null;\n public selection: Selection = null;\n\n /**\n * This property can store SelectionUtils's range for restoring later\n * @type {Range|null}\n */\n public savedSelectionRange: Range = null;\n\n /**\n * Save SelectionUtils's range\n */\n public save(): void {\n this.savedSelectionRange = SelectionUtils.range;\n }\n\n /**\n * Restore saved SelectionUtils's range\n */\n public restore(): void {\n if (!this.savedSelectionRange) {\n return;\n }\n\n const sel = window.getSelection();\n\n sel.removeAllRanges();\n sel.addRange(this.savedSelectionRange);\n }\n\n /**\n * Clears saved selection\n */\n public clearSaved(): void {\n this.savedSelectionRange = null;\n }\n\n /**\n * Looks ahead to find passed tag from current selection\n *\n * @param {String} tagName - tag to found\n * @param {String} [className] - tag's class name\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\n const selection = window.getSelection();\n let parentTag = null;\n\n /**\n * If selection is missing or no anchorNode or focusNode were found then return null\n */\n if (!selection || !selection.anchorNode || !selection.focusNode) {\n return null;\n }\n\n /**\n * Define Nodes for start and end of selection\n */\n const boundNodes = [\n /** the Node in which the selection begins */\n selection.anchorNode as HTMLElement,\n /** the Node in which the selection ends */\n selection.focusNode as HTMLElement,\n ];\n\n /**\n * For each selection parent Nodes we try to find target tag [with target class name]\n * It would be saved in parentTag variable\n */\n boundNodes.forEach((parent) => {\n /** Reset tags limit */\n let searchDepthIterable = searchDepth;\n\n while (searchDepthIterable > 0 && parent.parentNode) {\n /**\n * Check tag's name\n */\n if (parent.tagName === tagName) {\n /**\n * Save the result\n */\n parentTag = parent;\n\n /**\n * Optional additional check for class-name mismatching\n */\n if (className && parent.classList && !parent.classList.contains(className)) {\n parentTag = null;\n }\n\n /**\n * If we have found required tag with class then go out from the cycle\n */\n if (parentTag) {\n break;\n }\n }\n\n /**\n * Target tag was not found. Go up to the parent and check it\n */\n parent = parent.parentNode as HTMLElement;\n searchDepthIterable--;\n }\n });\n\n /**\n * Return found tag or null\n */\n return parentTag;\n }\n\n /**\n * Expands selection range to the passed parent node\n *\n * @param {HTMLElement} element\n */\n public expandToTag(element: HTMLElement): void {\n const selection = window.getSelection();\n\n selection.removeAllRanges();\n const range = document.createRange();\n\n range.selectNodeContents(element);\n selection.addRange(range);\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Paragraph=e():t.Paragraph=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";var r=function(){function t(t,e){for(var n=0;n=0&&u.splice(e,1)}function h(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),v(e,t.attrs),p(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function b(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var u=s++;n=a||(a=h(e)),r=m.bind(null,n,u,!1),o=m.bind(null,n,u,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",v(e,t.attrs),p(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=l(t,e);return c(n,e),function(t){for(var o=[],i=0;i any;\n}\n\n/**\n * Codex Editor Util\n */\nexport default class Util {\n /**\n * Custom logger\n *\n * @param {string} msg - message\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\n * @param {*} [args] - argument to log with a message\n * @param {string} style - additional styling to message\n */\n public static log(msg: string, type: string = 'log', args?: any, style: string = 'color: inherit'): void {\n\n if ( !('console' in window) || !window.console[ type ] ) {\n return;\n }\n\n const editorLabelText = `Editor.js ${VERSION}`;\n const editorLabelStyle = `line-height: 1em;\n color: #006FEA;\n display: inline-block;\n font-size: 11px;\n line-height: 1em;\n background-color: #fff;\n padding: 4px 9px;\n border-radius: 30px;\n border: 1px solid rgba(56, 138, 229, 0.16);\n margin: 4px 5px 4px 0;`;\n\n try {\n if (['time', 'timeEnd'].includes(type)) {\n console[type](`( ${editorLabelText} ) ${msg}`);\n } else if (args) {\n console[type](`%c${editorLabelText}%c ${msg} %o`, editorLabelStyle, style, args);\n } else {\n console[type](`%c${editorLabelText}%c ${msg}`, editorLabelStyle, style);\n }\n } catch (ignored) {}\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes() {\n return {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n DOWN: 40,\n RIGHT: 39,\n DELETE: 46,\n META: 91,\n };\n }\n\n /**\n * Fires a promise sequence asyncronically\n *\n * @param {ChainData[]} chains - list or ChainData's\n * @param {Function} success - success callback\n * @param {Function} fallback - callback that fires in case of errors\n *\n * @return {Promise}\n */\n public static async sequence(\n chains: ChainData[],\n success: (data: any) => void = () => {},\n fallback: (data: any) => void = () => {},\n ): Promise {\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n async function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise {\n try {\n await chainData.function(chainData.data);\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n } catch (e) {\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n }\n }\n\n /**\n * pluck each element from queue\n * First, send resolved Promise as previous value\n * Each plugins \"prepare\" method returns a Promise, that's why\n * reduce current element will not be able to continue while can't get\n * a resolved Promise\n */\n return await chains.reduce(async (previousValue, currentValue) => {\n await previousValue;\n return waitNextBlock(currentValue, success, fallback);\n }, Promise.resolve());\n }\n\n /**\n * Make array from array-like collection\n *\n * @param {ArrayLike} collection\n *\n * @return {Array}\n */\n public static array(collection: ArrayLike): any[] {\n return Array.prototype.slice.call(collection);\n }\n\n /**\n * Check if passed variable is a function\n * @param {*} fn\n * @return {boolean}\n */\n public static isFunction(fn: any): boolean {\n return typeof fn === 'function';\n }\n\n /**\n * Check if passed function is a class\n * @param {function} fn\n * @return {boolean}\n */\n public static isClass(fn: any): boolean {\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\n }\n\n /**\n * Checks if object is empty\n *\n * @param {Object} object\n * @return {boolean}\n */\n public static isEmpty(object: object): boolean {\n return Object.keys(object).length === 0 && object.constructor === Object;\n }\n\n /**\n * Check if passed object is a Promise\n * @param {*} object - object to check\n * @return {Boolean}\n */\n public static isPromise(object: any): boolean {\n return Promise.resolve(object) === object;\n }\n\n /**\n * Check if passed element is contenteditable\n * @param {HTMLElement} element\n * @return {boolean}\n */\n public static isContentEditable(element: HTMLElement): boolean {\n return element.contentEditable === 'true';\n }\n\n /**\n * Delays method execution\n *\n * @param {Function} method\n * @param {Number} timeout\n */\n public static delay(method: (...args: any[]) => any, timeout: number) {\n return function() {\n const context = this,\n args = arguments;\n\n window.setTimeout(() => method.apply(context, args), timeout);\n };\n }\n\n /**\n * Get file extension\n *\n * @param {File} file\n * @return string\n */\n public static getFileExtension(file: File): string {\n return file.name.split('.').pop();\n }\n\n /**\n * Check if string is MIME type\n *\n * @param {string} type\n * @return boolean\n */\n public static isValidMimeType(type: string): boolean {\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\n }\n\n /**\n * Debouncing method\n * Call method after passed time\n *\n * Note that this method returns Function and declared variable need to be called\n *\n * @param {Function} func - function that we're throttling\n * @param {Number} wait - time in milliseconds\n * @param {Boolean} immediate - call now\n * @return {Function}\n */\n public static debounce(func: () => void, wait?: number , immediate?: boolean): () => void {\n let timeout;\n\n return () => {\n const context = this,\n args = arguments;\n\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n const callNow = immediate && !timeout;\n\n window.clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n\n /**\n * Copies passed text to the clipboard\n * @param text\n */\n public static copyTextToClipboard(text) {\n const el = Dom.make('div', 'codex-editor-clipboard', {\n innerHTML: text,\n });\n\n document.body.appendChild(el);\n\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNode(el);\n\n window.getSelection().removeAllRanges();\n selection.addRange(range);\n\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n}\n","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":root {\\n /**\\n * Selection color\\n */\\n --selectionColor: #a8d6ff;\\n\\n /**\\n * Toolbar buttons\\n */\\n --bg-light: #eff2f5;\\n\\n /**\\n * All gray texts: placeholders, settings\\n */\\n --grayText: #707684;\\n\\n /**\\n * Blue icons\\n */\\n --color-active-icon: #388AE5;\\n\\n /**\\n * Gray border, loaders\\n */\\n --color-gray-border: rgba(201, 201, 204, 0.48);\\n\\n /**\\n * Block content width\\n */\\n --content-width: 650px;\\n\\n /**\\n * Toolbar buttons height and width\\n */\\n --toolbar-buttons-size: 34px;\\n\\n /**\\n * Toolbar Plus Button and Toolbox buttons height and width\\n */\\n --toolbox-buttons-size: 24px;\\n\\n /**\\n * Confirm deletion bg\\n */\\n --color-confirm: #E24A4A;\\n}\\n/**\\n* Editor wrapper\\n*/\\n.codex-editor {\\n position: relative;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.codex-editor .hide {\\n display: none;\\n }\\n.codex-editor__redactor {\\n padding-bottom: 300px;\\n }\\n.codex-editor-copyable {\\n position: absolute;\\n height: 1px;\\n width: 1px;\\n top: -400%;\\n opacity: 0.001;\\n }\\n.codex-editor svg {\\n fill: currentColor;\\n vertical-align: middle;\\n max-height: 100%;\\n }\\n/**\\n * Set color for native selection\\n */\\n::-moz-selection{\\n background-color: #a8d6ff;\\n background-color: var(--selectionColor);\\n}\\n::selection{\\n background-color: #a8d6ff;\\n background-color: var(--selectionColor);\\n}\\n/**\\n * Add placeholder to content editable elements with data attribute\\n * data-placeholder=\\\"Hello world!\\\"\\n */\\n[contentEditable=true][data-placeholder]:empty::before{\\n content: attr(data-placeholder);\\n color: #707684;\\n color: var(--grayText);\\n font-weight: normal;\\n}\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\n opacity: 0.3;\\n}\\n.ce-toolbar {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 0;\\n /*opacity: 0;*/\\n /*visibility: hidden;*/\\n -webkit-transition: opacity 100ms ease;\\n transition: opacity 100ms ease;\\n will-change: opacity, transform;\\n display: none;\\n}\\n.ce-toolbar--opened {\\n display: block;\\n /*opacity: 1;*/\\n /*visibility: visible;*/\\n }\\n.ce-toolbar__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n position: relative;\\n }\\n.ce-toolbar__plus {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center\\n }\\n.ce-toolbar__plus:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbar__plus {\\n\\n position: absolute;\\n left: calc(calc(24px + 10px) * -1);\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\n }\\n.ce-toolbar__plus:hover,\\n .ce-toolbar__plus--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbar__plus--active{\\n -webkit-animation: bounceIn 0.75s 1;\\n animation: bounceIn 0.75s 1;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n }\\n.ce-toolbar__plus--hidden {\\n display: none;\\n }\\n.ce-toolbar__plus,\\n .ce-toolbar .ce-toolbox {\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n }\\n/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 10px;\\n padding-right: 16px;\\n opacity: 0;\\n }\\n.ce-toolbar__actions--opened {\\n opacity: 1;\\n }\\n.ce-toolbar__actions-buttons {\\n text-align: right;\\n }\\n.ce-toolbar__settings-btn {\\n display: inline-block;\\n width: 24px;\\n height: 24px;\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n }\\n.ce-toolbox {\\n position: absolute;\\n visibility: hidden;\\n -webkit-transition: opacity 100ms ease;\\n transition: opacity 100ms ease;\\n will-change: opacity;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: horizontal;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n}\\n.ce-toolbox--opened {\\n opacity: 1;\\n visibility: visible;\\n }\\n.ce-toolbox__button {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n.ce-toolbox__button:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbox__button:hover,\\n .ce-toolbox__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbox__button--active{\\n -webkit-animation: bounceIn 0.75s 1;\\n animation: bounceIn 0.75s 1;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n }\\n.ce-inline-toolbar {\\n position: absolute;\\n background-color: #FFFFFF;\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-inline-toolbar::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n -webkit-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-inline-toolbar {\\n padding: 6px;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n display: none;\\n -webkit-box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n}\\n.ce-inline-toolbar--showed {\\n display: block;\\n }\\n.ce-inline-toolbar [hidden] {\\n display: none !important;\\n }\\n.ce-inline-tool {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.ce-inline-tool:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-inline-tool:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-inline-tool {\\n line-height: normal;\\n}\\n.ce-inline-tool > svg,\\n .ce-inline-tool .icon {\\n margin: auto;\\n }\\n.ce-inline-tool--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-inline-tool--last {\\n margin-right: 0 !important;\\n }\\n.ce-inline-tool--link .icon {\\n margin-top: -2px;\\n }\\n.ce-inline-tool--link .icon--unlink {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--link {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--unlink {\\n display: inline-block;\\n }\\n.ce-inline-tool-input {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n outline: none;\\n border: 0;\\n border-radius: 3px;\\n margin: 6px 0 0;\\n font-size: 13px;\\n padding: 8px;\\n width: 100%;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n display: none\\n }\\n.ce-inline-tool-input::-webkit-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::-ms-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input--showed {\\n display: block;\\n }\\n.ce-settings {\\n position: absolute;\\n background-color: #FFFFFF;\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-settings::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n -webkit-transform: rotate(-45deg);\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-settings {\\n right: 5px;\\n top: 35px;\\n min-width: 124px\\n}\\n.ce-settings::before{\\n left: auto;\\n right: 12px;\\n }\\n.ce-settings {\\n\\n display: none;\\n}\\n.ce-settings--opened {\\n display: block;\\n -webkit-animation-duration: 0.5s;\\n animation-duration: 0.5s;\\n -webkit-animation-name: bounceIn;\\n animation-name: bounceIn;\\n }\\n.ce-settings__plugin-zone:not(:empty){\\n padding: 6px 6px 0;\\n }\\n.ce-settings__default-zone:not(:empty){\\n padding: 6px;\\n }\\n.ce-settings__button {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n }\\n.ce-settings__button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-settings__button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-settings__button {\\n line-height: 32px;\\n }\\n.ce-settings__button > svg,\\n .ce-settings__button .icon {\\n margin: auto;\\n }\\n.ce-settings__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--disabled {\\n cursor: not-allowed !important;\\n opacity: .3;\\n }\\n.ce-settings__button--selected {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--delete {\\n -webkit-transition: background-color 300ms ease;\\n transition: background-color 300ms ease;\\n will-change: background-color;\\n }\\n.ce-settings__button--delete .icon {\\n -webkit-transition: -webkit-transform 200ms ease-out;\\n transition: -webkit-transform 200ms ease-out;\\n transition: transform 200ms ease-out;\\n transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;\\n will-change: transform;\\n }\\n.ce-settings__button--confirm {\\n background-color: #E24A4A;\\n background-color: var(--color-confirm);\\n color: #fff\\n }\\n.ce-settings__button--confirm:hover {\\n background-color: rgb(213, 74, 74) !important;\\n background-color: rgb(213, 74, 74) !important;\\n }\\n.ce-settings__button--confirm .icon {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n }\\n.ce-block:first-of-type {\\n margin-top: 0;\\n }\\n.ce-block--focused {\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\n border-radius: 3px;\\n }\\n.ce-block--selected .ce-block__content {\\n background: #a8d6ff;\\n background: var(--selectionColor);\\n -webkit-box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\n -webkit-animation: selectionBounce 0.2s 1;\\n animation: selectionBounce 0.2s 1;\\n -webkit-animation-fill-mode: forwards;\\n animation-fill-mode: forwards;\\n }\\n.ce-block--selected .ce-block__content img {\\n opacity: 0.55;\\n }\\n.ce-block--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n position: relative;\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n }\\n.ce-block--drop-target .ce-block__content:before {\\n content: '';\\n position: absolute;\\n top: 100%;\\n left: -20px;\\n margin-top: -1px;\\n height: 8px;\\n width: 8px;\\n border: solid #388AE5;\\n border: solid var(--color-active-icon);\\n border-width: 1px 1px 0 0;\\n -webkit-transform-origin: right;\\n transform-origin: right;\\n -webkit-transform: rotate(45deg);\\n transform: rotate(45deg);\\n }\\n.ce-block--drop-target .ce-block__content:after {\\n content: '';\\n position: absolute;\\n top: 100%;\\n height: 1px;\\n width: 100%;\\n color: #388AE5;\\n color: var(--color-active-icon);\\n background: repeating-linear-gradient(\\n 90deg,\\n #388AE5,\\n #388AE5 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n background: repeating-linear-gradient(\\n 90deg,\\n var(--color-active-icon),\\n var(--color-active-icon) 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n }\\n.wobble {\\n -webkit-animation-name: wobble;\\n animation-name: wobble;\\n -webkit-animation-duration: 400ms;\\n animation-duration: 400ms;\\n}\\n/**\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\n */\\n@-webkit-keyframes wobble {\\n from {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes wobble {\\n from {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@-webkit-keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@-webkit-keyframes selectionBounce {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 50% {\\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\\n transform: scale3d(1.01, 1.01, 1.01);\\n }\\n\\n 70% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@keyframes selectionBounce {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 50% {\\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\\n transform: scale3d(1.01, 1.01, 1.01);\\n }\\n\\n 70% {\\n -webkit-transform: scale3d(1, 1, 1);\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n/**\\n * Block Tool wrapper\\n */\\n.cdx-block {\\n padding: 0.7em 0;\\n}\\n/**\\n * Input\\n */\\n.cdx-input {\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n -webkit-box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n border-radius: 3px;\\n padding: 10px 12px;\\n outline: none;\\n width: 100%;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n/**\\n * Settings\\n */\\n.cdx-settings-button {\\n display: -webkit-inline-box;\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.cdx-settings-button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.cdx-settings-button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.cdx-settings-button > svg,\\n .cdx-settings-button .icon {\\n margin: auto;\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n/**\\n * Loader\\n */\\n.cdx-loader {\\n position: relative;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border)\\n}\\n.cdx-loader::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 18px;\\n height: 18px;\\n margin: -11px 0 0 -11px;\\n border: 2px solid rgba(201, 201, 204, 0.48);\\n border: 2px solid var(--color-gray-border);\\n border-left-color: #388AE5;\\n border-left-color: var(--color-active-icon);\\n border-radius: 50%;\\n -webkit-animation: cdxRotation 1.2s infinite linear;\\n animation: cdxRotation 1.2s infinite linear;\\n }\\n@-webkit-keyframes cdxRotation {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes cdxRotation {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n/**\\n * Button\\n */\\n.cdx-button {\\n padding: 13px;\\n border-radius: 3px;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n font-size: 14.9px;\\n background: #fff;\\n -webkit-box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n color: #707684;\\n color: var(--grayText);\\n text-align: center;\\n cursor: pointer\\n}\\n.cdx-button:hover {\\n background: #FBFCFE;\\n -webkit-box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n }\\n.cdx-button svg {\\n height: 20px;\\n margin-right: 0.2em;\\n margin-top: -2px;\\n }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/tools.md b/docs/tools.md index 49bc8469..6eadd32b 100644 --- a/docs/tools.md +++ b/docs/tools.md @@ -47,7 +47,7 @@ Method that specifies how to merge two `Blocks` of the same type, for example on Method does accept data object in same format as the `Render` and it should provide logic how to combine new data with the currently stored value. -### Internal Tool Settings +## Internal Tool Settings Options that Tool can specify. All settings should be passed as static properties of Tool's class. @@ -58,7 +58,7 @@ Options that Tool can specify. All settings should be passed as static propertie | `enableLineBreaks` | _Boolean_ | `false` | With this option, CodeX Editor won't handle Enter keydowns. Can be helpful for Tools like `` where line breaks should be handled by default behaviour. | | `isInline` | _Boolean_ | `false` | Describes Tool as a [Tool for the Inline Toolbar](tools-inline.md) | -### User configuration +## User configuration All Tools can be configured by users. You can set up some of available settings along with Tool's class to the `tools` property of Editor Config. @@ -85,58 +85,58 @@ There are few options available by CodeX Editor. | `inlineToolbar` | _Boolean/Array_ | `false` | Pass `true` to enable the Inline Toolbar with all Tools, or pass an array with specified Tools list | | `config` | _Object_ | `null` | User's configuration for Plugin. -### Paste handling +## Paste handling CodeX Editor handles paste on Blocks and provides API for Tools to process the pasted data. -When user pastes content into Editor, pasted content is splitted into blocks. +When user pastes content into Editor, pasted content will be splitted into blocks. -1. If plain text has been pasted, it is split by new line characters -2. If HTML string has been pasted, it is split by block tags +1. If plain text will be pasted, it will be splitted by new line characters +2. If HTML string will be pasted, it will be splitted by block tags -Also Editor API allows you to define RegExp patterns to substitute them by your data. +Also Editor API allows you to define your own pasting scenario. You can either: -To provide paste handling for your Tool you need to define static getter `onPaste` in Tool class. -`onPaste` getter should return object with fields described below. +1. Specify **HTML tags**, that can be represented by your Tool. For example, Image Tool can handle `` tags. +If tags you specified will be found on content pasting, your Tool will be rendered. +2. Specify **RegExp** for pasted strings. If pattern has been matched, your Tool will be rendered. +3. Specify **MIME type** or **extensions** of files that can be handled by your Tool on pasting by drag-n-drop or from clipboard. + +For each scenario, you should do 2 next things: -##### HTML tags handling +1. Define static getter `pasteConfig` in Tool class. Specify handled patterns there. +2. Define public method `onPaste` that will handle PasteEvent to process pasted data. -To handle pasted HTML elements object returned from `onPaste` getter should contain following fields: +### HTML tags handling + +To handle pasted HTML elements object returned from `pasteConfig` getter should contain following field: | Name | Type | Description | | -- | -- | -- | -| `handler(content: HTMLElement)` | `Function` | _Optional_. Pasted HTML elements handler. Gets one argument `content`. `content` is HTML element extracted from pasted data. Handler should return the same object as Tool's `save` method | -| `tags` | `String[]` | _Optional_. Should contain all tag names you want to be extracted from pasted data and be passed to your `handler` method | +| `tags` | `String[]` | _Optional_. Should contain all tag names you want to be extracted from pasted data and processed by your `onPaste` method | - -For correct work you MUST provide `onPaste.handler` at least for `initialBlock` Tool. +For correct work you MUST provide `onPaste` handler at least for `initialBlock` Tool. > Example -Header tool can handle `H1`-`H6` tags using paste handling API +Header Tool can handle `H1`-`H6` tags using paste handling API ```javascript -static get onPaste() { +static get pasteConfig() { return { tags: ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'], - handler: (element) => ({ - type: element.tagName, - text: element.innerHTML - }) } } ``` -> One tag can be handled by one Tool only. +> Same tag can be handled by one (first specified) Tool only. -##### Patterns handling +### RegExp patterns handling -Your Tool can analyze text by RegExp patterns to substitute pasted string with data you want. Object returned from `onPaste` getter should contain following fields to use patterns: +Your Tool can analyze text by RegExp patterns to substitute pasted string with data you want. Object returned from `pasteConfig` getter should contain following field to use patterns: | Name | Type | Description | | -- | -- | -- | | `patterns` | `Object` | _Optional_. `patterns` object contains RegExp patterns with their names as object's keys | -| `patternHandler(text: string, key: string)` | `Function` | _Optional_. Gets pasted string and pattern name. Should return the same object as Tool `save` method | **Note** Editor will check pattern's full match, so don't forget to handle all available chars in there. @@ -144,70 +144,91 @@ Pattern will be processed only if paste was on `initialBlock` Tool and pasted st > Example -You can handle youtube links and insert embeded video instead: +You can handle YouTube links and insert embeded video instead: ```javascript -static get onPaste() { +static get pasteConfig() { return { patterns: { youtube: /http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?[\w\?‌​=]*)?/ }, - patternHandler: (text, key) => { - const urlData = Youtube.onPaste.patterns[key].exec(text); - - return { - iframe: Youtube.makeEmbededFromURL(urlData) - }; - } } } ``` -> Both `onPaste.handler` and `onPaste.patternHandler` can be `async` or return a `Promise`. - -##### Files +### Files pasting Your Tool can handle files pasted or dropped into the Editor. -To handle file you should provide `files` and `fileHandler` properties in your `onPaste` configuration object. +To handle file you should provide `files` property in your `pasteConfig` configuration object. -`fileHandler` property should be a function which takes File object as an argument and returns the same object as Tool\`s `save` method. - -`file` property is an object with the following fields: +`files` property is an object with the following fields: | Name | Type | Description | | ---- | ---- | ----------- | | `extensions` | `string[]` | _Optional_ Array of extensions your Tool can handle | | `mimeTypes` | `sring[]` | _Optional_ Array of MIME types your Tool can handle | - - Example ```javascript -static get onPaste() { +static get pasteConfig() { return { files: { mimeTypes: ['image/png'], extensions: ['json'] - }, - fileHandler: (file) => { - /* do smth with the file */ - - return { - data // Some extracted content - } } } } ``` -### Sanitize +### Pasted data handling + +If you registered some paste substitutions in `pasteConfig` property, you **should** provide `onPaste` callback in your Tool class. +`onPaste` should be public non-static method. It accepts custom _PasteEvent_ object as argument. + +PasteEvent is an alias for three types of events - `tag`, `pattern` and `file`. You can get the type from _PasteEvent_ object's `type` property. +Each of these events provide `detail` property with info about pasted content. + +| Type | Detail | +| ----- | ------ | +| `tag` | `data` - pasted HTML element | +| `pattern` | `key` - matched pattern key you specified in `pasteConfig` object
    `data` - pasted string | +| `file` | `file` - pasted file | + +Example + +```javascript +onPaste (event) { + switch (event.type) { + case 'tag': + const element = event.detail.data; + + this.handleHTMLPaste(element); + break; + + case 'pattern': + const text = event.detail.data; + const key = event.detail.key; + + this.handlePatternPaste(key, text); + break; + + case 'file': + const file = event.detail.file; + + this.handleFilePaste(file); + break; + } +} +``` + +## Sanitize CodeX Editor provides [API](sanitizer.md) to clean taint strings. Use it manually at the `save()` method or or pass `sanitizer` config to do it automatically. -#### Sanitizer Configuration +### Sanitizer Configuration The example of sanitizer configuration @@ -220,7 +241,7 @@ let sanitizerConfig = { Keys of config object is tags and the values is a rules. -##### Rule +#### Rule Rule can be boolean, object or function. Object is a dictionary of rules for tag's attributes. @@ -262,7 +283,7 @@ a: function(el) { } ``` -#### Manual sanitize +### Manual sanitize Call API method `sanitizer.clean()` at the save method for each field in returned data. @@ -274,7 +295,7 @@ save() { } ``` -#### Automatic sanitize +### Automatic sanitize If you pass the sanitizer config as static getter, CodeX Editor will automatically sanitize your saved data. diff --git a/example/example.html b/example/example.html index 9303c678..e3821aad 100644 --- a/example/example.html +++ b/example/example.html @@ -27,7 +27,7 @@