diff --git a/.gitmodules b/.gitmodules index 9594c5902..88a1d16ba 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,9 @@ [submodule "src/components/tools/paragraph"] path = src/components/tools/paragraph url = https://github.com/codex-editor/paragraph +[submodule "example/tools/marker"] + path = example/tools/marker + url = https://github.com/codex-editor/marker +[submodule "example/tools/code"] + path = example/tools/code + url = https://github.com/codex-editor/code diff --git a/build/codex-editor.js b/build/codex-editor.js index 453d1cd23..6dec3229a 100644 --- a/build/codex-editor.js +++ b/build/codex-editor.js @@ -22,7 +22,11 @@ /*!**************************************************!*\ !*** ./node_modules/babel-polyfill/lib/index.js ***! \**************************************************/ -/*! no static exports found */function(e,o,t){"use strict";(function(e){if(t(/*! core-js/shim */"./node_modules/core-js/shim.js"),t(/*! regenerator-runtime/runtime */"./node_modules/regenerator-runtime/runtime.js"),t(/*! core-js/fn/regexp/escape */"./node_modules/core-js/fn/regexp/escape.js"),e._babelPolyfill)throw new Error("only one instance of babel-polyfill is allowed");e._babelPolyfill=!0;var o="defineProperty";function s(e,t,s){e[t]||Object[o](e,t,{writable:!0,configurable:!0,value:s})}s(String.prototype,"padLeft","".padStart),s(String.prototype,"padRight","".padEnd),"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function(e){[][e]&&s(Array,e,Function.call.bind([][e]))})}).call(this,t(/*! ./../../webpack/buildin/global.js */"./node_modules/webpack/buildin/global.js"))},"./node_modules/babel-register/lib/browser.js": +/*! no static exports found */function(e,o,t){"use strict";(function(e){if(t(/*! core-js/shim */"./node_modules/core-js/shim.js"),t(/*! regenerator-runtime/runtime */"./node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js"),t(/*! core-js/fn/regexp/escape */"./node_modules/core-js/fn/regexp/escape.js"),e._babelPolyfill)throw new Error("only one instance of babel-polyfill is allowed");e._babelPolyfill=!0;var o="defineProperty";function s(e,t,s){e[t]||Object[o](e,t,{writable:!0,configurable:!0,value:s})}s(String.prototype,"padLeft","".padStart),s(String.prototype,"padRight","".padEnd),"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function(e){[][e]&&s(Array,e,Function.call.bind([][e]))})}).call(this,t(/*! ./../../webpack/buildin/global.js */"./node_modules/webpack/buildin/global.js"))},"./node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js ***! + \*********************************************************************************/ +/*! no static exports found */function(e,o,t){(function(o){!function(o){"use strict";var t,s=Object.prototype,n=s.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},l=r.iterator||"@@iterator",u=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag",d="object"==typeof e,c=o.regeneratorRuntime;if(c)d&&(e.exports=c);else{(c=o.regeneratorRuntime=d?e.exports:{}).wrap=v;var a="suspendedStart",m="suspendedYield",f="executing",j="completed",_={},p={};p[l]=function(){return this};var h=Object.getPrototypeOf,b=h&&h(h(N([])));b&&b!==s&&n.call(b,l)&&(p=b);var y=w.prototype=k.prototype=Object.create(p);x.prototype=y.constructor=w,w.constructor=x,w[i]=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,i in e||(e[i]="GeneratorFunction")),e.prototype=Object.create(y),e},c.awrap=function(e){return{__await:e}},S(E.prototype),E.prototype[u]=function(){return this},c.AsyncIterator=E,c.async=function(e,o,t,s){var n=new E(v(e,o,t,s));return c.isGeneratorFunction(o)?n:n.next().then(function(e){return e.done?e.value:n.next()})},S(y),y[i]="Generator",y[l]=function(){return this},y.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 s=o.pop();if(s in e)return t.value=s,t.done=!1,t}return t.done=!0,t}},c.values=N,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(M),!e)for(var o in this)"t"===o.charAt(0)&&n.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 s(s,n){return u.type="throw",u.arg=e,o.next=s,n&&(o.method="next",o.arg=t),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var l=this.tryEntries[r],u=l.completion;if("root"===l.tryLoc)return s("end");if(l.tryLoc<=this.prev){var i=n.call(l,"catchLoc"),d=n.call(l,"finallyLoc");if(i&&d){if(this.prev=0;--t){var s=this.tryEntries[t];if(s.tryLoc<=this.prev&&n.call(s,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),M(t),_}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var s=t.completion;if("throw"===s.type){var n=s.arg;M(t)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,s){return this.delegate={iterator:N(e),resultName:o,nextLoc:s},"next"===this.method&&(this.arg=t),_}}}function v(e,o,t,s){var n=o&&o.prototype instanceof k?o:k,r=Object.create(n.prototype),l=new O(s||[]);return r._invoke=function(e,o,t){var s=a;return function(n,r){if(s===f)throw new Error("Generator is already running");if(s===j){if("throw"===n)throw r;return B()}for(t.method=n,t.arg=r;;){var l=t.delegate;if(l){var u=C(l,t);if(u){if(u===_)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(s===a)throw s=j,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);s=f;var i=g(e,o,t);if("normal"===i.type){if(s=t.done?j:m,i.arg===_)continue;return{value:i.arg,done:t.done}}"throw"===i.type&&(s=j,t.method="throw",t.arg=i.arg)}}}(e,t,l),r}function g(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){function t(o,s,r,l){var u=g(e[o],e,s);if("throw"!==u.type){var i=u.arg,d=i.value;return d&&"object"==typeof d&&n.call(d,"__await")?Promise.resolve(d.__await).then(function(e){t("next",e,r,l)},function(e){t("throw",e,r,l)}):Promise.resolve(d).then(function(e){i.value=e,r(i)},l)}l(u.arg)}var s;"object"==typeof o.process&&o.process.domain&&(t=o.process.domain.bind(t)),this._invoke=function(e,o){function n(){return new Promise(function(s,n){t(e,o,s,n)})}return s=s?s.then(n,n):n()}}function C(e,o){var s=e.iterator[o.method];if(s===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 _;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return _}var n=g(s,e.iterator,o.arg);if("throw"===n.type)return o.method="throw",o.arg=n.arg,o.delegate=null,_;var r=n.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,_):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,_)}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 M(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 N(e){if(e){var o=e[l];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var s=-1,r=function o(){for(;++s=0,r=n&&s.regeneratorRuntime;if(s.regeneratorRuntime=void 0,e.exports=t(/*! ./runtime */"./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js"),n)s.regeneratorRuntime=r;else try{delete s.regeneratorRuntime}catch(e){s.regeneratorRuntime=void 0}},"./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js": -/*!********************************************************************************!*\ - !*** ./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js ***! - \********************************************************************************/ -/*! no static exports found */function(e,o){!function(o){"use strict";var t,s=Object.prototype,n=s.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},l=r.iterator||"@@iterator",u=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag",d="object"==typeof e,c=o.regeneratorRuntime;if(c)d&&(e.exports=c);else{(c=o.regeneratorRuntime=d?e.exports:{}).wrap=v;var a="suspendedStart",m="suspendedYield",f="executing",j="completed",_={},p={};p[l]=function(){return this};var h=Object.getPrototypeOf,b=h&&h(h(N([])));b&&b!==s&&n.call(b,l)&&(p=b);var y=w.prototype=k.prototype=Object.create(p);x.prototype=y.constructor=w,w.constructor=x,w[i]=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,i in e||(e[i]="GeneratorFunction")),e.prototype=Object.create(y),e},c.awrap=function(e){return{__await:e}},S(E.prototype),E.prototype[u]=function(){return this},c.AsyncIterator=E,c.async=function(e,o,t,s){var n=new E(v(e,o,t,s));return c.isGeneratorFunction(o)?n:n.next().then(function(e){return e.done?e.value:n.next()})},S(y),y[i]="Generator",y[l]=function(){return this},y.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 s=o.pop();if(s in e)return t.value=s,t.done=!1,t}return t.done=!0,t}},c.values=N,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(M),!e)for(var o in this)"t"===o.charAt(0)&&n.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 s(s,n){return u.type="throw",u.arg=e,o.next=s,n&&(o.method="next",o.arg=t),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var l=this.tryEntries[r],u=l.completion;if("root"===l.tryLoc)return s("end");if(l.tryLoc<=this.prev){var i=n.call(l,"catchLoc"),d=n.call(l,"finallyLoc");if(i&&d){if(this.prev=0;--t){var s=this.tryEntries[t];if(s.tryLoc<=this.prev&&n.call(s,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),M(t),_}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var s=t.completion;if("throw"===s.type){var n=s.arg;M(t)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,s){return this.delegate={iterator:N(e),resultName:o,nextLoc:s},"next"===this.method&&(this.arg=t),_}}}function v(e,o,t,s){var n=o&&o.prototype instanceof k?o:k,r=Object.create(n.prototype),l=new O(s||[]);return r._invoke=function(e,o,t){var s=a;return function(n,r){if(s===f)throw new Error("Generator is already running");if(s===j){if("throw"===n)throw r;return B()}for(t.method=n,t.arg=r;;){var l=t.delegate;if(l){var u=C(l,t);if(u){if(u===_)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(s===a)throw s=j,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);s=f;var i=g(e,o,t);if("normal"===i.type){if(s=t.done?j:m,i.arg===_)continue;return{value:i.arg,done:t.done}}"throw"===i.type&&(s=j,t.method="throw",t.arg=i.arg)}}}(e,t,l),r}function g(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,s){function r(){return new Promise(function(o,r){!function o(t,s,r,l){var u=g(e[t],e,s);if("throw"!==u.type){var i=u.arg,d=i.value;return d&&"object"==typeof d&&n.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,l)},function(e){o("throw",e,r,l)}):Promise.resolve(d).then(function(e){i.value=e,r(i)},l)}l(u.arg)}(t,s,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var s=e.iterator[o.method];if(s===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 _;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return _}var n=g(s,e.iterator,o.arg);if("throw"===n.type)return o.method="throw",o.arg=n.arg,o.delegate=null,_;var r=n.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,_):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,_)}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 M(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 N(e){if(e){var o=e[l];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var s=-1,r=function o(){for(;++sr;)l(t[r++]);e._c=[],e._n=!1,o&&!e._h&&A(e)})}},A=function(e){h.call(i,function(){var o,t,s,n=e._v,r=P(e);if(r&&(o=v(function(){T?w.emit("unhandledRejection",n,e):(t=i.onunhandledrejection)?t({promise:e,reason:n}):(s=i.console)&&s.error&&s.error("Unhandled promise rejection",n)}),e._h=T||P(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},P=function(e){return 1!==e._h&&0===(e._a||e._c).length},L=function(e){h.call(i,function(){var o;T?w.emit("rejectionHandled",e):(o=i.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()),I(o,!0))},F=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=B(e))?b(function(){var s={_w:t,_d:!1};try{o.call(e,d(F,s,1),d(R,s,1))}catch(e){R.call(s,e)}}):(t._v=e,t._s=1,I(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};N||(C=function(e){j(this,C,"Promise","_h"),f(e),s.call(this);try{e(d(F,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(s=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/library/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=O(p(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&&I(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new s;this.promise=e,this.resolve=d(F,e,1),this.reject=d(R,e,1)},y.f=O=function(e){return e===C||e===l?new r(e):n(e)}),a(a.G+a.W+a.F*!N,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/library/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/library/modules/_set-species.js")("Promise"),l=t(/*! ./_core */"./node_modules/core-js/library/modules/_core.js").Promise,a(a.S+a.F*!N,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(u||!N),"Promise",{resolve:function(e){return k(u&&this===l?C:this,e)}}),a(a.S+a.F*!(N&&t(/*! ./_iter-detect */"./node_modules/core-js/library/modules/_iter-detect.js")(function(e){C.all(e).catch(M)})),"Promise",{all:function(e){var o=this,t=O(o),s=t.resolve,n=t.reject,r=v(function(){var t=[],r=0,l=1;_(e,!1,function(e){var u=r++,i=!1;t.push(void 0),l++,o.resolve(e).then(function(e){i||(i=!0,t[u]=e,--l||s(t))},n)}),--l||s(t)});return r.e&&n(r.v),t.promise},race:function(e){var o=this,t=O(o),s=t.reject,n=v(function(){_(e,!1,function(e){o.resolve(e).then(t.resolve,s)})});return n.e&&s(n.v),t.promise}})},"./node_modules/core-js/library/modules/es6.string.iterator.js": +/*! no static exports found */function(e,o,t){"use strict";var s,n,r,l,u=t(/*! ./_library */"./node_modules/core-js/library/modules/_library.js"),i=t(/*! ./_global */"./node_modules/core-js/library/modules/_global.js"),d=t(/*! ./_ctx */"./node_modules/core-js/library/modules/_ctx.js"),c=t(/*! ./_classof */"./node_modules/core-js/library/modules/_classof.js"),a=t(/*! ./_export */"./node_modules/core-js/library/modules/_export.js"),m=t(/*! ./_is-object */"./node_modules/core-js/library/modules/_is-object.js"),f=t(/*! ./_a-function */"./node_modules/core-js/library/modules/_a-function.js"),j=t(/*! ./_an-instance */"./node_modules/core-js/library/modules/_an-instance.js"),_=t(/*! ./_for-of */"./node_modules/core-js/library/modules/_for-of.js"),p=t(/*! ./_species-constructor */"./node_modules/core-js/library/modules/_species-constructor.js"),h=t(/*! ./_task */"./node_modules/core-js/library/modules/_task.js").set,b=t(/*! ./_microtask */"./node_modules/core-js/library/modules/_microtask.js")(),y=t(/*! ./_new-promise-capability */"./node_modules/core-js/library/modules/_new-promise-capability.js"),v=t(/*! ./_perform */"./node_modules/core-js/library/modules/_perform.js"),g=t(/*! ./_user-agent */"./node_modules/core-js/library/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/library/modules/_promise-resolve.js"),x=i.TypeError,w=i.process,S=w&&w.versions,E=S&&S.v8||"",C=i.Promise,T="process"==c(w),M=function(){},O=n=y.f,N=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/library/modules/_wks.js")("species")]=function(e){e(M,M)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(M)instanceof o&&0!==E.indexOf("6.6")&&-1===g.indexOf("Chrome/66")}catch(e){}}(),B=function(e){var o;return!(!m(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 s=e._v,n=1==e._s,r=0,l=function(o){var t,r,l,u=n?o.ok:o.fail,i=o.resolve,d=o.reject,c=o.domain;try{u?(n||(2==e._h&&L(e),e._h=1),!0===u?t=s:(c&&c.enter(),t=u(s),c&&(c.exit(),l=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=B(t))?r.call(t,i,d):i(t)):d(s)}catch(e){c&&!l&&c.exit(),d(e)}};t.length>r;)l(t[r++]);e._c=[],e._n=!1,o&&!e._h&&I(e)})}},I=function(e){h.call(i,function(){var o,t,s,n=e._v,r=P(e);if(r&&(o=v(function(){T?w.emit("unhandledRejection",n,e):(t=i.onunhandledrejection)?t({promise:e,reason:n}):(s=i.console)&&s.error&&s.error("Unhandled promise rejection",n)}),e._h=T||P(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},P=function(e){return 1!==e._h&&0===(e._a||e._c).length},L=function(e){h.call(i,function(){var o;T?w.emit("rejectionHandled",e):(o=i.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))},F=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=B(e))?b(function(){var s={_w:t,_d:!1};try{o.call(e,d(F,s,1),d(R,s,1))}catch(e){R.call(s,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};N||(C=function(e){j(this,C,"Promise","_h"),f(e),s.call(this);try{e(d(F,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(s=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/library/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=O(p(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 s;this.promise=e,this.resolve=d(F,e,1),this.reject=d(R,e,1)},y.f=O=function(e){return e===C||e===l?new r(e):n(e)}),a(a.G+a.W+a.F*!N,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/library/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/library/modules/_set-species.js")("Promise"),l=t(/*! ./_core */"./node_modules/core-js/library/modules/_core.js").Promise,a(a.S+a.F*!N,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(u||!N),"Promise",{resolve:function(e){return k(u&&this===l?C:this,e)}}),a(a.S+a.F*!(N&&t(/*! ./_iter-detect */"./node_modules/core-js/library/modules/_iter-detect.js")(function(e){C.all(e).catch(M)})),"Promise",{all:function(e){var o=this,t=O(o),s=t.resolve,n=t.reject,r=v(function(){var t=[],r=0,l=1;_(e,!1,function(e){var u=r++,i=!1;t.push(void 0),l++,o.resolve(e).then(function(e){i||(i=!0,t[u]=e,--l||s(t))},n)}),--l||s(t)});return r.e&&n(r.v),t.promise},race:function(e){var o=this,t=O(o),s=t.reject,n=v(function(){_(e,!1,function(e){o.resolve(e).then(t.resolve,s)})});return n.e&&s(n.v),t.promise}})},"./node_modules/core-js/library/modules/es6.string.iterator.js": /*!*********************************************************************!*\ !*** ./node_modules/core-js/library/modules/es6.string.iterator.js ***! \*********************************************************************/ @@ -594,7 +590,7 @@ /*!************************************************************!*\ !*** ./node_modules/core-js/library/modules/es6.symbol.js ***! \************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var s=t(/*! ./_global */"./node_modules/core-js/library/modules/_global.js"),n=t(/*! ./_has */"./node_modules/core-js/library/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/library/modules/_descriptors.js"),l=t(/*! ./_export */"./node_modules/core-js/library/modules/_export.js"),u=t(/*! ./_redefine */"./node_modules/core-js/library/modules/_redefine.js"),i=t(/*! ./_meta */"./node_modules/core-js/library/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/library/modules/_fails.js"),c=t(/*! ./_shared */"./node_modules/core-js/library/modules/_shared.js"),a=t(/*! ./_set-to-string-tag */"./node_modules/core-js/library/modules/_set-to-string-tag.js"),m=t(/*! ./_uid */"./node_modules/core-js/library/modules/_uid.js"),f=t(/*! ./_wks */"./node_modules/core-js/library/modules/_wks.js"),j=t(/*! ./_wks-ext */"./node_modules/core-js/library/modules/_wks-ext.js"),_=t(/*! ./_wks-define */"./node_modules/core-js/library/modules/_wks-define.js"),p=t(/*! ./_enum-keys */"./node_modules/core-js/library/modules/_enum-keys.js"),h=t(/*! ./_is-array */"./node_modules/core-js/library/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/library/modules/_an-object.js"),y=t(/*! ./_is-object */"./node_modules/core-js/library/modules/_is-object.js"),v=t(/*! ./_to-iobject */"./node_modules/core-js/library/modules/_to-iobject.js"),g=t(/*! ./_to-primitive */"./node_modules/core-js/library/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/library/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/library/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/library/modules/_object-gopn-ext.js"),S=t(/*! ./_object-gopd */"./node_modules/core-js/library/modules/_object-gopd.js"),E=t(/*! ./_object-dp */"./node_modules/core-js/library/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/library/modules/_object-keys.js"),T=S.f,M=E.f,O=w.f,N=s.Symbol,B=s.JSON,I=B&&B.stringify,A=f("_hidden"),P=f("toPrimitive"),L={}.propertyIsEnumerable,R=c("symbol-registry"),F=c("symbols"),D=c("op-symbols"),z=Object.prototype,U="function"==typeof N,H=s.QObject,G=!H||!H.prototype||!H.prototype.findChild,W=r&&d(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,o,t){var s=T(z,o);s&&delete z[o],M(e,o,t),s&&e!==z&&M(z,o,s)}:M,V=function(e){var o=F[e]=x(N.prototype);return o._k=e,o},K=U&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,o,t){return e===z&&q(D,o,t),b(e),o=g(o,!0),b(t),n(F,o)?(t.enumerable?(n(e,A)&&e[A][o]&&(e[A][o]=!1),t=x(t,{enumerable:k(0,!1)})):(n(e,A)||M(e,A,k(1,{})),e[A][o]=!0),W(e,o,t)):M(e,o,t)},Y=function(e,o){b(e);for(var t,s=p(o=v(o)),n=0,r=s.length;r>n;)q(e,t=s[n++],o[t]);return e},J=function(e){var o=L.call(this,e=g(e,!0));return!(this===z&&n(F,e)&&!n(D,e))&&(!(o||!n(this,e)||!n(F,e)||n(this,A)&&this[A][e])||o)},X=function(e,o){if(e=v(e),o=g(o,!0),e!==z||!n(F,o)||n(D,o)){var t=T(e,o);return!t||!n(F,o)||n(e,A)&&e[A][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(v(e)),s=[],r=0;t.length>r;)n(F,o=t[r++])||o==A||o==i||s.push(o);return s},Z=function(e){for(var o,t=e===z,s=O(t?D:v(e)),r=[],l=0;s.length>l;)!n(F,o=s[l++])||t&&!n(z,o)||r.push(F[o]);return r};U||(u((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=m(arguments.length>0?arguments[0]:void 0),o=function(t){this===z&&o.call(D,t),n(this,A)&&n(this[A],e)&&(this[A][e]=!1),W(this,e,k(1,t))};return r&&G&&W(z,e,{configurable:!0,set:o}),V(e)}).prototype,"toString",function(){return this._k}),S.f=X,E.f=q,t(/*! ./_object-gopn */"./node_modules/core-js/library/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/library/modules/_object-pie.js").f=J,t(/*! ./_object-gops */"./node_modules/core-js/library/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/library/modules/_library.js")&&u(z,"propertyIsEnumerable",J,!0),j.f=function(e){return V(f(e))}),l(l.G+l.W+l.F*!U,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)f(Q[ee++]);for(var oe=C(f.store),te=0;oe.length>te;)_(oe[te++]);l(l.S+l.F*!U,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(!K(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}}),l(l.S+l.F*!U,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:q,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),B&&l(l.S+l.F*(!U||d(function(){var e=N();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){for(var o,t,s=[e],n=1;arguments.length>n;)s.push(arguments[n++]);if(t=o=s[1],(y(o)||void 0!==e)&&!K(e))return h(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!K(o))return o}),s[1]=o,I.apply(B,s)}}),N.prototype[P]||t(/*! ./_hide */"./node_modules/core-js/library/modules/_hide.js")(N.prototype,P,N.prototype.valueOf),a(N,"Symbol"),a(Math,"Math",!0),a(s.JSON,"JSON",!0)},"./node_modules/core-js/library/modules/es7.map.from.js": +/*! no static exports found */function(e,o,t){"use strict";var s=t(/*! ./_global */"./node_modules/core-js/library/modules/_global.js"),n=t(/*! ./_has */"./node_modules/core-js/library/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/library/modules/_descriptors.js"),l=t(/*! ./_export */"./node_modules/core-js/library/modules/_export.js"),u=t(/*! ./_redefine */"./node_modules/core-js/library/modules/_redefine.js"),i=t(/*! ./_meta */"./node_modules/core-js/library/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/library/modules/_fails.js"),c=t(/*! ./_shared */"./node_modules/core-js/library/modules/_shared.js"),a=t(/*! ./_set-to-string-tag */"./node_modules/core-js/library/modules/_set-to-string-tag.js"),m=t(/*! ./_uid */"./node_modules/core-js/library/modules/_uid.js"),f=t(/*! ./_wks */"./node_modules/core-js/library/modules/_wks.js"),j=t(/*! ./_wks-ext */"./node_modules/core-js/library/modules/_wks-ext.js"),_=t(/*! ./_wks-define */"./node_modules/core-js/library/modules/_wks-define.js"),p=t(/*! ./_enum-keys */"./node_modules/core-js/library/modules/_enum-keys.js"),h=t(/*! ./_is-array */"./node_modules/core-js/library/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/library/modules/_an-object.js"),y=t(/*! ./_is-object */"./node_modules/core-js/library/modules/_is-object.js"),v=t(/*! ./_to-iobject */"./node_modules/core-js/library/modules/_to-iobject.js"),g=t(/*! ./_to-primitive */"./node_modules/core-js/library/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/library/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/library/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/library/modules/_object-gopn-ext.js"),S=t(/*! ./_object-gopd */"./node_modules/core-js/library/modules/_object-gopd.js"),E=t(/*! ./_object-dp */"./node_modules/core-js/library/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/library/modules/_object-keys.js"),T=S.f,M=E.f,O=w.f,N=s.Symbol,B=s.JSON,A=B&&B.stringify,I=f("_hidden"),P=f("toPrimitive"),L={}.propertyIsEnumerable,R=c("symbol-registry"),F=c("symbols"),D=c("op-symbols"),U=Object.prototype,z="function"==typeof N,H=s.QObject,G=!H||!H.prototype||!H.prototype.findChild,W=r&&d(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,o,t){var s=T(U,o);s&&delete U[o],M(e,o,t),s&&e!==U&&M(U,o,s)}:M,V=function(e){var o=F[e]=x(N.prototype);return o._k=e,o},K=z&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,o,t){return e===U&&q(D,o,t),b(e),o=g(o,!0),b(t),n(F,o)?(t.enumerable?(n(e,I)&&e[I][o]&&(e[I][o]=!1),t=x(t,{enumerable:k(0,!1)})):(n(e,I)||M(e,I,k(1,{})),e[I][o]=!0),W(e,o,t)):M(e,o,t)},Y=function(e,o){b(e);for(var t,s=p(o=v(o)),n=0,r=s.length;r>n;)q(e,t=s[n++],o[t]);return e},J=function(e){var o=L.call(this,e=g(e,!0));return!(this===U&&n(F,e)&&!n(D,e))&&(!(o||!n(this,e)||!n(F,e)||n(this,I)&&this[I][e])||o)},X=function(e,o){if(e=v(e),o=g(o,!0),e!==U||!n(F,o)||n(D,o)){var t=T(e,o);return!t||!n(F,o)||n(e,I)&&e[I][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(v(e)),s=[],r=0;t.length>r;)n(F,o=t[r++])||o==I||o==i||s.push(o);return s},Z=function(e){for(var o,t=e===U,s=O(t?D:v(e)),r=[],l=0;s.length>l;)!n(F,o=s[l++])||t&&!n(U,o)||r.push(F[o]);return r};z||(u((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=m(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(D,t),n(this,I)&&n(this[I],e)&&(this[I][e]=!1),W(this,e,k(1,t))};return r&&G&&W(U,e,{configurable:!0,set:o}),V(e)}).prototype,"toString",function(){return this._k}),S.f=X,E.f=q,t(/*! ./_object-gopn */"./node_modules/core-js/library/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/library/modules/_object-pie.js").f=J,t(/*! ./_object-gops */"./node_modules/core-js/library/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/library/modules/_library.js")&&u(U,"propertyIsEnumerable",J,!0),j.f=function(e){return V(f(e))}),l(l.G+l.W+l.F*!z,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)f(Q[ee++]);for(var oe=C(f.store),te=0;oe.length>te;)_(oe[te++]);l(l.S+l.F*!z,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(!K(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}}),l(l.S+l.F*!z,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:q,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),B&&l(l.S+l.F*(!z||d(function(){var e=N();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,s=[e],n=1;arguments.length>n;)s.push(arguments[n++]);if(t=o=s[1],(y(o)||void 0!==e)&&!K(e))return h(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!K(o))return o}),s[1]=o,A.apply(B,s)}}),N.prototype[P]||t(/*! ./_hide */"./node_modules/core-js/library/modules/_hide.js")(N.prototype,P,N.prototype.valueOf),a(N,"Symbol"),a(Math,"Math",!0),a(s.JSON,"JSON",!0)},"./node_modules/core-js/library/modules/es7.map.from.js": /*!**************************************************************!*\ !*** ./node_modules/core-js/library/modules/es7.map.from.js ***! \**************************************************************/ @@ -1094,11 +1090,11 @@ /*!******************************************************!*\ !*** ./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 s=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),i=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"),m=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),f=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),j=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),_=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),p=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),h=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),b=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),y=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),v=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),g=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"),M=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),O=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),N=t(/*! ./_array-includes */"./node_modules/core-js/modules/_array-includes.js"),B=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),I=t(/*! ./es6.array.iterator */"./node_modules/core-js/modules/es6.array.iterator.js"),A=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),P=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),L=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),R=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),F=t(/*! ./_array-copy-within */"./node_modules/core-js/modules/_array-copy-within.js"),D=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),z=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),U=D.f,H=z.f,G=n.RangeError,W=n.TypeError,V=n.Uint8Array,K=Array.prototype,q=i.ArrayBuffer,Y=i.DataView,J=O(0),X=O(2),$=O(3),Z=O(4),Q=O(5),ee=O(6),oe=N(!0),te=N(!1),se=I.values,ne=I.keys,re=I.entries,le=K.lastIndexOf,ue=K.reduce,ie=K.reduceRight,de=K.join,ce=K.sort,ae=K.slice,me=K.toString,fe=K.toLocaleString,je=M("iterator"),_e=M("toStringTag"),pe=T("typed_constructor"),he=T("def_constructor"),be=u.CONSTR,ye=u.TYPED,ve=u.VIEW,ge=O(1,function(e,o){return Ee(B(e,e[he]),o)}),ke=r(function(){return 1===new V(new Uint16Array([1]).buffer)[0]}),xe=!!V&&!!V.prototype.set&&r(function(){new V(1).set({})}),we=function(e,o){var t=j(e);if(t<0||t%o)throw G("Wrong offset!");return t},Se=function(e){if(g(e)&&ye in e)return e;throw W(e+" is not a typed array!")},Ee=function(e,o){if(!(g(e)&&pe in e))throw W("It is not a typed array constructor!");return new e(o)},Ce=function(e,o){return Te(B(e,e[he]),o)},Te=function(e,o){for(var t=0,s=o.length,n=Ee(e,s);s>t;)n[t]=o[t++];return n},Me=function(e,o,t){U(e,o,{get:function(){return this._d[t]}})},Oe=function(e){var o,t,s,n,r,l,u=k(e),i=arguments.length,c=i>1?arguments[1]:void 0,a=void 0!==c,m=C(u);if(void 0!=m&&!x(m)){for(l=m.call(u),s=[],o=0;!(r=l.next()).done;o++)s.push(r.value);u=s}for(a&&i>2&&(c=d(c,arguments[2],2)),o=0,t=_(u.length),n=Ee(this,t);t>o;o++)n[o]=a?c(u[o],o):u[o];return n},Ne=function(){for(var e=0,o=arguments.length,t=Ee(this,o);o>e;)t[e]=arguments[e++];return t},Be=!!V&&r(function(){fe.call(new V(1))}),Ie=function(){return fe.apply(Be?ae.call(Se(this)):Se(this),arguments)},Ae={copyWithin:function(e,o){return F.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,X(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){J(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 le.apply(Se(this),arguments)},map:function(e){return ge(Se(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return ue.apply(Se(this),arguments)},reduceRight:function(e){return ie.apply(Se(this),arguments)},reverse:function(){for(var e,o=Se(this).length,t=Math.floor(o/2),s=0;s1?arguments[1]:void 0)},sort:function(e){return ce.call(Se(this),e)},subarray:function(e,o){var t=Se(this),s=t.length,n=h(e,s);return new(B(t,t[he]))(t.buffer,t.byteOffset+n*t.BYTES_PER_ELEMENT,_((void 0===o?s:h(o,s))-n))}},Pe=function(e,o){return Ce(this,ae.call(Se(this),e,o))},Le=function(e){Se(this);var o=we(arguments[1],1),t=this.length,s=k(e),n=_(s.length),r=0;if(n+o>t)throw G("Wrong length!");for(;r255?255:255&s),n.v[f](t*o+n.o,s,ke)}(this,t,e)},enumerable:!0})};y?(j=t(function(e,t,s,n){c(e,j,d,"_d");var r,l,u,i,a=0,f=0;if(g(t)){if(!(t instanceof q||"ArrayBuffer"==(i=v(t))||"SharedArrayBuffer"==i))return ye in t?Te(j,t):Oe.call(j,t);r=t,f=we(s,o);var h=t.byteLength;if(void 0===n){if(h%o)throw G("Wrong length!");if((l=h-f)<0)throw G("Wrong length!")}else if((l=_(n)*o)+f>h)throw G("Wrong length!");u=l/o}else u=p(t),r=new q(l=u*o);for(m(e,"_d",{b:r,o:f,l:l,e:u,v:new Y(r)});at;)n[t]=o[t++];return n},Me=function(e,o,t){z(e,o,{get:function(){return this._d[t]}})},Oe=function(e){var o,t,s,n,r,l,u=k(e),i=arguments.length,c=i>1?arguments[1]:void 0,a=void 0!==c,m=C(u);if(void 0!=m&&!x(m)){for(l=m.call(u),s=[],o=0;!(r=l.next()).done;o++)s.push(r.value);u=s}for(a&&i>2&&(c=d(c,arguments[2],2)),o=0,t=_(u.length),n=Ee(this,t);t>o;o++)n[o]=a?c(u[o],o):u[o];return n},Ne=function(){for(var e=0,o=arguments.length,t=Ee(this,o);o>e;)t[e]=arguments[e++];return t},Be=!!V&&r(function(){fe.call(new V(1))}),Ae=function(){return fe.apply(Be?ae.call(Se(this)):Se(this),arguments)},Ie={copyWithin:function(e,o){return F.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,X(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){J(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 le.apply(Se(this),arguments)},map:function(e){return ge(Se(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return ue.apply(Se(this),arguments)},reduceRight:function(e){return ie.apply(Se(this),arguments)},reverse:function(){for(var e,o=Se(this).length,t=Math.floor(o/2),s=0;s1?arguments[1]:void 0)},sort:function(e){return ce.call(Se(this),e)},subarray:function(e,o){var t=Se(this),s=t.length,n=h(e,s);return new(B(t,t[he]))(t.buffer,t.byteOffset+n*t.BYTES_PER_ELEMENT,_((void 0===o?s:h(o,s))-n))}},Pe=function(e,o){return Ce(this,ae.call(Se(this),e,o))},Le=function(e){Se(this);var o=we(arguments[1],1),t=this.length,s=k(e),n=_(s.length),r=0;if(n+o>t)throw G("Wrong length!");for(;r255?255:255&s),n.v[f](t*o+n.o,s,ke)}(this,t,e)},enumerable:!0})};y?(j=t(function(e,t,s,n){c(e,j,d,"_d");var r,l,u,i,a=0,f=0;if(g(t)){if(!(t instanceof q||"ArrayBuffer"==(i=v(t))||"SharedArrayBuffer"==i))return ye in t?Te(j,t):Oe.call(j,t);r=t,f=we(s,o);var h=t.byteLength;if(void 0===n){if(h%o)throw G("Wrong length!");if((l=h-f)<0)throw G("Wrong length!")}else if((l=_(n)*o)+f>h)throw G("Wrong length!");u=l/o}else u=p(t),r=new q(l=u*o);for(m(e,"_d",{b:r,o:f,l:l,e:u,v:new Y(r)});a>1,c=23===o?C(2,-24)-C(2,-77):0,a=0,m=e<0||0===e&&1/e<0?1:0;for((e=E(e))!=e||e===w?(n=e!=e?1:0,s=i):(s=T(M(e)/O),e*(r=C(2,-s))<1&&(s--,r*=2),(e+=s+d>=1?c/r:c*C(2,1-d))*r>=2&&(s++,r/=2),s+d>=i?(n=0,s=i):s+d>=1?(n=(e*r-1)*C(2,o),s+=d):(n=e*C(2,d-1)*C(2,o),s=0));o>=8;l[a++]=255&n,n/=256,o-=8);for(s=s<0;l[a++]=255&s,s/=256,u-=8);return l[--a]|=128*m,l}function P(e,o,t){var s,n=8*t-o-1,r=(1<>1,u=n-7,i=t-1,d=e[i--],c=127&d;for(d>>=7;u>0;c=256*c+e[i],i--,u-=8);for(s=c&(1<<-u)-1,c>>=-u,u+=o;u>0;s=256*s+e[i],i--,u-=8);if(0===c)c=1-l;else{if(c===r)return s?NaN:d?-w:w;s+=C(2,o),c-=l}return(d?-1:1)*s*C(2,c-o)}function L(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function F(e){return[255&e,e>>8&255]}function D(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function z(e){return A(e,52,8)}function U(e){return A(e,23,4)}function H(e,o,t){_(e[b],o,{get:function(){return this[t]}})}function G(e,o,t,s){var n=f(+t);if(n+o>e[B])throw x(y);var r=e[N]._b,l=n+e[I],u=r.slice(l,l+o);return s?u:u.reverse()}function W(e,o,t,s,n,r){var l=f(+t);if(l+o>e[B])throw x(y);for(var u=e[N]._b,i=l+e[I],d=s(+n),c=0;cY;)(V=q[Y++])in v||u(v,V,S[V]);r||(K.constructor=v)}var J=new g(new v(2)),X=g[b].setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||i(g[b],{setInt8:function(e,o){X.call(this,e,o<<24>>24)},setUint8:function(e,o){X.call(this,e,o<<24>>24)}},!0)}else v=function(e){c(this,v,"ArrayBuffer");var o=f(e);this._b=p.call(new Array(o),0),this[B]=o},g=function(e,o,t){c(this,g,"DataView"),c(e,v,"DataView");var s=e[B],n=a(o);if(n<0||n>s)throw x("Wrong offset!");if(n+(t=void 0===t?s-n:m(t))>s)throw x("Wrong length!");this[N]=e,this[I]=n,this[B]=t},n&&(H(v,"byteLength","_l"),H(g,"buffer","_b"),H(g,"byteLength","_l"),H(g,"byteOffset","_o")),i(g[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 L(G(this,4,e,arguments[1]))},getUint32:function(e){return L(G(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return P(G(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return P(G(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){W(this,1,e,R,o)},setUint8:function(e,o){W(this,1,e,R,o)},setInt16:function(e,o){W(this,2,e,F,o,arguments[2])},setUint16:function(e,o){W(this,2,e,F,o,arguments[2])},setInt32:function(e,o){W(this,4,e,D,o,arguments[2])},setUint32:function(e,o){W(this,4,e,D,o,arguments[2])},setFloat32:function(e,o){W(this,4,e,U,o,arguments[2])},setFloat64:function(e,o){W(this,8,e,z,o,arguments[2])}});h(v,"ArrayBuffer"),h(g,"DataView"),u(g[b],l.VIEW,!0),o.ArrayBuffer=v,o.DataView=g},"./node_modules/core-js/modules/_typed.js": +/*! no static exports found */function(e,o,t){"use strict";var s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),n=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),r=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),l=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),u=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),c=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),a=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),m=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),f=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),j=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,_=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,p=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),h=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),b="prototype",y="Wrong index!",v=s.ArrayBuffer,g=s.DataView,k=s.Math,x=s.RangeError,w=s.Infinity,S=v,E=k.abs,C=k.pow,T=k.floor,M=k.log,O=k.LN2,N=n?"_b":"buffer",B=n?"_l":"byteLength",A=n?"_o":"byteOffset";function I(e,o,t){var s,n,r,l=new Array(t),u=8*t-o-1,i=(1<>1,c=23===o?C(2,-24)-C(2,-77):0,a=0,m=e<0||0===e&&1/e<0?1:0;for((e=E(e))!=e||e===w?(n=e!=e?1:0,s=i):(s=T(M(e)/O),e*(r=C(2,-s))<1&&(s--,r*=2),(e+=s+d>=1?c/r:c*C(2,1-d))*r>=2&&(s++,r/=2),s+d>=i?(n=0,s=i):s+d>=1?(n=(e*r-1)*C(2,o),s+=d):(n=e*C(2,d-1)*C(2,o),s=0));o>=8;l[a++]=255&n,n/=256,o-=8);for(s=s<0;l[a++]=255&s,s/=256,u-=8);return l[--a]|=128*m,l}function P(e,o,t){var s,n=8*t-o-1,r=(1<>1,u=n-7,i=t-1,d=e[i--],c=127&d;for(d>>=7;u>0;c=256*c+e[i],i--,u-=8);for(s=c&(1<<-u)-1,c>>=-u,u+=o;u>0;s=256*s+e[i],i--,u-=8);if(0===c)c=1-l;else{if(c===r)return s?NaN:d?-w:w;s+=C(2,o),c-=l}return(d?-1:1)*s*C(2,c-o)}function L(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function F(e){return[255&e,e>>8&255]}function D(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return I(e,52,8)}function z(e){return I(e,23,4)}function H(e,o,t){_(e[b],o,{get:function(){return this[t]}})}function G(e,o,t,s){var n=f(+t);if(n+o>e[B])throw x(y);var r=e[N]._b,l=n+e[A],u=r.slice(l,l+o);return s?u:u.reverse()}function W(e,o,t,s,n,r){var l=f(+t);if(l+o>e[B])throw x(y);for(var u=e[N]._b,i=l+e[A],d=s(+n),c=0;cY;)(V=q[Y++])in v||u(v,V,S[V]);r||(K.constructor=v)}var J=new g(new v(2)),X=g[b].setInt8;J.setInt8(0,2147483648),J.setInt8(1,2147483649),!J.getInt8(0)&&J.getInt8(1)||i(g[b],{setInt8:function(e,o){X.call(this,e,o<<24>>24)},setUint8:function(e,o){X.call(this,e,o<<24>>24)}},!0)}else v=function(e){c(this,v,"ArrayBuffer");var o=f(e);this._b=p.call(new Array(o),0),this[B]=o},g=function(e,o,t){c(this,g,"DataView"),c(e,v,"DataView");var s=e[B],n=a(o);if(n<0||n>s)throw x("Wrong offset!");if(n+(t=void 0===t?s-n:m(t))>s)throw x("Wrong length!");this[N]=e,this[A]=n,this[B]=t},n&&(H(v,"byteLength","_l"),H(g,"buffer","_b"),H(g,"byteLength","_l"),H(g,"byteOffset","_o")),i(g[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 L(G(this,4,e,arguments[1]))},getUint32:function(e){return L(G(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return P(G(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return P(G(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){W(this,1,e,R,o)},setUint8:function(e,o){W(this,1,e,R,o)},setInt16:function(e,o){W(this,2,e,F,o,arguments[2])},setUint16:function(e,o){W(this,2,e,F,o,arguments[2])},setInt32:function(e,o){W(this,4,e,D,o,arguments[2])},setUint32:function(e,o){W(this,4,e,D,o,arguments[2])},setFloat32:function(e,o){W(this,4,e,z,o,arguments[2])},setFloat64:function(e,o){W(this,8,e,U,o,arguments[2])}});h(v,"ArrayBuffer"),h(g,"DataView"),u(g[b],l.VIEW,!0),o.ArrayBuffer=v,o.DataView=g},"./node_modules/core-js/modules/_typed.js": /*!************************************************!*\ !*** ./node_modules/core-js/modules/_typed.js ***! \************************************************/ @@ -1450,7 +1446,7 @@ /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/es6.promise.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var s,n,r,l,u=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),i=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"),m=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),f=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),j=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),_=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),p=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),h=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,b=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),y=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),v=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),g=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=i.TypeError,w=i.process,S=w&&w.versions,E=S&&S.v8||"",C=i.Promise,T="process"==c(w),M=function(){},O=n=y.f,N=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(M,M)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(M)instanceof o&&0!==E.indexOf("6.6")&&-1===g.indexOf("Chrome/66")}catch(e){}}(),B=function(e){var o;return!(!m(e)||"function"!=typeof(o=e.then))&&o},I=function(e,o){if(!e._n){e._n=!0;var t=e._c;b(function(){for(var s=e._v,n=1==e._s,r=0,l=function(o){var t,r,l,u=n?o.ok:o.fail,i=o.resolve,d=o.reject,c=o.domain;try{u?(n||(2==e._h&&L(e),e._h=1),!0===u?t=s:(c&&c.enter(),t=u(s),c&&(c.exit(),l=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=B(t))?r.call(t,i,d):i(t)):d(s)}catch(e){c&&!l&&c.exit(),d(e)}};t.length>r;)l(t[r++]);e._c=[],e._n=!1,o&&!e._h&&A(e)})}},A=function(e){h.call(i,function(){var o,t,s,n=e._v,r=P(e);if(r&&(o=v(function(){T?w.emit("unhandledRejection",n,e):(t=i.onunhandledrejection)?t({promise:e,reason:n}):(s=i.console)&&s.error&&s.error("Unhandled promise rejection",n)}),e._h=T||P(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},P=function(e){return 1!==e._h&&0===(e._a||e._c).length},L=function(e){h.call(i,function(){var o;T?w.emit("rejectionHandled",e):(o=i.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()),I(o,!0))},F=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=B(e))?b(function(){var s={_w:t,_d:!1};try{o.call(e,d(F,s,1),d(R,s,1))}catch(e){R.call(s,e)}}):(t._v=e,t._s=1,I(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};N||(C=function(e){j(this,C,"Promise","_h"),f(e),s.call(this);try{e(d(F,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(s=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(p(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&&I(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new s;this.promise=e,this.resolve=d(F,e,1),this.reject=d(R,e,1)},y.f=O=function(e){return e===C||e===l?new r(e):n(e)}),a(a.G+a.W+a.F*!N,{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"),l=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,a(a.S+a.F*!N,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(u||!N),"Promise",{resolve:function(e){return k(u&&this===l?C:this,e)}}),a(a.S+a.F*!(N&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(M)})),"Promise",{all:function(e){var o=this,t=O(o),s=t.resolve,n=t.reject,r=v(function(){var t=[],r=0,l=1;_(e,!1,function(e){var u=r++,i=!1;t.push(void 0),l++,o.resolve(e).then(function(e){i||(i=!0,t[u]=e,--l||s(t))},n)}),--l||s(t)});return r.e&&n(r.v),t.promise},race:function(e){var o=this,t=O(o),s=t.reject,n=v(function(){_(e,!1,function(e){o.resolve(e).then(t.resolve,s)})});return n.e&&s(n.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": +/*! no static exports found */function(e,o,t){"use strict";var s,n,r,l,u=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),i=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"),m=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),f=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),j=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),_=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),p=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),h=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,b=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),y=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),v=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),g=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=i.TypeError,w=i.process,S=w&&w.versions,E=S&&S.v8||"",C=i.Promise,T="process"==c(w),M=function(){},O=n=y.f,N=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(M,M)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(M)instanceof o&&0!==E.indexOf("6.6")&&-1===g.indexOf("Chrome/66")}catch(e){}}(),B=function(e){var o;return!(!m(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 s=e._v,n=1==e._s,r=0,l=function(o){var t,r,l,u=n?o.ok:o.fail,i=o.resolve,d=o.reject,c=o.domain;try{u?(n||(2==e._h&&L(e),e._h=1),!0===u?t=s:(c&&c.enter(),t=u(s),c&&(c.exit(),l=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=B(t))?r.call(t,i,d):i(t)):d(s)}catch(e){c&&!l&&c.exit(),d(e)}};t.length>r;)l(t[r++]);e._c=[],e._n=!1,o&&!e._h&&I(e)})}},I=function(e){h.call(i,function(){var o,t,s,n=e._v,r=P(e);if(r&&(o=v(function(){T?w.emit("unhandledRejection",n,e):(t=i.onunhandledrejection)?t({promise:e,reason:n}):(s=i.console)&&s.error&&s.error("Unhandled promise rejection",n)}),e._h=T||P(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},P=function(e){return 1!==e._h&&0===(e._a||e._c).length},L=function(e){h.call(i,function(){var o;T?w.emit("rejectionHandled",e):(o=i.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))},F=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=B(e))?b(function(){var s={_w:t,_d:!1};try{o.call(e,d(F,s,1),d(R,s,1))}catch(e){R.call(s,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};N||(C=function(e){j(this,C,"Promise","_h"),f(e),s.call(this);try{e(d(F,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(s=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(p(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 s;this.promise=e,this.resolve=d(F,e,1),this.reject=d(R,e,1)},y.f=O=function(e){return e===C||e===l?new r(e):n(e)}),a(a.G+a.W+a.F*!N,{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"),l=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,a(a.S+a.F*!N,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(u||!N),"Promise",{resolve:function(e){return k(u&&this===l?C:this,e)}}),a(a.S+a.F*!(N&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(M)})),"Promise",{all:function(e){var o=this,t=O(o),s=t.resolve,n=t.reject,r=v(function(){var t=[],r=0,l=1;_(e,!1,function(e){var u=r++,i=!1;t.push(void 0),l++,o.resolve(e).then(function(e){i||(i=!0,t[u]=e,--l||s(t))},n)}),--l||s(t)});return r.e&&n(r.v),t.promise},race:function(e){var o=this,t=O(o),s=t.reject,n=v(function(){_(e,!1,function(e){o.resolve(e).then(t.resolve,s)})});return n.e&&s(n.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***! \***********************************************************/ @@ -1630,7 +1626,7 @@ /*!****************************************************!*\ !*** ./node_modules/core-js/modules/es6.symbol.js ***! \****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),n=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=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"),m=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),f=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),j=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),_=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),p=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),h=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),y=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),v=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),g=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,M=E.f,O=w.f,N=s.Symbol,B=s.JSON,I=B&&B.stringify,A=f("_hidden"),P=f("toPrimitive"),L={}.propertyIsEnumerable,R=c("symbol-registry"),F=c("symbols"),D=c("op-symbols"),z=Object.prototype,U="function"==typeof N,H=s.QObject,G=!H||!H.prototype||!H.prototype.findChild,W=r&&d(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,o,t){var s=T(z,o);s&&delete z[o],M(e,o,t),s&&e!==z&&M(z,o,s)}:M,V=function(e){var o=F[e]=x(N.prototype);return o._k=e,o},K=U&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,o,t){return e===z&&q(D,o,t),b(e),o=g(o,!0),b(t),n(F,o)?(t.enumerable?(n(e,A)&&e[A][o]&&(e[A][o]=!1),t=x(t,{enumerable:k(0,!1)})):(n(e,A)||M(e,A,k(1,{})),e[A][o]=!0),W(e,o,t)):M(e,o,t)},Y=function(e,o){b(e);for(var t,s=p(o=v(o)),n=0,r=s.length;r>n;)q(e,t=s[n++],o[t]);return e},J=function(e){var o=L.call(this,e=g(e,!0));return!(this===z&&n(F,e)&&!n(D,e))&&(!(o||!n(this,e)||!n(F,e)||n(this,A)&&this[A][e])||o)},X=function(e,o){if(e=v(e),o=g(o,!0),e!==z||!n(F,o)||n(D,o)){var t=T(e,o);return!t||!n(F,o)||n(e,A)&&e[A][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(v(e)),s=[],r=0;t.length>r;)n(F,o=t[r++])||o==A||o==i||s.push(o);return s},Z=function(e){for(var o,t=e===z,s=O(t?D:v(e)),r=[],l=0;s.length>l;)!n(F,o=s[l++])||t&&!n(z,o)||r.push(F[o]);return r};U||(u((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=m(arguments.length>0?arguments[0]:void 0),o=function(t){this===z&&o.call(D,t),n(this,A)&&n(this[A],e)&&(this[A][e]=!1),W(this,e,k(1,t))};return r&&G&&W(z,e,{configurable:!0,set:o}),V(e)}).prototype,"toString",function(){return this._k}),S.f=X,E.f=q,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=J,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&u(z,"propertyIsEnumerable",J,!0),j.f=function(e){return V(f(e))}),l(l.G+l.W+l.F*!U,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)f(Q[ee++]);for(var oe=C(f.store),te=0;oe.length>te;)_(oe[te++]);l(l.S+l.F*!U,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(!K(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}}),l(l.S+l.F*!U,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:q,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),B&&l(l.S+l.F*(!U||d(function(){var e=N();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){for(var o,t,s=[e],n=1;arguments.length>n;)s.push(arguments[n++]);if(t=o=s[1],(y(o)||void 0!==e)&&!K(e))return h(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!K(o))return o}),s[1]=o,I.apply(B,s)}}),N.prototype[P]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(N.prototype,P,N.prototype.valueOf),a(N,"Symbol"),a(Math,"Math",!0),a(s.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": +/*! no static exports found */function(e,o,t){"use strict";var s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),n=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=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"),m=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),f=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),j=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),_=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),p=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),h=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),y=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),v=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),g=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,M=E.f,O=w.f,N=s.Symbol,B=s.JSON,A=B&&B.stringify,I=f("_hidden"),P=f("toPrimitive"),L={}.propertyIsEnumerable,R=c("symbol-registry"),F=c("symbols"),D=c("op-symbols"),U=Object.prototype,z="function"==typeof N,H=s.QObject,G=!H||!H.prototype||!H.prototype.findChild,W=r&&d(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,o,t){var s=T(U,o);s&&delete U[o],M(e,o,t),s&&e!==U&&M(U,o,s)}:M,V=function(e){var o=F[e]=x(N.prototype);return o._k=e,o},K=z&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,o,t){return e===U&&q(D,o,t),b(e),o=g(o,!0),b(t),n(F,o)?(t.enumerable?(n(e,I)&&e[I][o]&&(e[I][o]=!1),t=x(t,{enumerable:k(0,!1)})):(n(e,I)||M(e,I,k(1,{})),e[I][o]=!0),W(e,o,t)):M(e,o,t)},Y=function(e,o){b(e);for(var t,s=p(o=v(o)),n=0,r=s.length;r>n;)q(e,t=s[n++],o[t]);return e},J=function(e){var o=L.call(this,e=g(e,!0));return!(this===U&&n(F,e)&&!n(D,e))&&(!(o||!n(this,e)||!n(F,e)||n(this,I)&&this[I][e])||o)},X=function(e,o){if(e=v(e),o=g(o,!0),e!==U||!n(F,o)||n(D,o)){var t=T(e,o);return!t||!n(F,o)||n(e,I)&&e[I][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(v(e)),s=[],r=0;t.length>r;)n(F,o=t[r++])||o==I||o==i||s.push(o);return s},Z=function(e){for(var o,t=e===U,s=O(t?D:v(e)),r=[],l=0;s.length>l;)!n(F,o=s[l++])||t&&!n(U,o)||r.push(F[o]);return r};z||(u((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=m(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(D,t),n(this,I)&&n(this[I],e)&&(this[I][e]=!1),W(this,e,k(1,t))};return r&&G&&W(U,e,{configurable:!0,set:o}),V(e)}).prototype,"toString",function(){return this._k}),S.f=X,E.f=q,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=J,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&u(U,"propertyIsEnumerable",J,!0),j.f=function(e){return V(f(e))}),l(l.G+l.W+l.F*!z,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)f(Q[ee++]);for(var oe=C(f.store),te=0;oe.length>te;)_(oe[te++]);l(l.S+l.F*!z,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(!K(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}}),l(l.S+l.F*!z,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:q,defineProperties:Y,getOwnPropertyDescriptor:X,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),B&&l(l.S+l.F*(!z||d(function(){var e=N();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,s=[e],n=1;arguments.length>n;)s.push(arguments[n++]);if(t=o=s[1],(y(o)||void 0!==e)&&!K(e))return h(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!K(o))return o}),s[1]=o,A.apply(B,s)}}),N.prototype[P]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(N.prototype,P,N.prototype.valueOf),a(N,"Symbol"),a(Math,"Math",!0),a(s.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": /*!****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***! \****************************************************************/ @@ -1930,11 +1926,15 @@ /*!*******************************************************!*\ !*** ./node_modules/html-janitor/src/html-janitor.js ***! \*******************************************************/ -/*! no static exports found */function(e,o,t){var s,n;void 0===(n="function"==typeof(s=function(){function e(e){var o=e.tags,t=Object.keys(o),s=t.map(function(e){return typeof o[e]}).every(function(e){return"object"===e||"boolean"===e||"function"===e});if(!s)throw new Error("The configuration was invalid");this.config=e}var o=["P","LI","TD","TH","DIV","H1","H2","H3","H4","H5","H6","PRE"];function t(e){return-1!==o.indexOf(e.nodeName)}var s=["A","B","STRONG","I","EM","SUB","SUP","U","STRIKE"];function n(e){return-1!==s.indexOf(e.nodeName)}function r(e,o,t){return"function"==typeof e.tags[o]?e.tags[o](t):e.tags[o]}function l(e,o){return void 0===o||"boolean"==typeof o&&!o}function u(e,o,t){var s=e.name.toLowerCase();return!0!==o&&("function"==typeof o[s]?!o[s](e.value,t):void 0===o[s]||!1===o[s]||"string"==typeof o[s]&&o[s]!==e.value)}return e.prototype.clean=function(e){var o=document.createElement("div");return o.innerHTML=e,this._sanitize(o),o.innerHTML},e.prototype._sanitize=function(e){var o=function(e){return document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT,null,!1)}(e),s=o.firstChild();if(s)do{if(!s._sanitized)if(s.nodeType!==Node.TEXT_NODE){if(s.nodeType===Node.COMMENT_NODE){e.removeChild(s),this._sanitize(e);break}var i,d=n(s);d&&(i=Array.prototype.some.call(s.childNodes,t));var c=!!e.parentNode,a=t(e)&&t(s)&&c,m=s.nodeName.toLowerCase(),f=r(this.config,m,s);if(d&&i||l(0,f)||!this.config.keepNestedBlockElements&&a){if("SCRIPT"!==s.nodeName&&"STYLE"!==s.nodeName)for(;s.childNodes.length>0;)e.insertBefore(s.childNodes[0],s);e.removeChild(s),this._sanitize(e);break}for(var j=0;j0;)e.insertBefore(s.childNodes[0],s);e.removeChild(s),this._sanitize(e);break}for(var j=0;j=0,r=n&&s.regeneratorRuntime;if(s.regeneratorRuntime=void 0,e.exports=t(/*! ./runtime */"./node_modules/regenerator-runtime/runtime.js"),n)s.regeneratorRuntime=r;else try{delete s.regeneratorRuntime}catch(e){s.regeneratorRuntime=void 0}},"./node_modules/regenerator-runtime/runtime.js": /*!*****************************************************!*\ !*** ./node_modules/regenerator-runtime/runtime.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){(function(o){!function(o){"use strict";var t,s=Object.prototype,n=s.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},l=r.iterator||"@@iterator",u=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag",d="object"==typeof e,c=o.regeneratorRuntime;if(c)d&&(e.exports=c);else{(c=o.regeneratorRuntime=d?e.exports:{}).wrap=v;var a="suspendedStart",m="suspendedYield",f="executing",j="completed",_={},p={};p[l]=function(){return this};var h=Object.getPrototypeOf,b=h&&h(h(N([])));b&&b!==s&&n.call(b,l)&&(p=b);var y=w.prototype=k.prototype=Object.create(p);x.prototype=y.constructor=w,w.constructor=x,w[i]=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,i in e||(e[i]="GeneratorFunction")),e.prototype=Object.create(y),e},c.awrap=function(e){return{__await:e}},S(E.prototype),E.prototype[u]=function(){return this},c.AsyncIterator=E,c.async=function(e,o,t,s){var n=new E(v(e,o,t,s));return c.isGeneratorFunction(o)?n:n.next().then(function(e){return e.done?e.value:n.next()})},S(y),y[i]="Generator",y[l]=function(){return this},y.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 s=o.pop();if(s in e)return t.value=s,t.done=!1,t}return t.done=!0,t}},c.values=N,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(M),!e)for(var o in this)"t"===o.charAt(0)&&n.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 s(s,n){return u.type="throw",u.arg=e,o.next=s,n&&(o.method="next",o.arg=t),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var l=this.tryEntries[r],u=l.completion;if("root"===l.tryLoc)return s("end");if(l.tryLoc<=this.prev){var i=n.call(l,"catchLoc"),d=n.call(l,"finallyLoc");if(i&&d){if(this.prev=0;--t){var s=this.tryEntries[t];if(s.tryLoc<=this.prev&&n.call(s,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),M(t),_}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var s=t.completion;if("throw"===s.type){var n=s.arg;M(t)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,s){return this.delegate={iterator:N(e),resultName:o,nextLoc:s},"next"===this.method&&(this.arg=t),_}}}function v(e,o,t,s){var n=o&&o.prototype instanceof k?o:k,r=Object.create(n.prototype),l=new O(s||[]);return r._invoke=function(e,o,t){var s=a;return function(n,r){if(s===f)throw new Error("Generator is already running");if(s===j){if("throw"===n)throw r;return B()}for(t.method=n,t.arg=r;;){var l=t.delegate;if(l){var u=C(l,t);if(u){if(u===_)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(s===a)throw s=j,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);s=f;var i=g(e,o,t);if("normal"===i.type){if(s=t.done?j:m,i.arg===_)continue;return{value:i.arg,done:t.done}}"throw"===i.type&&(s=j,t.method="throw",t.arg=i.arg)}}}(e,t,l),r}function g(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){function t(o,s,r,l){var u=g(e[o],e,s);if("throw"!==u.type){var i=u.arg,d=i.value;return d&&"object"==typeof d&&n.call(d,"__await")?Promise.resolve(d.__await).then(function(e){t("next",e,r,l)},function(e){t("throw",e,r,l)}):Promise.resolve(d).then(function(e){i.value=e,r(i)},l)}l(u.arg)}var s;"object"==typeof o.process&&o.process.domain&&(t=o.process.domain.bind(t)),this._invoke=function(e,o){function n(){return new Promise(function(s,n){t(e,o,s,n)})}return s=s?s.then(n,n):n()}}function C(e,o){var s=e.iterator[o.method];if(s===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 _;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return _}var n=g(s,e.iterator,o.arg);if("throw"===n.type)return o.method="throw",o.arg=n.arg,o.delegate=null,_;var r=n.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,_):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,_)}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 M(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 N(e){if(e){var o=e[l];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var s=-1,r=function o(){for(;++s=0;--r){var l=this.tryEntries[r],u=l.completion;if("root"===l.tryLoc)return s("end");if(l.tryLoc<=this.prev){var i=n.call(l,"catchLoc"),d=n.call(l,"finallyLoc");if(i&&d){if(this.prev=0;--t){var s=this.tryEntries[t];if(s.tryLoc<=this.prev&&n.call(s,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),M(t),_}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var s=t.completion;if("throw"===s.type){var n=s.arg;M(t)}return n}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,s){return this.delegate={iterator:N(e),resultName:o,nextLoc:s},"next"===this.method&&(this.arg=t),_}}}function v(e,o,t,s){var n=o&&o.prototype instanceof k?o:k,r=Object.create(n.prototype),l=new O(s||[]);return r._invoke=function(e,o,t){var s=a;return function(n,r){if(s===f)throw new Error("Generator is already running");if(s===j){if("throw"===n)throw r;return B()}for(t.method=n,t.arg=r;;){var l=t.delegate;if(l){var u=C(l,t);if(u){if(u===_)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(s===a)throw s=j,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);s=f;var i=g(e,o,t);if("normal"===i.type){if(s=t.done?j:m,i.arg===_)continue;return{value:i.arg,done:t.done}}"throw"===i.type&&(s=j,t.method="throw",t.arg=i.arg)}}}(e,t,l),r}function g(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,s){function r(){return new Promise(function(o,r){!function o(t,s,r,l){var u=g(e[t],e,s);if("throw"!==u.type){var i=u.arg,d=i.value;return d&&"object"==typeof d&&n.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,l)},function(e){o("throw",e,r,l)}):Promise.resolve(d).then(function(e){i.value=e,r(i)},l)}l(u.arg)}(t,s,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var s=e.iterator[o.method];if(s===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 _;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return _}var n=g(s,e.iterator,o.arg);if("throw"===n.type)return o.method="throw",o.arg=n.arg,o.delegate=null,_;var r=n.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,_):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,_)}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 M(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 N(e){if(e){var o=e[l];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var s=-1,r=function o(){for(;++s\\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\"","/*!\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}])});","/* eslint max-len: 0 */\n// TODO: eventually deprecate this console.trace(\"use the `babel-register` package instead of `babel-core/register`\");\nmodule.exports = require(\"babel-register\");\n","\"use strict\";\n\nrequire(\"core-js/shim\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nrequire(\"core-js/fn/regexp/escape\");\n\nif (global._babelPolyfill) {\n throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\nvar DEFINE_PROPERTY = \"defineProperty\";\nfunction define(O, key, value) {\n O[key] || Object[DEFINE_PROPERTY](O, key, {\n writable: true,\n configurable: true,\n value: value\n });\n}\n\ndefine(String.prototype, \"padLeft\", \"\".padStart);\ndefine(String.prototype, \"padRight\", \"\".padEnd);\n\n\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n [][key] && define(Array, key, Function.call.bind([][key]));\n});","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function () {};\n\nmodule.exports = exports[\"default\"];","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/map\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(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 return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _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\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\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// 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() { return this })() || 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. 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","module.exports = require(\"regenerator-runtime\");\n","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nrequire('../modules/es7.map.to-json');\nrequire('../modules/es7.map.of');\nrequire('../modules/es7.map.from');\nmodule.exports = require('../modules/_core').Map;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\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 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","// 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","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\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 if (!DESCRIPTORS || 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 C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, 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","// 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 ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\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 IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\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","// 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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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 = true;\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","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 hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = require('./_hide');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\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 core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : 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","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","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","// 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","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","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\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 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';\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","// 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.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.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.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.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\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","'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// 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","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\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-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-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 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","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\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","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\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","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\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","// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n if (\n arguments.length === 0\n // eslint-disable-next-line no-self-compare\n || x != x\n // eslint-disable-next-line no-self-compare\n || inLow != inLow\n // eslint-disable-next-line no-self-compare\n || inHigh != inHigh\n // eslint-disable-next-line no-self-compare\n || outLow != outLow\n // eslint-disable-next-line no-self-compare\n || outHigh != outHigh\n ) return NaN;\n if (x === Infinity || x === -Infinity) return x;\n return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;\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 Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\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","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\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","module.exports = function (regExp, replace) {\n var replacer = replace === Object(replace) ? function (part) {\n return replace[part];\n } : replace;\n return function (it) {\n return String(it).replace(regExp, replacer);\n };\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","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\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","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\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://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatten');\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/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export');\nvar microtask = require('./_microtask')();\nvar process = require('./_global').process;\nvar isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export');\nvar cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it) {\n return cof(it) === 'Error';\n }\n});\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clamp: function clamp(x, lower, upper) {\n return Math.min(upper, Math.max(lower, x));\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar scale = require('./_math-scale');\nvar fround = require('./_math-fround');\n\n$export($export.S, 'Math', {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { scale: require('./_math-scale') });\n","// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\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","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\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","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export');\nvar global = require('./_global');\nvar core = require('./_core');\nvar microtask = require('./_microtask')();\nvar OBSERVABLE = require('./_wks')('observable');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar anInstance = require('./_an-instance');\nvar redefineAll = require('./_redefine-all');\nvar hide = require('./_hide');\nvar forOf = require('./_for-of');\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n var cleanup = subscription._c;\n if (cleanup) {\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function (subscription) {\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n if (!subscriptionClosed(subscription)) {\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer);\n var subscription = cleanup;\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch (e) {\n observer.error(e);\n return;\n } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if (m) return m.call(observer, value);\n } catch (e) {\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value) {\n var subscription = this._s;\n if (subscriptionClosed(subscription)) throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if (!m) throw value;\n value = m.call(observer, value);\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer) {\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn) {\n var that = this;\n return new (core.Promise || global.Promise)(function (resolve, reject) {\n aFunction(fn);\n var subscription = that.subscribe({\n next: function (value) {\n try {\n return fn(value);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x) {\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if (method) {\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n return new C(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n try {\n if (forOf(x, false, function (it) {\n observer.next(it);\n if (done) return RETURN;\n }) === RETURN) return;\n } catch (e) {\n if (done) throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n },\n of: function of() {\n for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n for (var j = 0; j < items.length; ++j) {\n observer.next(items[j]);\n if (done) return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\nrequire('./_set-species')('Observable');\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-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export');\nvar $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n at: function at(pos) {\n return $at(this, pos);\n }\n});\n","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar toLength = require('./_to-length');\nvar isRegExp = require('./_is-regexp');\nvar getFlags = require('./_flags');\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {\n var match = this._r.exec(this._s);\n return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp) {\n defined(this);\n if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n var S = String(this);\n var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\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","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', { global: require('./_global') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\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/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.array.flat-map');\nrequire('./modules/es7.array.flatten');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.map.of');\nrequire('./modules/es7.set.of');\nrequire('./modules/es7.weak-map.of');\nrequire('./modules/es7.weak-set.of');\nrequire('./modules/es7.map.from');\nrequire('./modules/es7.set.from');\nrequire('./modules/es7.weak-map.from');\nrequire('./modules/es7.weak-set.from');\nrequire('./modules/es7.global');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.clamp');\nrequire('./modules/es7.math.deg-per-rad');\nrequire('./modules/es7.math.degrees');\nrequire('./modules/es7.math.fscale');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.rad-per-deg');\nrequire('./modules/es7.math.radians');\nrequire('./modules/es7.math.scale');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.math.signbit');\nrequire('./modules/es7.promise.finally');\nrequire('./modules/es7.promise.try');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./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 var sandbox = document.createElement('div');\n sandbox.innerHTML = html;\n\n this._sanitize(sandbox);\n\n return sandbox.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (parentNode) {\n var treeWalker = createTreeWalker(parentNode);\n var node = treeWalker.firstChild();\n if (!node) { return; }\n\n do {\n // Ignore nodes that have already been sanitized\n if (node._sanitized) {\n continue;\n }\n\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(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(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(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(node);\n\n // Mark node as sanitized so it's ignored in future runs\n node._sanitized = true;\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(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, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\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 if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\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 // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","'use strict';\n\n/**\n * Apply polyfills\n */\nimport 'babel-core/register';\nif (!window || !window._babelPolyfill) require('babel-polyfill');\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 /** Editor version */\n static get version() {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig} configuration - user configuration\n */\n constructor(configuration) {\n let {onReady} = configuration;\n\n onReady = onReady && typeof onReady === 'function' ? onReady : () => {};\n\n configuration.onReady = () => {};\n\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor 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 exportAPI(editor) {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor = null;\n\n for (const field in this) {\n delete this[field];\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 IEditor from './interfaces/editor';\nimport IEditorConfig from './interfaces/editor-config';\nimport IModuleConfig from './interfaces/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 {IEditorConfig} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {IEditor}\n */\n protected Editor: IEditor;\n\n /**\n * Editor configuration object\n * @type {IEditorConfig}\n */\n protected config: IEditorConfig;\n\n /**\n * @constructor\n * @param {IModuleConfig}\n */\n constructor({config}: IModuleConfig) {\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 {IEditor} Editor\n */\n set state(Editor) {\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 IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class DeleteTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: any;\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 = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {Object} 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.listener.on(this.nodes.button, 'click', (event) => 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 */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveDownTune implements IBlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\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 {Object} 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.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\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).holder,\n 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 IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveUpTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\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 {Object} 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.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\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).holder,\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\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 IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\nimport $ from './dom';\nimport _ from './utils';\n\ntype Tool = any;\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {Tool} 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(): {wrapper: string, wrapperStretched: string, content: string, selected: string} {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n selected: 'ce-block--selected',\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 * 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 /**\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\n * That Tools are not empty\n */\n if (this.class.contentless) {\n return false;\n }\n\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 selected state\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n /**\n * We don't need to mark Block as Selected when it is not empty\n */\n if (state === true && !this.isEmpty) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\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 public name: string;\n public tool: Tool;\n public class: any;\n public settings: object;\n public holder: HTMLDivElement;\n public tunes: IBlockTune[];\n private readonly api: object;\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(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: object) {\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 {IBlockTune[]}\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 mergeWith(data: object): Promise {\n return Promise.resolve()\n .then(() => {\n this.tool.merge(data);\n });\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public save(): Promise {\n const extractedBlock = this.tool.save(this.pluginsContent);\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(function(error) {\n _.log(`Saving proccess for ${this.tool.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: object): object|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 {IBlockTune[]}\n */\n public makeTunes(): IBlockTune[] {\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: IBlockTuneConstructor) => {\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 * 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","/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Dynamically imported utils\n *\n * @typedef {Dom} $ - {@link components/dom.js}\n * @typedef {Util} _ - {@link components/utils.js}\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\n// eslint-disable-next-line\nlet modules = editorModules.map( module => require('./modules/' + module ));\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 * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config) {\n /**\n * Configuration object\n * @type {EditorConfig}\n */\n this.config = {};\n\n /**\n * @typedef {Object} EditorComponents\n * @property {BlockManager} BlockManager\n * @property {Tools} Tools\n * @property {Events} Events\n * @property {UI} UI\n * @property {Toolbar} Toolbar\n * @property {Toolbox} Toolbox\n * @property {BlockSettings} BlockSettings\n * @property {Renderer} Renderer\n * @property {InlineToolbar} InlineToolbar\n */\n this.moduleInstances = {};\n\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(() => {\n this.configuration = config;\n })\n .then(() => this.validate())\n .then(() => this.init())\n .then(() => this.start())\n .then(() => {\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\n\n setTimeout(() => {\n this.config.onReady.call();\n onReady();\n }, 500);\n })\n .catch(error => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {EditorConfig|string|null} config\n */\n set configuration(config) {\n /**\n * Process zero-configuration or with only holderId\n */\n if (typeof config === 'string' || typeof config === 'undefined') {\n config = {\n holderId: config\n };\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = 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 let initialBlockData = {\n type : this.config.initialBlock,\n data : {}\n };\n\n this.config.holderId = config.holderId || 'codex-editor';\n this.config.placeholder = config.placeholder || 'write your story...';\n this.config.sanitizer = config.sanitizer || {\n p: true,\n b: true,\n a: true\n };\n\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\n this.config.tools = config.tools || {};\n this.config.data = config.data || {};\n this.config.onReady = config.onReady || function () {};\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {};\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() {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {void|Promise}\n */\n validate() {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n return Promise.reject('«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 return Promise.reject(`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 (let toolName in this.config.tools) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n 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 * Make modules instances and save it to the @property this.moduleInstances\n */\n constructModules() {\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 console.log('Module %o skipped because %o', Module, e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n configureModules() {\n for(let name in this.moduleInstances) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff( name );\n }\n }\n\n /**\n * Return modules without passed name\n */\n getModulesDiff( name ) {\n let diff = {};\n\n for(let 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 * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n async start() {\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste'];\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 * 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 {Element}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\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[]): 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 InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\n\ndeclare var $: any;\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 * 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 = {\n button: undefined,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('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 InlineTool from '../interfaces/tools/inline-tool';\n\ndeclare var $: any;\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 * 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 = {\n button: null,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('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}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\n\ndeclare var $: any;\ndeclare var _: any;\n\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 * 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: 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: any;\n\n /**\n * @param {{api: IAPI}} - 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');\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');\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event) => {\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-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer.js\": \"./src/components/modules/sanitizer.js\",\n\t\"./saver.js\": \"./src/components/modules/saver.js\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui.js\": \"./src/components/modules/ui.js\"\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 [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|caret.js|events.js|listeners.js|paste.ts|renderer.js|sanitizer.js|saver.js|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$\";","declare var Module: any;\n\nimport { IBlocksAPI } from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module implements IBlocksAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IBlocksAPI}\n */\n get methods(): IBlocksAPI {\n return {\n clear: () => this.clear(),\n render: (data: IInputOutputData) => 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) => 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 Current Block\n * @param {Number} index\n *\n * @return {Object}\n */\n public getBlockByIndex(index: number): object {\n return this.Editor.BlockManager.getBlockByIndex(index);\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 {IInputOutputData} data — Saved Editor data\n */\n public render(data: IInputOutputData): void {\n this.Editor.BlockManager.clear();\n 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): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status !== undefined ? status : true;\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","declare var Module: any;\n\nimport {ICaretAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module implements ICaretAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ICaretAPI}\n */\n get methods(): ICaretAPI {\n return {};\n }\n}\n","declare var Module: any;\n\nimport {IEventsAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module implements IEventsAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IEventsAPI}\n */\n get methods(): IEventsAPI {\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","declare var Module: any;\n\nimport {IListenerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides with methods working with DOM Listener\n */\nexport default class ListenerAPI extends Module implements IListenerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IListenerAPI {\n return {\n on: (element, 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","declare var Module: any;\n\nimport {ISanitizerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISanitizerAPI}\n */\n get methods(): ISanitizerAPI {\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","declare var Module: any;\n\nimport {ISaverAPI} from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module implements ISaverAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISaverAPI}\n */\n get methods(): ISaverAPI {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): IInputOutputData {\n return this.Editor.Saver.save();\n }\n}\n","declare var Module: any;\n\nimport {ISelectionAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\nimport Selection from '../selection';\n\n/**\n * @class API\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module implements ISelectionAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISelectionAPI}\n */\n get methods(): ISelectionAPI {\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 Selection().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 Selection().expandToTag(node);\n }\n\n}\n","declare var Module: any;\n\nimport IModuleConfig from '../interfaces/module-config';\nimport {IStylesAPI} from '../interfaces/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n\n /**\n * Save Editor config\n * API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n get classes(): IStylesAPI {\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\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","declare var Module: any;\n\nimport {IToolbarAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class ToolbarsAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IToolbarAPI {\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 * @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 */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nimport { IAPI } from '../interfaces/api';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public get methods(): IAPI {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listener: this.Editor.ListenerAPI.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 };\n }\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class BlockEvents extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\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 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 * Clear all highlightings\n */\n this.Editor.BlockManager.clearHighlightings();\n\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\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 if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\n this.Editor.Toolbox.open();\n } else if (currentBlock.isEmpty) {\n this.Editor.Toolbar.open();\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\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.toolsAvailable[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();\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 BM = this.Editor.BlockManager;\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\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 = BM.currentBlockIndex === 0,\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\n\n /** If current Block is empty just remove this Block */\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\n this.Editor.BlockManager.removeBlock();\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 * 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 (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 return;\n }\n\n if (!canMergeBlocks) {\n return;\n }\n\n // preventing browser default behaviour\n event.preventDefault();\n\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\n blockToMerge = BM.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 (this.Editor.Caret.navigatePrevious()) {\n this.Editor.Toolbar.close();\n }\n\n return;\n }\n\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\n BM.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\n targetBlock.pluginsContent.normalize();\n this.Editor.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 */\n\nimport Block from '../block';\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = null;\n\n /**\n * Index of current working block\n *\n * @type {number}\n * @private\n */\n this.currentBlockIndex = -1;\n }\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n prepare() {\n return new Promise(resolve => {\n let 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 resolve();\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 composeBlock(toolName, data, settings) {\n let toolInstance = this.Editor.Tools.construct(toolName, data),\n toolClass = this.Editor.Tools.available[toolName],\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n /**\n * Apply callback before inserting html\n */\n block.call('appendCallback', {});\n\n return block;\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n bindEvents(block) {\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\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 insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n let newIndex = ++this.currentBlockIndex;\n let 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 insertAtEnd() {\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 mergeBlocks(targetBlock, blockToMerge) {\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n return Promise.resolve()\n .then( () => {\n if (blockToMerge.isEmpty) {\n return;\n }\n\n return blockToMerge.data\n .then((blockToMergeInfo) => {\n targetBlock.mergeWith(blockToMergeInfo.data);\n });\n })\n .then( () => {\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n });\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n removeBlock(index) {\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 * 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 split() {\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\n wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n let 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 replace(toolName, data = {}) {\n let block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * returns last Block\n * @return {Block}\n */\n get lastBlock() {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n getBlockByIndex(index) {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n getBlock(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n get currentBlock() {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n get nextBlock() {\n let 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 get nextContentfulBlock() {\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 get previousContentfulBlock() {\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 get previousBlock() {\n let 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 working html element\n *\n * @return {HTMLElement}\n */\n get currentNode() {\n return this._blocks.nodes[this.currentBlockIndex];\n }\n\n /**\n * Set currentBlockIndex to passed block\n * @param {Node} element\n */\n set currentNode(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`);\n\n if (!firstLevelBlock) {\n throw Error('Passed element is not a Block.');\n }\n\n\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = nodes.indexOf(firstLevelBlock);\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n highlightCurrentNode() {\n /**\n * Remove previous selected Block's state\n */\n this.clearHighlightings();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.selected = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n clearHighlightings() {\n this.blocks.forEach( block => block.selected = false);\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n get blocks() {\n return this._blocks.array;\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Element|Text} childNode - look ahead from this node.\n * @throws Error - when passed Node is not included at the Block\n */\n setCurrentBlockByChildNode(childNode) {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n let parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n this.currentNode = parentFirstLevelBlock;\n this.Editor.Caret.setToInput(childNode);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n swap(fromIndex, toIndex) {\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 dropPointer() {\n this.currentBlockIndex = -1;\n this.clearHighlightings();\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 clear(needAddInitialBlock = false) {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n};\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 */\nclass Blocks {\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push back new Block\n *\n * @param {Block} block\n */\n push(block) {\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 swap(first, second) {\n let 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 insert(index, block, replace = false) {\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 let deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n let previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n let 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 remove(index) {\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 removeAll() {\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 insertAfter(targetBlock, newBlock) {\n let 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 get(index) {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n indexOf(block) {\n return this.blocks.indexOf(block);\n }\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n get length() {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n get array() {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n get nodes() {\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 static set(instance, index, 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 static get(instance, index) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\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';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n static get CSS() {\n return {\n shadowCaret: 'cdx-shadow-caret'\n };\n };\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n static get positions() {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default'\n };\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. 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 setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\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, offset);\n }, 20)();\n\n BlockManager.currentNode = 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. 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 setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet, 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 {Element} element - target node.\n * @param {Number} offset - offset\n */\n set( element, offset = 0) {\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.selectionStart = element.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\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 /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n setToTheLastBlock() {\n let lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) return;\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 extractFragmentFromCaretPosition() {\n let selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n let range = selectRange.cloneRange(true);\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\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 getHigherLevelSiblings(from, direction ) {\n let current = from,\n siblings = [];\n\n /**\n * Find passed node's firs-level parent (in example - blockquote)\n */\n while (current.parentNode && current.parentNode.contentEditable !== 'true') {\n current = current.parentNode;\n }\n\n let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\n\n /**\n * Find all left/right siblings\n */\n while (current[sibling]) {\n current = current[sibling];\n siblings.push(current);\n }\n\n return siblings;\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 navigateNext(force = false) {\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 navigatePrevious(force = false) {\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\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 }\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 * Get's deepest first node and checks if offset is zero\n * @return {boolean}\n */\n get isAtStart() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let 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.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 *

    <-- first (and deepest) node is \n * |adaddad <-- anchor node\n *
    \n */\n if ($.isEmpty(firstNode)) {\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'left'),\n nothingAtLeft = leftSiblings.every( node => $.isEmpty(node) );\n\n\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 get isAtEnd() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let 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.selectionEnd === lastNode.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 let leftSiblings = this.getHigherLevelSiblings(anchorNode, '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 let 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 * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n createShadow(element) {\n let 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 {Node} element\n */\n restoreCaret(element) {\n let 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 let sel = new Selection();\n\n sel.expandToTag(shadowCaret);\n\n setTimeout(() => {\n let newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n this.subscribers = {};\n }\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n on(eventName, callback) {\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 emit(eventName, data) {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\n let 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 off(eventName, callback) {\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 destroy() {\n this.subscribers = null;\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.allListeners = [];\n }\n\n /**\n * Assigns event listener on element\n *\n * @param {Element} 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 on(element, eventType, handler, useCapture = false) {\n let assignedEventData = {\n element,\n eventType,\n handler,\n useCapture\n };\n\n let 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 {Element} 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 off(element, eventType, handler, useCapture = false) {\n let existingListeners = this.findAll(element, eventType, handler);\n\n for (let i = 0; i < existingListeners.length; i++) {\n let 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 * Search method: looks for listener by passed element\n * @param {Element} element - searching element\n * @returns {Array} listeners that found on element\n */\n findByElement(element) {\n let listenersOnElement = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.element === element) {\n listenersOnElement.push(listener);\n }\n }\n\n return listenersOnElement;\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 findByType(eventType) {\n let listenersWithType = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.type === eventType) {\n listenersWithType.push(listener);\n }\n }\n\n return listenersWithType;\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 findByHandler(handler) {\n let listenersWithHandler = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.handler === handler) {\n listenersWithHandler.push(listener);\n }\n }\n\n return listenersWithHandler;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Element|null}\n */\n findOne(element, eventType, handler) {\n let foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n findAll(element, eventType, handler) {\n let found,\n foundByElements = element ? this.findByElement(element) : [];\n // foundByEventType = eventType ? this.findByType(eventType) : [],\n // foundByHandler = handler ? this.findByHandler(handler) : [];\n\n if (element && eventType && handler) {\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByElements.filter( event => event.eventType === eventType);\n } else {\n found = foundByElements;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n removeAll() {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n}\n","import IBlockToolData from '../interfaces/tools/block-tool';\nimport IEditorConfig from '../interfaces/editor-config';\nimport CaretClass from './caret';\n\ndeclare const Module: any;\ndeclare const $: any;\ndeclare const _: any;\n\n/**\n * Tag substitute object.\n *\n * @param {string} tool - name of related Tool\n * @param {Function} handler - callback to handle pasted element\n */\ninterface ITagSubstitute {\n tool: string;\n handler: (element: HTMLElement) => IBlockToolData;\n}\n\n/**\n * Pattern substitute object.\n *\n * @param {string} key - pattern`s key\n * @param {RegExp} pattern - pasted pattern\n * @param {Function} handler - callback to handle pasted pattern\n * @param {string} tool - name of related Tool\n */\ninterface IPatternSubstitute {\n key: string;\n pattern: RegExp;\n handler: (text: string, key: string) => IBlockToolData;\n tool: string;\n}\n\n/**\n * Processed paste data object.\n *\n * @param {string} tool - name of related Tool\n * @param {HTMLElement} content - processed pasted content\n * @param {boolean} isBlock - true if content should be inserted as new Block\n * @param {Function} handler - callback that returns pasted data in IBlockToolData format\n */\ninterface IPasteData {\n tool: string;\n content: HTMLElement;\n isBlock: boolean;\n handler: (content: HTMLElement|string, patten?: RegExp) => IBlockToolData;\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]: ITagSubstitute} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: IPatternSubstitute[] = [];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\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.processPastedData);\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 tools\n *\n * @param {string} tool\n */\n private processTool = ([name, tool]) => {\n const toolPasteConfig = tool.onPaste || {};\n\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 && typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n } else {\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] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n }\n\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 } else {\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 \"${tool}\" 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 /**\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);\n\n return !block;\n }\n\n /**\n * Get pasted data, process it and insert into editor\n *\n * @param {ClipboardEvent} event\n */\n private processPastedData = async (event: ClipboardEvent): Promise => {\n const {\n Editor: {Tools, Sanitizer, BlockManager, Caret},\n } = this;\n\n /** If target is native input or is not Block, use browser behaviour */\n if (this.isNativeBehaviour(event.target)) {\n return;\n }\n\n event.preventDefault();\n\n const htmlData = event.clipboardData.getData('text/html'),\n plainData = event.clipboardData.getData('text/plain');\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()] = {};\n\n return result;\n }, {});\n\n const customConfig = {tags: Object.assign({}, toolsTags, Sanitizer.defaultConfig.tags)};\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n let dataToInsert = [];\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 dataToInsert = this.processPlain(plainData);\n } else {\n dataToInsert = this.processHTML(htmlData);\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n this.splitBlock();\n\n await Promise.all(dataToInsert.map(\n async (data, i) => await this.insertBlock(data, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\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 {IPasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: IPasteData): Promise {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret} = 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 if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n 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 /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, content.innerHTML);\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: IBlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{data: IBlockToolData, 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 {IPasteData} 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: IPasteData, 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 * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {IPasteData[]}\n */\n private processHTML(innerHTML: string): IPasteData[] {\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 = {tags: Object.assign({}, toolTags, Sanitizer.defaultConfig.tags)};\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(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 {IPasteData[]}\n */\n private processPlain(plain: string): IPasteData[] {\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.split('\\n\\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 * 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)) {\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 /** Append inline elements to previous fragment */\n if (\n !$.blockElements.includes(element.tagName.toLowerCase()) &&\n !tags.includes(element.tagName)\n ) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (tags.includes(element.tagName) || (\n $.blockElements.includes(element.tagName.toLowerCase()) &&\n Array.from(element.children).every(\n ({tagName}) => !$.blockElements.includes(tagName.toLowerCase()),\n )\n )\n ) {\n return [...nodes, 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 * 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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\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 render(blocks) {\n let chainData = [];\n\n for (let i = 0; i < blocks.length; i++) {\n chainData.push({\n function: () => this.insertBlock(blocks[i])\n });\n }\n\n return _.sequence(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 insertBlock(item) {\n let tool = item.type,\n data = item.data,\n 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 Promise.reject(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 return Promise.resolve();\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\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 */\nexport default class Sanitizer extends Module {\n /**\n * Initializes Sanitizer module\n * Sets default configuration if custom not exists\n *\n * @property {SanitizerConfig} this.defaultConfig\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\n *\n * @param {SanitizerConfig} config\n */\n constructor({config}) {\n super({config});\n\n // default config\n this.defaultConfig = null;\n this._sanitizerInstance = null;\n\n /** Custom configuration */\n this.sanitizerConfig = config.settings ? config.settings.sanitizer : {};\n\n /** HTML Janitor library */\n this.sanitizerInstance = require('html-janitor');\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 *\n * @param {HTMLJanitor} library - sanitizer extension\n */\n set sanitizerInstance(library) {\n this._sanitizerInstance = new library(this.defaultConfig);\n }\n\n /**\n * Sets sanitizer configuration. Uses default config if user didn't pass the restriction\n * @param {SanitizerConfig} config\n */\n set sanitizerConfig(config) {\n if (_.isEmpty(config)) {\n this.defaultConfig = {\n tags: {\n p: {},\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow'\n },\n b: {},\n i: {}\n }\n };\n } else {\n this.defaultConfig = config;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * @param {String} taintString - HTML string\n * @param {Object} customConfig - custom sanitizer configuration. Method uses default if param is empty\n * @return {String} clean HTML\n */\n clean(taintString, customConfig = {}) {\n if (_.isEmpty(customConfig)) {\n return this._sanitizerInstance.clean(taintString);\n } else {\n return Sanitizer.clean(taintString, customConfig);\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * @static\n *\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 static clean(taintString, customConfig) {\n let newInstance = new Sanitizer({\n config: {\n settings: {\n sanitizer: customConfig\n }\n }\n });\n\n return newInstance.clean(taintString);\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Object} SavedData\n * @property {Date} time - saving proccess time\n * @property {Object} items - extracted data\n * @property {String} version - CodexEditor version\n */\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 * @constructor\n * @param config\n */\n constructor({config}) {\n super({config});\n\n this.output = null;\n this.blocksData = [];\n }\n\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {SavedData}\n */\n save() {\n let blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n return Promise.all(chainData)\n .then((allExtractedData) => this.makeOutput(allExtractedData))\n .then((outputData) => {\n return outputData;\n });\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {SavedData}\n */\n makeOutput(allExtractedData) {\n let blocks = [],\n totalTime = 0;\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: blocks,\n version: VERSION,\n };\n }\n}\n\n// module.exports = (function (saver) {\n//\n// let editor = codex.editor;\n//\n// /**\n// * @public\n// * Save blocks\n// */\n// saver.save = function () {\n//\n// /** Save html content of redactor to memory */\n// editor.state.html = editor.nodes.redactor.innerHTML;\n//\n// /** Clean jsonOutput state */\n// editor.state.jsonOutput = [];\n//\n// return saveBlocks(editor.nodes.redactor.childNodes);\n//\n// };\n//\n// /**\n// * @private\n// * Save each block data\n// *\n// * @param blocks\n// * @returns {Promise.}\n// */\n// let saveBlocks = function (blocks) {\n//\n// let data = [];\n//\n// for(let index = 0; index < blocks.length; index++) {\n//\n// data.push(getBlockData(blocks[index]));\n//\n// }\n//\n// return Promise.all(data)\n// .then(makeOutput)\n// .catch(editor.core.log);\n//\n// };\n//\n// /** Save and validate block data */\n// let getBlockData = function (block) {\n//\n// return saveBlockData(block)\n// .then(validateBlockData)\n// .catch(editor.core.log);\n//\n// };\n//\n// /**\n// * @private\n// * Call block`s plugin save method and return saved data\n// *\n// * @param block\n// * @returns {Object}\n// */\n// let saveBlockData = function (block) {\n//\n// let pluginName = block.dataset.tool;\n//\n// /** Check for plugin existence */\n// if (!editor.tools[pluginName]) {\n//\n// editor.core.log(`Plugin «${pluginName}» not found`, 'error');\n// return {data: null, pluginName: null};\n//\n// }\n//\n// /** Check for plugin having save method */\n// if (typeof editor.tools[pluginName].save !== 'function') {\n//\n// editor.core.log(`Plugin «${pluginName}» must have save method`, 'error');\n// return {data: null, pluginName: null};\n//\n// }\n//\n// /** Result saver */\n// let blockContent = block.childNodes[0],\n// pluginsContent = blockContent.childNodes[0],\n// position = pluginsContent.dataset.inputPosition;\n//\n// /** If plugin wasn't available then return data from cache */\n// if ( editor.tools[pluginName].available === false ) {\n//\n// return Promise.resolve({data: codex.editor.state.blocks.items[position].data, pluginName});\n//\n// }\n//\n// return Promise.resolve(pluginsContent)\n// .then(editor.tools[pluginName].save)\n// .then(data => Object({data, pluginName}));\n//\n// };\n//\n// /**\n// * Call plugin`s validate method. Return false if validation failed\n// *\n// * @param data\n// * @param pluginName\n// * @returns {Object|Boolean}\n// */\n// let validateBlockData = function ({data, pluginName}) {\n//\n// if (!data || !pluginName) {\n//\n// return false;\n//\n// }\n//\n// if (editor.tools[pluginName].validate) {\n//\n// let result = editor.tools[pluginName].validate(data);\n//\n// /**\n// * Do not allow invalid data\n// */\n// if (!result) {\n//\n// return false;\n//\n// }\n//\n// }\n//\n// return {data, pluginName};\n//\n//\n// };\n//\n// /**\n// * Compile article output\n// *\n// * @param savedData\n// * @returns {{time: number, version, items: (*|Array)}}\n// */\n// let makeOutput = function (savedData) {\n//\n// savedData = savedData.filter(blockData => blockData);\n//\n// let items = savedData.map(blockData => Object({type: blockData.pluginName, data: blockData.data}));\n//\n// editor.state.jsonOutput = items;\n//\n// return {\n// id: editor.state.blocks.id || null,\n// time: +new Date(),\n// version: editor.version,\n// items\n// };\n//\n// };\n//\n// return saver;\n//\n// })({});\n","\nimport Shortcut from '@codexteam/shortcuts';\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\nimport IEditorConfig from '../interfaces/editor-config';\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module implements IShortcuts {\n /**\n * All registered shortcuts\n * @type {IShortcut[]}\n */\n private registeredShortcuts: IShortcut[];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.registeredShortcuts = [];\n }\n\n /**\n * Register shortcut\n * @param {IShortcut} shortcut\n */\n public add(shortcut: IShortcut): void {\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: document,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {IShortcut} shortcut\n */\n public remove(shortcut: string): void {\n // Remove\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null\n };\n }\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n get events() {\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 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 * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n make() {\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 * Add Tool's settings\n */\n addToolSettings() {\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 addDefaultSettings() {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Open Block Settings pane\n */\n open() {\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 close() {\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","declare var Module: any;\ndeclare var $: any;\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 EditorConfig from '../interfaces/editor-config';\nimport InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport _ from '../utils';\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 * 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 = {\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Inline Toolbar Tools\n * includes internal and external tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = {...this.internalTools, ...this.externalTools};\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\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 * Shows Inline Toolbar\n */\n private open() {\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, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Hides Inline Toolbar\n */\n private close() {\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 * 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);\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);\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 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 this.Editor.Listeners.on(button, 'click', () => {\n this.toolClicked(tool);\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (this.internalTools[toolName]) {\n shortcut = this.internalTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[this.Editor.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 Shortcut 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 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, toolName) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\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","import IEditorConfig from '../interfaces/editor-config';\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 * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n toolbox: null,\n buttons: []\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n this.opened = false;\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n this.activeButtonIndex = -1;\n }\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 make() {\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 * Iterates available tools and appends them to the Toolbox\n */\n addTools() {\n let tools = this.Editor.Tools.toolsAvailable;\n\n for (let toolName in tools) {\n this.addTool(toolName, tools[toolName]);\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {IBlockTool} tool - tool class\n */\n addTool(toolName, tool) {\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 let 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) => {\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\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {IBlockTool} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the Shortcut Module format\n */\n enableShortcut(tool, toolName, shortcut) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\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 Shortcut\n *\n * @param {IBlockTool} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n insertNewBlock(tool, toolName) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n /**\n * We do replace if:\n * - block is empty\n * - block is not irreplaceable\n * @type {Array}\n */\n let newBlock;\n\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\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 /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n toolButtonActivate(event, toolName) {\n const tool = this.Editor.Tools.toolsClasses[toolName];\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n open() {\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n close() {\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 toggle() {\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 leaf(direction = 'right') {\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 === 'right' ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === '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].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 get getActiveTool() {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return childNodes[this.activeButtonIndex].title;\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\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 /**\n * CSS styles\n * @return {Object}\n * @constructor\n */\n static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\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 make() {\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 /**\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.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\n\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 move(forceClose = true) {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n let currentNode = this.Editor.BlockManager.currentNode;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentNode) {\n return;\n }\n\n /**\n * @todo Compute dynamically on prepare\n * @type {number}\n */\n const defaultToolbarHeight = 49;\n const defaultOffset = 34;\n\n var newYCoordinate = currentNode.offsetTop - (defaultToolbarHeight / 2) + defaultOffset;\n\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(newYCoordinate)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button\n */\n open() {\n this.move();\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n close() {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\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 get plusButton() {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden)\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n plusButtonClicked() {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n bindEvents() {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\n this.settingsTogglerClicked(event);\n });\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n settingsTogglerClicked() {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","const Paragraph = require('../tools/paragraph/dist/bundle');\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 * Each Tool must contain the following important objects:\n *\n * @typedef {Object} ToolConfig {@link docs/tools.md}\n * @property {String} iconClassname - this a icon in toolbar\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\n * @property render @todo add description\n * @property save @todo add description\n * @property settings @todo add description\n * @property validate - method that validates output data before saving\n */\n\n/**\n * @typedef {Function} Tool {@link docs/tools.md}\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\n * @property {String} iconClassName - CSS class name for the Toolbox button\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\n * @property render\n * @property save\n * @property settings\n * @property validate\n *\n * @todo update according to current API\n * @todo describe Tool in the {@link docs/tools.md}\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 * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n this.toolsClasses = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\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 /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n this._inlineTools = null;\n }\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n get available() {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n get unavailable() {\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 get inline() {\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(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\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 get blockTools() {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n return true;\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 get apiSettings() {\n return {\n CONFIG: 'config',\n IS_CONTENTLESS: 'contentless',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n };\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n prepare() {\n this.config.tools.paragraph = {\n class: Paragraph,\n inlineToolbar: true\n };\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n return Promise.reject('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for(let 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 {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\n\n /**\n * Save Tool's settings\n * @type {IToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName];\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 {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName];\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n let 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) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\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 getListOfPrepareFunctions() {\n let toolPreparationList = [];\n\n for(let toolName in this.toolsClasses) {\n let toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function : toolClass.prepare,\n data : {\n toolName\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 return toolPreparationList;\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n 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 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 {IBlockToolData} data — initial data\n * @return {IBlockTool}\n */\n 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: IAPI, config: ({}), data: IBlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data: data\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {IInlineTool} tool\n * @return {IInlineTool} — instance\n */\n constructInline(tool) {\n /**\n * @type {{api: IAPI}}\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 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 {IToolSettings}\n */\n getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n}\n","/**\n * Module UI\n *\n * @type {UI}\n */\n\n/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\nimport Selection from '../selection';\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 * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n holder: null,\n wrapper: null,\n redactor: null\n };\n }\n\n /**\n * Making main interface\n */\n async prepare() {\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 * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string, block: string}}\n */\n get CSS() {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise}\n */\n async make() {\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 loadStyles() {\n /**\n * Load CSS\n */\n let styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n let 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 bindEvents() {\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n documentKeydown(event) {\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 defaultBehaviour(event) {\n const keyDownOnEditor = event.target.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 enterPressed(event) {\n let 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.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\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n documentClicked(event) {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = event.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\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 redactorClicked(event) {\n const clickedNode = event.target;\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 /**\n * Move toolbar and open\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 let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isInitialBlock && isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n appendSVGSprite() {\n let 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 /**\n * Clean editor`s UI\n */\n destroy() {\n this.nodes.holder.innerHTML = '';\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}\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 {Selection} Selection\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n * @constructor\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 */\n public static log(msg: string, type: string = 'log', args?: any): void {\n\n if (!args) {\n if (['time', 'timeEnd'].includes(type)) {\n msg = `[codex-editor]: ${msg}`;\n } else {\n args = msg || 'undefined';\n msg = '[codex-editor]: %o';\n }\n } else {\n msg = '[codex-editor]: ' + msg;\n }\n\n try {\n if ( 'console' in window && window.console[ type ] ) {\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\n }\n } catch (e) {\n // do nothing\n }\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes(): object {\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 sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise {\n return new Promise((resolve) => {\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 chains.reduce((previousValue, currentValue, iteration) => {\n return previousValue\n .then(() => waitNextBlock(currentValue, success, fallback))\n .then(() => {\n // finished\n if (iteration === chains.length - 1) {\n resolve();\n }\n });\n }, Promise.resolve());\n });\n\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise {\n return new Promise((resolve) => {\n chainData.function()\n .then(() => {\n successCallback(chainData.data || {});\n })\n .then(resolve)\n .catch(() => {\n fallbackCallback(chainData.data || {});\n\n // anyway, go ahead even it falls\n resolve();\n });\n });\n }\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","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: rgba(61,166,239,0.63);\\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: #E8E8EB;\\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 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: rgba(61,166,239,0.63);\\n background-color: var(--selectionColor);\\n}\\n::selection{\\n background-color: rgba(61,166,239,0.63);\\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/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding-right: 16px;\\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: inline-block;\\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--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::-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 }\\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: inline-block;\\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--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--selected {\\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--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\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.86, 0.86, 0.86);\\n transform: scale3d(0.86, 0.86, 0.86);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n\\n 40% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 80% {\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n transform: scale3d(0.97, 0.97, 0.97);\\n }\\n\\n to {\\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.86, 0.86, 0.86);\\n transform: scale3d(0.86, 0.86, 0.86);\\n }\\n\\n 20% {\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n\\n 40% {\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 60% {\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 80% {\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\n transform: scale3d(0.97, 0.97, 0.97);\\n }\\n\\n to {\\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 #E8E8EB;\\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: inline-block;\\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--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 #E8E8EB;\\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 #E8E8EB;\\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\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/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/babel-core/register.js","webpack://CodexEditor/./node_modules/babel-polyfill/lib/index.js","webpack://CodexEditor/./node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/babel-register/lib/browser.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/array/from.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/get-iterator.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/is-iterable.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/map.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/assign.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/create.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/define-property.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/entries.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/keys.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/promise.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/symbol.js","webpack://CodexEditor/./node_modules/babel-runtime/core-js/symbol/iterator.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/inherits.js","webpack://CodexEditor/./node_modules/babel-runtime/helpers/possibleConstructorReturn.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/regenerator/index.js","webpack://CodexEditor/./node_modules/core-js/fn/regexp/escape.js","webpack://CodexEditor/./node_modules/core-js/library/fn/array/from.js","webpack://CodexEditor/./node_modules/core-js/library/fn/get-iterator.js","webpack://CodexEditor/./node_modules/core-js/library/fn/is-iterable.js","webpack://CodexEditor/./node_modules/core-js/library/fn/map.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/assign.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/create.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/define-property.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/keys.js","webpack://CodexEditor/./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/library/fn/promise.js","webpack://CodexEditor/./node_modules/core-js/library/fn/symbol/index.js","webpack://CodexEditor/./node_modules/core-js/library/fn/symbol/iterator.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_array-from-iterable.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_collection-to-json.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_set-collection-from.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_set-collection-of.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/library/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/library/modules/core.get-iterator.js","webpack://CodexEditor/./node_modules/core-js/library/modules/core.is-iterable.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.map.from.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.map.of.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.map.to-json.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.promise.try.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack://CodexEditor/./node_modules/core-js/library/modules/web.dom.iterable.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-from-iterable.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-to-json.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/_flatten-into-array.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-scale.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/_metadata.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-forced-pam.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/_replacer.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-collection-from.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-collection-of.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/core.regexp.escape.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.flat-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.flatten.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.asap.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.error.is-error.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.global.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.map.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.map.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.map.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.clamp.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.deg-per-rad.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.degrees.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.fscale.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.iaddh.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.imulh.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.isubh.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.rad-per-deg.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.radians.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.scale.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.signbit.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.math.umulh.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.define-getter.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.define-setter.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.lookup-getter.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.lookup-setter.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.observable.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.try.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.reflect.metadata.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.set.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.set.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.set.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.at.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.match-all.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.string.trim-left.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.trim-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.observable.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.system.global.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.weak-map.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.weak-map.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.weak-set.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.weak-set.of.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/shim.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-module.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/(webpack)/buildin/global.js","webpack://CodexEditor/./src/codex.js","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/core.js","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 nonrecursive [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|caret.js|events.js|listeners.js|paste.ts|renderer.js|sanitizer.js|saver.js|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$","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-listener.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/api.ts","webpack://CodexEditor/./src/components/modules/block-events.ts","webpack://CodexEditor/./src/components/modules/blockManager.js","webpack://CodexEditor/./src/components/modules/caret.js","webpack://CodexEditor/./src/components/modules/events.js","webpack://CodexEditor/./src/components/modules/listeners.js","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.js","webpack://CodexEditor/./src/components/modules/sanitizer.js","webpack://CodexEditor/./src/components/modules/saver.js","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar-blockSettings.js","webpack://CodexEditor/./src/components/modules/toolbar-inline.ts","webpack://CodexEditor/./src/components/modules/toolbar-toolbox.js","webpack://CodexEditor/./src/components/modules/toolbar.js","webpack://CodexEditor/./src/components/modules/tools.js","webpack://CodexEditor/./src/components/modules/ui.js","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","self","e","configurable","default","length","writable","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","this","TypeError","commands","keys","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","global","_babelPolyfill","Error","DEFINE_PROPERTY","String","padStart","padEnd","forEach","Array","Function","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","regeneratorRuntime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","iter","next","then","result","done","toString","push","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","fn","obj","err","invoke","resolve","reject","Promise","unwrapped","previousPromise","process","domain","callInvokeWithMethodAndArg","return","info","pushTryEntry","locs","iteratorMethod","_promise2","_interopRequireDefault","gen","apply","arguments","step","error","instance","Constructor","_defineProperty2","defineProperties","target","props","descriptor","protoProps","staticProps","_setPrototypeOf2","_create2","_typeof3","subClass","superClass","ReferenceError","_isIterable3","_getIterator3","arr","isArray","_arr","_n","_d","_e","_s","_i","sliceIterator","_from2","arr2","_iterator2","_symbol2","_typeof","RegExp","escape","from","Map","assign","$Object","it","desc","entries","f","forbiddenField","isObject","forOf","ITERATOR","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","index","ctx","IObject","toObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","SPECIES","original","speciesConstructor","cof","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","$iterDefine","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","classof","$export","meta","fails","hide","setToStringTag","each","methods","common","IS_WEAK","Base","proto","_c","KEY","IS_ADDER","b","size","NEED","core","version","__e","$defineProperty","createDesc","aFunction","document","is","createElement","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","source","own","out","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","virtual","exec","isArrayIter","anObject","getIterFn","BREAK","RETURN","iterFn","Math","__g","documentElement","args","un","propertyIsEnumerable","Iterators","ArrayProto","ret","LIBRARY","redefine","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","META","setDesc","id","isExtensible","FREEZE","preventExtensions","setMeta","w","getWeak","onFreeze","macrotask","set","Observer","MutationObserver","WebKitMutationObserver","isNode","head","last","notify","flush","parent","exit","enter","nextTick","navigator","standalone","promise","toggle","node","createTextNode","observe","characterData","task","$$resolve","$$reject","$assign","join","aLen","concat","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","exp","isEntries","newPromiseCapability","x","promiseCapability","bitmap","COLLECTION","mapping","cb","mapFn","nextItem","of","check","test","buggy","tag","stat","shared","uid","store","copyright","toInteger","defined","TO_STRING","pos","charCodeAt","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","removeChild","setTimeout","max","min","ceil","floor","valueOf","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","getIterator","isIterable","createProperty","arrayLike","mapfn","addToUnscopables","Arguments","strong","$getPrototypeOf","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","indexOf","isThenable","isReject","chain","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","console","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","all","remaining","$index","alreadyCalled","race","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","toJSON","finally","onFinally","isFunction","try","TO_STRING_TAG","DOMIterables","Collection","msg","UNSCOPABLES","copyWithin","start","len","to","end","count","inc","endPos","memo","isRight","arraySlice","factories","partArgs","bound","construct","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","splice","ufstore","$iterDetect","inheritIfRequired","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","y","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","hint","MATCH","re","SYMBOL","fns","strfn","rxfn","string","ignoreCase","multiline","unicode","sticky","IS_CONCAT_SPREADABLE","flattenIntoArray","sourceLen","depth","mapper","thisArg","spreadable","targetIndex","sourceIndex","isRegExp","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","scale","inLow","inHigh","outLow","outHigh","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","map","MetadataKey","metadataMap","MetadataValue","_","__defineSetter__","Reflect","ownKeys","$parseFloat","parseFloat","$trim","trim","str","$parseInt","parseInt","ws","hex","radix","SRC","$toString","TPL","inspectSource","regExp","replace","part","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","number","$typed","$buffer","propertyDesc","toIndex","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","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","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","filter","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$iterators","isTAIndex","$getDesc","$setDesc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","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","$re","$every","$filter","$find","forced","$forEach","STRICT","$indexOf","NEGATIVE_ZERO","$reduce","upTo","cloned","$some","$sort","pv","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","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","$toPrecision","toPrecision","precision","$freeze","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","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","add","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","url","raw","callSite","tpl","$startsWith","startsWith","$isView","isView","fin","viewS","viewT","init","InternalMap","weak","tmp","$WeakMap","freeze","arraySpeciesCreate","flatMap","flatten","depthArg","$includes","asap","isError","clamp","lower","upper","DEG_PER_RAD","PI","RAD_PER_DEG","degrees","radians","fscale","iaddh","x0","x1","y0","y1","$x0","$y0","imulh","$u","$v","u0","v0","u1","v1","isubh","signbit","umulh","__defineGetter__","getOwnPropertyDescriptors","getDesc","__lookupGetter__","__lookupSetter__","$values","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","$Observable","subscribe","observable","items","Observable","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","deleteMetadata","Set","ordinaryOwnMetadataKeys","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","ordinaryGetMetadata","getMetadata","getOwnMetadataKeys","getOwnMetadata","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","$metadata","at","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","rx","$pad","ArrayValues","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","$task","MSIE","time","boundArgs","setInterval","useSourceMap","item","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","toComment","sourceURLs","sources","sourceRoot","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","innerHTML","_sanitize","parentNode","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","firstChild","_sanitized","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","childNodes","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","insertBefore","removeAttribute","previousElementSibling","nextElementSibling","nextSibling","g","hadRuntime","oldRuntime","eval","CodexEditor","configuration","_this","_classCallCheck3","onReady","editor","Core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","$","make","svg","handleClick","needConfirmation","events","off","blocks","stopPropagation","classList","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","remove","nextBlockElement","getBlockByIndex","holder","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollUpOffset","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","compose","tunes","makeTunes","methodName","params","merge","extractedBlock","save","pluginsContent","measuringStart","performance","measuringEnd","finishedExtraction","_utils2","isValid","_this3","_blockTuneMoveUp2","_blockTuneDelete2","_blockTuneMoveDown2","tune","tunesElement","createDocumentFragment","_dom2","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","querySelector","contentless","emptyText","isEmpty","emptyMedia","hasMedia","selected","wrapperStretched","onFail","holderId","tools","constructModules","configureModules","getModulesDiff","diff","moduleName","modulesToPrepare","_asyncToGenerator3","_regenerator2","_callee","_context","prepare","t0","Renderer","initialBlock","initialBlockData","placeholder","sanitizer","hideToolbar","Dom","tagName","_el$classList","classNames","_toConsumableArray3","width","height","icon","createElementNS","setAttribute","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","_selection2","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-blocks.ts","./api-caret.ts","./api-events.ts","./api-listener.ts","./api-sanitizer.ts","./api-saver.ts","./api-selection.ts","./api-styles.ts","./api-toolbar.ts","./api.ts","./block-events.ts","./blockManager.js","./caret.js","./events.js","./listeners.js","./paste.ts","./renderer.js","./sanitizer.js","./saver.js","./shortcuts.ts","./toolbar-blockSettings.js","./toolbar-inline.ts","./toolbar-toolbox.js","./toolbar.js","./tools.js","./ui.js","webpackContext","req","webpackContextResolve","BlocksAPI","_possibleConstructorReturn3","_getPrototypeOf2","BlockManager","Toolbar","move","blockIndex","removeBlock","insert","Caret","setToBlock","currentBlock","navigatePrevious","status","block","stretched","newBlock","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","ListenerAPI","eventType","useCapture","SanitizerAPI","taintString","Sanitizer","SaverAPI","Saver","SelectionAPI","className","StylesAPI","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","ToolbarAPI","caret","saver","styles","classes","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","defaultHandler","clearHighlightings","needToolbarClosing","InlineToolbar","handleShowingEvent","direction","opened","Toolbox","Tools","toolsAvailable","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","isInitial","plusButton","show","BM","isFirstBlock","canMergeBlocks","isAtStart","targetBlock","blockToMerge","mergeable","createShadow","mergeBlocks","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","Blocks","redactor","Proxy","available","bindEvents","keydown","mouseUp","keyup","newIndex","composeBlock","_this4","blockToMergeIndex","blockToMergeInfo","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","parentFirstLevelBlock","currentNode","setToInput","needAddInitialBlock","dropPointer","workingArea","second","secondBlock","deleteCount","insertAdjacentElement","nextBlock","children","position","positions","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","createRange","Selection","selectionStart","selectionEnd","setStart","setEnd","removeAllRanges","addRange","_range$getBoundingCli","bottom","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","current","siblings","contentEditable","force","_Editor$BlockManager","nextContentfulBlock","nextInput","isAtEnd","_Editor$BlockManager2","previousContentfulBlock","previousInput","shadowCaret","newRange","selectNode","isCollapsed","anchorNode","firstNode","firstLetterPosition","getHigherLevelSiblings","anchorOffset","lastNode","rightTrimmedText","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","findOne","existingListeners","findAll","listenersOnElement","listenersWithType","listenersWithHandler","foundListeners","foundByElements","findByElement","Paste","toolsTags","toolsPatterns","processTool","_ref2","_ref3","_slicedToArray3","toolPasteConfig","onPaste","patternHandler","patterns","_entries2","_ref4","_ref5","pattern","processPastedData","_ref6","_callee2","_this$Editor","htmlData","plainData","customConfig","cleanData","dataToInsert","_context2","isNativeBehaviour","clipboardData","getData","_keys2","_assign2","defaultConfig","isHTMLString","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref7","insertBlock","_x2","_x3","_caret2","_x","setCallback","processTools","_Editor","blockTools","getBlock","initialTool","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","insertedBlock","substitute","execResult","canReplaceCurrentBlock","_Editor4","_Editor5","getNodes","_Tools$blockTools$too","toolTags","plain","reducer","destNode","DocumentFragment","isFragment","blockElements","_ref12","chainData","_loop","function","sequence","_sanitizerInstance","sanitizerConfig","sanitizerInstance","library","href","rel","blocksData","allExtractedData","makeOutput","outputData","totalTime","groupCollapsed","extraction","groupEnd","Shortcuts","registeredShortcuts","shortcut","newShortcut","_shortcuts2","BlockSettings","toolSettings","defaultSettings","renderSettings","renderTunes","wrapperOpened","addToolSettings","addDefaultSettings","closed","inlineToolbarShowed","buttonsWrapper","actionsWrapper","inlineToolButtonLast","buttons","actions","toolbarVerticalMargin","addTools","allowedToShow","checkToolsState","selectionRect","rect","wrapperOffset","newCoords","filterTools","currentSelection","selectedText","getToolSettings","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","SHORTCUT","enableShortcuts","_this5","surround","toolsInstances","allTools","externalTools","_map2","bold","constructInline","_inlineToolBold2","italic","_inlineToolItalic2","_inlineToolLink2","inline","toolbox","activeButtonIndex","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","newYCoordinate","offsetTop","defaultToolbarHeight","transform","toolbarOpened","settingsTogglerClicked","plusButtonHidden","Paragraph","toolsSettings","toolsUnavailable","_inlineTools","paragraph","sequenceData","getListOfPrepareFunctions","success","fallback","toolPreparationList","plugin","CONFIG","IS_INLINE","notImplementedMethods","_ref8","_ref9","IS_CONTENTLESS","IS_PASTE_DISALLOWED","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","highlightCurrentNode","clickedOnInlineToolbarButton","isAtEditor","setCurrentBlockByChildNode","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","sel","getSelection","searchDepth","parentTag","focusNode","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","hmr","insertInto","locals","atob","HTMLIFrameElement","contentDocument","refs","parts","base","css","media","insertAt","before","h","attrs","singleton","URL","createObjectURL","revokeObjectURL","Blob","convertToAbsoluteUrls","styleSheet","cssText","DEBUG","Boolean","location","protocol","host","pathname","Util","chains","previousValue","currentValue","iteration","successCallback","fallbackCallback","waitNextBlock","collection","timeout","CTRL","ESC","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\"","/*!\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}])});","/* eslint max-len: 0 */\n// TODO: eventually deprecate this console.trace(\"use the `babel-register` package instead of `babel-core/register`\");\nmodule.exports = require(\"babel-register\");\n","\"use strict\";\n\nrequire(\"core-js/shim\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nrequire(\"core-js/fn/regexp/escape\");\n\nif (global._babelPolyfill) {\n throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\nvar DEFINE_PROPERTY = \"defineProperty\";\nfunction define(O, key, value) {\n O[key] || Object[DEFINE_PROPERTY](O, key, {\n writable: true,\n configurable: true,\n value: value\n });\n}\n\ndefine(String.prototype, \"padLeft\", \"\".padStart);\ndefine(String.prototype, \"padRight\", \"\".padEnd);\n\n\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n [][key] && define(Array, key, Function.call.bind([][key]));\n});","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\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 if (typeof global.process === \"object\" && global.process.domain) {\n invoke = global.process.domain.bind(invoke);\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 // Among the various tricks for obtaining a reference to the global\n // object, this seems to be the most reliable technique that does not\n // use indirect eval (which violates Content Security Policy).\n typeof global === \"object\" ? global :\n typeof window === \"object\" ? window :\n typeof self === \"object\" ? self : this\n);\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function () {};\n\nmodule.exports = exports[\"default\"];","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/is-iterable\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/map\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/entries\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(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 return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n 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 (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _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\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","module.exports = require(\"regenerator-runtime\");\n","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.get-iterator');\n","require('../modules/web.dom.iterable');\nrequire('../modules/es6.string.iterator');\nmodule.exports = require('../modules/core.is-iterable');\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.map');\nrequire('../modules/es7.map.to-json');\nrequire('../modules/es7.map.of');\nrequire('../modules/es7.map.from');\nmodule.exports = require('../modules/_core').Map;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\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 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","// 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","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar meta = require('./_meta');\nvar fails = require('./_fails');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar setToStringTag = require('./_set-to-string-tag');\nvar dP = require('./_object-dp').f;\nvar each = require('./_array-methods')(0);\nvar DESCRIPTORS = require('./_descriptors');\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 if (!DESCRIPTORS || 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 C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME, '_c');\n target._c = new Base();\n if (iterable != undefined) forOf(iterable, IS_MAP, target[ADDER], target);\n });\n each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {\n var IS_ADDER = KEY == 'add' || KEY == 'set';\n if (KEY in proto && !(IS_WEAK && KEY == 'clear')) hide(C.prototype, KEY, function (a, b) {\n anInstance(this, C, KEY);\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY == 'get' ? undefined : false;\n var result = this._c[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n });\n IS_WEAK || dP(C.prototype, 'size', {\n get: function () {\n return this._c.size;\n }\n });\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F, 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","// 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 ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\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 IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\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","// 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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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 = true;\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","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 hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = require('./_hide');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\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 core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : 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","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","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","// 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","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","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\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 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';\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","// 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.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.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.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.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\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","'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// 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","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\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-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-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 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","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\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","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\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","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\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","// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n if (\n arguments.length === 0\n // eslint-disable-next-line no-self-compare\n || x != x\n // eslint-disable-next-line no-self-compare\n || inLow != inLow\n // eslint-disable-next-line no-self-compare\n || inHigh != inHigh\n // eslint-disable-next-line no-self-compare\n || outLow != outLow\n // eslint-disable-next-line no-self-compare\n || outHigh != outHigh\n ) return NaN;\n if (x === Infinity || x === -Infinity) return x;\n return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;\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 Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\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","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\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","module.exports = function (regExp, replace) {\n var replacer = replace === Object(replace) ? function (part) {\n return replace[part];\n } : replace;\n return function (it) {\n return String(it).replace(regExp, replacer);\n };\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","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\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","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\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://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatten');\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/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export');\nvar microtask = require('./_microtask')();\nvar process = require('./_global').process;\nvar isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export');\nvar cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it) {\n return cof(it) === 'Error';\n }\n});\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clamp: function clamp(x, lower, upper) {\n return Math.min(upper, Math.max(lower, x));\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar scale = require('./_math-scale');\nvar fround = require('./_math-fround');\n\n$export($export.S, 'Math', {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { scale: require('./_math-scale') });\n","// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\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","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\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","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export');\nvar global = require('./_global');\nvar core = require('./_core');\nvar microtask = require('./_microtask')();\nvar OBSERVABLE = require('./_wks')('observable');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar anInstance = require('./_an-instance');\nvar redefineAll = require('./_redefine-all');\nvar hide = require('./_hide');\nvar forOf = require('./_for-of');\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n var cleanup = subscription._c;\n if (cleanup) {\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function (subscription) {\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n if (!subscriptionClosed(subscription)) {\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer);\n var subscription = cleanup;\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch (e) {\n observer.error(e);\n return;\n } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if (m) return m.call(observer, value);\n } catch (e) {\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value) {\n var subscription = this._s;\n if (subscriptionClosed(subscription)) throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if (!m) throw value;\n value = m.call(observer, value);\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer) {\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn) {\n var that = this;\n return new (core.Promise || global.Promise)(function (resolve, reject) {\n aFunction(fn);\n var subscription = that.subscribe({\n next: function (value) {\n try {\n return fn(value);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x) {\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if (method) {\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n return new C(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n try {\n if (forOf(x, false, function (it) {\n observer.next(it);\n if (done) return RETURN;\n }) === RETURN) return;\n } catch (e) {\n if (done) throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n },\n of: function of() {\n for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n for (var j = 0; j < items.length; ++j) {\n observer.next(items[j]);\n if (done) return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\nrequire('./_set-species')('Observable');\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-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export');\nvar $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n at: function at(pos) {\n return $at(this, pos);\n }\n});\n","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar toLength = require('./_to-length');\nvar isRegExp = require('./_is-regexp');\nvar getFlags = require('./_flags');\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {\n var match = this._r.exec(this._s);\n return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp) {\n defined(this);\n if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n var S = String(this);\n var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\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","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', { global: require('./_global') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\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/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.array.flat-map');\nrequire('./modules/es7.array.flatten');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.map.of');\nrequire('./modules/es7.set.of');\nrequire('./modules/es7.weak-map.of');\nrequire('./modules/es7.weak-set.of');\nrequire('./modules/es7.map.from');\nrequire('./modules/es7.set.from');\nrequire('./modules/es7.weak-map.from');\nrequire('./modules/es7.weak-set.from');\nrequire('./modules/es7.global');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.clamp');\nrequire('./modules/es7.math.deg-per-rad');\nrequire('./modules/es7.math.degrees');\nrequire('./modules/es7.math.fscale');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.rad-per-deg');\nrequire('./modules/es7.math.radians');\nrequire('./modules/es7.math.scale');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.math.signbit');\nrequire('./modules/es7.promise.finally');\nrequire('./modules/es7.promise.try');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./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 var sandbox = document.createElement('div');\n sandbox.innerHTML = html;\n\n this._sanitize(sandbox);\n\n return sandbox.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (parentNode) {\n var treeWalker = createTreeWalker(parentNode);\n var node = treeWalker.firstChild();\n if (!node) { return; }\n\n do {\n // Ignore nodes that have already been sanitized\n if (node._sanitized) {\n continue;\n }\n\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(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(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(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(node);\n\n // Mark node as sanitized so it's ignored in future runs\n node._sanitized = true;\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(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// 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() { return this })() || 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. 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","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\n/**\n * Apply polyfills\n */\nimport 'babel-core/register';\nif (!window || !window._babelPolyfill) require('babel-polyfill');\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 /** Editor version */\n static get version() {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig} configuration - user configuration\n */\n constructor(configuration) {\n let {onReady} = configuration;\n\n onReady = onReady && typeof onReady === 'function' ? onReady : () => {};\n\n configuration.onReady = () => {};\n\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor 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 exportAPI(editor) {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor = null;\n\n for (const field in this) {\n delete this[field];\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 IEditor from './interfaces/editor';\nimport IEditorConfig from './interfaces/editor-config';\nimport IModuleConfig from './interfaces/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 {IEditorConfig} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {IEditor}\n */\n protected Editor: IEditor;\n\n /**\n * Editor configuration object\n * @type {IEditorConfig}\n */\n protected config: IEditorConfig;\n\n /**\n * @constructor\n * @param {IModuleConfig}\n */\n constructor({config}: IModuleConfig) {\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 {IEditor} Editor\n */\n set state(Editor) {\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 IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class DeleteTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: any;\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 = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {Object} 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.listener.on(this.nodes.button, 'click', (event) => 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 */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveDownTune implements IBlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\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 {Object} 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.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\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).holder,\n 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 IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveUpTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\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 {Object} 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.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\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).holder,\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\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 IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\nimport $ from './dom';\nimport _ from './utils';\n\ntype Tool = any;\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {Tool} 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(): {wrapper: string, wrapperStretched: string, content: string, selected: string} {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n selected: 'ce-block--selected',\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 * 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 /**\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\n * That Tools are not empty\n */\n if (this.class.contentless) {\n return false;\n }\n\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 selected state\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n /**\n * We don't need to mark Block as Selected when it is not empty\n */\n if (state === true && !this.isEmpty) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\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 public name: string;\n public tool: Tool;\n public class: any;\n public settings: object;\n public holder: HTMLDivElement;\n public tunes: IBlockTune[];\n private readonly api: object;\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(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: object) {\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 {IBlockTune[]}\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 mergeWith(data: object): Promise {\n return Promise.resolve()\n .then(() => {\n this.tool.merge(data);\n });\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public save(): Promise {\n const extractedBlock = this.tool.save(this.pluginsContent);\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(function(error) {\n _.log(`Saving proccess for ${this.tool.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: object): object|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 {IBlockTune[]}\n */\n public makeTunes(): IBlockTune[] {\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: IBlockTuneConstructor) => {\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 * 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","/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Dynamically imported utils\n *\n * @typedef {Dom} $ - {@link components/dom.js}\n * @typedef {Util} _ - {@link components/utils.js}\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\n// eslint-disable-next-line\nlet modules = editorModules.map( module => require('./modules/' + module ));\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 * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config) {\n /**\n * Configuration object\n * @type {EditorConfig}\n */\n this.config = {};\n\n /**\n * @typedef {Object} EditorComponents\n * @property {BlockManager} BlockManager\n * @property {Tools} Tools\n * @property {Events} Events\n * @property {UI} UI\n * @property {Toolbar} Toolbar\n * @property {Toolbox} Toolbox\n * @property {BlockSettings} BlockSettings\n * @property {Renderer} Renderer\n * @property {InlineToolbar} InlineToolbar\n */\n this.moduleInstances = {};\n\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(() => {\n this.configuration = config;\n })\n .then(() => this.validate())\n .then(() => this.init())\n .then(() => this.start())\n .then(() => {\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\n\n setTimeout(() => {\n this.config.onReady.call();\n onReady();\n }, 500);\n })\n .catch(error => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {EditorConfig|string|null} config\n */\n set configuration(config) {\n /**\n * Process zero-configuration or with only holderId\n */\n if (typeof config === 'string' || typeof config === 'undefined') {\n config = {\n holderId: config\n };\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = 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 let initialBlockData = {\n type : this.config.initialBlock,\n data : {}\n };\n\n this.config.holderId = config.holderId || 'codex-editor';\n this.config.placeholder = config.placeholder || 'write your story...';\n this.config.sanitizer = config.sanitizer || {\n p: true,\n b: true,\n a: true\n };\n\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\n this.config.tools = config.tools || {};\n this.config.data = config.data || {};\n this.config.onReady = config.onReady || function () {};\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {};\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() {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {void|Promise}\n */\n validate() {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n return Promise.reject('«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 return Promise.reject(`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 (let toolName in this.config.tools) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n 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 * Make modules instances and save it to the @property this.moduleInstances\n */\n constructModules() {\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 console.log('Module %o skipped because %o', Module, e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n configureModules() {\n for(let name in this.moduleInstances) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff( name );\n }\n }\n\n /**\n * Return modules without passed name\n */\n getModulesDiff( name ) {\n let diff = {};\n\n for(let 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 * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n async start() {\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste'];\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 * 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 {Element}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\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[]): 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 InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\n\ndeclare var $: any;\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 * 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 = {\n button: undefined,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('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 InlineTool from '../interfaces/tools/inline-tool';\n\ndeclare var $: any;\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 * 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 = {\n button: null,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('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}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\n\ndeclare var $: any;\ndeclare var _: any;\n\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 * 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: 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: any;\n\n /**\n * @param {{api: IAPI}} - 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');\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');\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event) => {\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-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer.js\": \"./src/components/modules/sanitizer.js\",\n\t\"./saver.js\": \"./src/components/modules/saver.js\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui.js\": \"./src/components/modules/ui.js\"\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 [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|caret.js|events.js|listeners.js|paste.ts|renderer.js|sanitizer.js|saver.js|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$\";","declare var Module: any;\n\nimport { IBlocksAPI } from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module implements IBlocksAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IBlocksAPI}\n */\n get methods(): IBlocksAPI {\n return {\n clear: () => this.clear(),\n render: (data: IInputOutputData) => 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) => 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 Current Block\n * @param {Number} index\n *\n * @return {Object}\n */\n public getBlockByIndex(index: number): object {\n return this.Editor.BlockManager.getBlockByIndex(index);\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 {IInputOutputData} data — Saved Editor data\n */\n public render(data: IInputOutputData): void {\n this.Editor.BlockManager.clear();\n 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): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status !== undefined ? status : true;\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","declare var Module: any;\n\nimport {ICaretAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module implements ICaretAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ICaretAPI}\n */\n get methods(): ICaretAPI {\n return {};\n }\n}\n","declare var Module: any;\n\nimport {IEventsAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module implements IEventsAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IEventsAPI}\n */\n get methods(): IEventsAPI {\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","declare var Module: any;\n\nimport {IListenerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides with methods working with DOM Listener\n */\nexport default class ListenerAPI extends Module implements IListenerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IListenerAPI {\n return {\n on: (element, 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","declare var Module: any;\n\nimport {ISanitizerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISanitizerAPI}\n */\n get methods(): ISanitizerAPI {\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","declare var Module: any;\n\nimport {ISaverAPI} from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module implements ISaverAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISaverAPI}\n */\n get methods(): ISaverAPI {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): IInputOutputData {\n return this.Editor.Saver.save();\n }\n}\n","declare var Module: any;\n\nimport {ISelectionAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\nimport Selection from '../selection';\n\n/**\n * @class API\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module implements ISelectionAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISelectionAPI}\n */\n get methods(): ISelectionAPI {\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 Selection().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 Selection().expandToTag(node);\n }\n\n}\n","declare var Module: any;\n\nimport IModuleConfig from '../interfaces/module-config';\nimport {IStylesAPI} from '../interfaces/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n\n /**\n * Save Editor config\n * API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n get classes(): IStylesAPI {\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\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","declare var Module: any;\n\nimport {IToolbarAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class ToolbarsAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IToolbarAPI {\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 * @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 */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nimport { IAPI } from '../interfaces/api';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public get methods(): IAPI {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listener: this.Editor.ListenerAPI.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 };\n }\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class BlockEvents extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\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 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 * Clear all highlightings\n */\n this.Editor.BlockManager.clearHighlightings();\n\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\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 if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\n this.Editor.Toolbox.open();\n } else if (currentBlock.isEmpty) {\n this.Editor.Toolbar.open();\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\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.toolsAvailable[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();\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 BM = this.Editor.BlockManager;\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\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 = BM.currentBlockIndex === 0,\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\n\n /** If current Block is empty just remove this Block */\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\n this.Editor.BlockManager.removeBlock();\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 * 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 (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 return;\n }\n\n if (!canMergeBlocks) {\n return;\n }\n\n // preventing browser default behaviour\n event.preventDefault();\n\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\n blockToMerge = BM.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 (this.Editor.Caret.navigatePrevious()) {\n this.Editor.Toolbar.close();\n }\n\n return;\n }\n\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\n BM.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\n targetBlock.pluginsContent.normalize();\n this.Editor.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 */\n\nimport Block from '../block';\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = null;\n\n /**\n * Index of current working block\n *\n * @type {number}\n * @private\n */\n this.currentBlockIndex = -1;\n }\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n prepare() {\n return new Promise(resolve => {\n let 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 resolve();\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 composeBlock(toolName, data, settings) {\n let toolInstance = this.Editor.Tools.construct(toolName, data),\n toolClass = this.Editor.Tools.available[toolName],\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n /**\n * Apply callback before inserting html\n */\n block.call('appendCallback', {});\n\n return block;\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n bindEvents(block) {\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\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 insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n let newIndex = ++this.currentBlockIndex;\n let 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 insertAtEnd() {\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 mergeBlocks(targetBlock, blockToMerge) {\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n return Promise.resolve()\n .then( () => {\n if (blockToMerge.isEmpty) {\n return;\n }\n\n return blockToMerge.data\n .then((blockToMergeInfo) => {\n targetBlock.mergeWith(blockToMergeInfo.data);\n });\n })\n .then( () => {\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n });\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n removeBlock(index) {\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 * 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 split() {\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\n wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n let 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 replace(toolName, data = {}) {\n let block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * returns last Block\n * @return {Block}\n */\n get lastBlock() {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n getBlockByIndex(index) {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n getBlock(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n get currentBlock() {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n get nextBlock() {\n let 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 get nextContentfulBlock() {\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 get previousContentfulBlock() {\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 get previousBlock() {\n let 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 working html element\n *\n * @return {HTMLElement}\n */\n get currentNode() {\n return this._blocks.nodes[this.currentBlockIndex];\n }\n\n /**\n * Set currentBlockIndex to passed block\n * @param {Node} element\n */\n set currentNode(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`);\n\n if (!firstLevelBlock) {\n throw Error('Passed element is not a Block.');\n }\n\n\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = nodes.indexOf(firstLevelBlock);\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n highlightCurrentNode() {\n /**\n * Remove previous selected Block's state\n */\n this.clearHighlightings();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.selected = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n clearHighlightings() {\n this.blocks.forEach( block => block.selected = false);\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n get blocks() {\n return this._blocks.array;\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Element|Text} childNode - look ahead from this node.\n * @throws Error - when passed Node is not included at the Block\n */\n setCurrentBlockByChildNode(childNode) {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n let parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n this.currentNode = parentFirstLevelBlock;\n this.Editor.Caret.setToInput(childNode);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n swap(fromIndex, toIndex) {\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 dropPointer() {\n this.currentBlockIndex = -1;\n this.clearHighlightings();\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 clear(needAddInitialBlock = false) {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n};\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 */\nclass Blocks {\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push back new Block\n *\n * @param {Block} block\n */\n push(block) {\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 swap(first, second) {\n let 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 insert(index, block, replace = false) {\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 let deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n let previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n let 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 remove(index) {\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 removeAll() {\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 insertAfter(targetBlock, newBlock) {\n let 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 get(index) {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n indexOf(block) {\n return this.blocks.indexOf(block);\n }\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n get length() {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n get array() {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n get nodes() {\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 static set(instance, index, 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 static get(instance, index) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\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';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n static get CSS() {\n return {\n shadowCaret: 'cdx-shadow-caret'\n };\n };\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n static get positions() {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default'\n };\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. 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 setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\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, offset);\n }, 20)();\n\n BlockManager.currentNode = 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. 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 setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet, 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 {Element} element - target node.\n * @param {Number} offset - offset\n */\n set( element, offset = 0) {\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.selectionStart = element.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\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 /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n setToTheLastBlock() {\n let lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) return;\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 extractFragmentFromCaretPosition() {\n let selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n let range = selectRange.cloneRange(true);\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\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 getHigherLevelSiblings(from, direction ) {\n let current = from,\n siblings = [];\n\n /**\n * Find passed node's firs-level parent (in example - blockquote)\n */\n while (current.parentNode && current.parentNode.contentEditable !== 'true') {\n current = current.parentNode;\n }\n\n let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\n\n /**\n * Find all left/right siblings\n */\n while (current[sibling]) {\n current = current[sibling];\n siblings.push(current);\n }\n\n return siblings;\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 navigateNext(force = false) {\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 navigatePrevious(force = false) {\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\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 }\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 * Get's deepest first node and checks if offset is zero\n * @return {boolean}\n */\n get isAtStart() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let 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.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 *

    <-- first (and deepest) node is \n * |adaddad <-- anchor node\n *
    \n */\n if ($.isEmpty(firstNode)) {\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'left'),\n nothingAtLeft = leftSiblings.every( node => $.isEmpty(node) );\n\n\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 get isAtEnd() {\n /**\n * Don't handle ranges\n */\n if (!Selection.isCollapsed) {\n return false;\n }\n\n let 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.selectionEnd === lastNode.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 let leftSiblings = this.getHigherLevelSiblings(anchorNode, '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 let 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 * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n createShadow(element) {\n let 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 {Node} element\n */\n restoreCaret(element) {\n let 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 let sel = new Selection();\n\n sel.expandToTag(shadowCaret);\n\n setTimeout(() => {\n let newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n this.subscribers = {};\n }\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n on(eventName, callback) {\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 emit(eventName, data) {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\n let 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 off(eventName, callback) {\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 destroy() {\n this.subscribers = null;\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.allListeners = [];\n }\n\n /**\n * Assigns event listener on element\n *\n * @param {Element} 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 on(element, eventType, handler, useCapture = false) {\n let assignedEventData = {\n element,\n eventType,\n handler,\n useCapture\n };\n\n let 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 {Element} 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 off(element, eventType, handler, useCapture = false) {\n let existingListeners = this.findAll(element, eventType, handler);\n\n for (let i = 0; i < existingListeners.length; i++) {\n let 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 * Search method: looks for listener by passed element\n * @param {Element} element - searching element\n * @returns {Array} listeners that found on element\n */\n findByElement(element) {\n let listenersOnElement = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.element === element) {\n listenersOnElement.push(listener);\n }\n }\n\n return listenersOnElement;\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 findByType(eventType) {\n let listenersWithType = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.type === eventType) {\n listenersWithType.push(listener);\n }\n }\n\n return listenersWithType;\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 findByHandler(handler) {\n let listenersWithHandler = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.handler === handler) {\n listenersWithHandler.push(listener);\n }\n }\n\n return listenersWithHandler;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Element|null}\n */\n findOne(element, eventType, handler) {\n let foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n findAll(element, eventType, handler) {\n let found,\n foundByElements = element ? this.findByElement(element) : [];\n // foundByEventType = eventType ? this.findByType(eventType) : [],\n // foundByHandler = handler ? this.findByHandler(handler) : [];\n\n if (element && eventType && handler) {\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByElements.filter( event => event.eventType === eventType);\n } else {\n found = foundByElements;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n removeAll() {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n}\n","import IBlockToolData from '../interfaces/tools/block-tool';\nimport IEditorConfig from '../interfaces/editor-config';\nimport CaretClass from './caret';\n\ndeclare const Module: any;\ndeclare const $: any;\ndeclare const _: any;\n\n/**\n * Tag substitute object.\n *\n * @param {string} tool - name of related Tool\n * @param {Function} handler - callback to handle pasted element\n */\ninterface ITagSubstitute {\n tool: string;\n handler: (element: HTMLElement) => IBlockToolData;\n}\n\n/**\n * Pattern substitute object.\n *\n * @param {string} key - pattern`s key\n * @param {RegExp} pattern - pasted pattern\n * @param {Function} handler - callback to handle pasted pattern\n * @param {string} tool - name of related Tool\n */\ninterface IPatternSubstitute {\n key: string;\n pattern: RegExp;\n handler: (text: string, key: string) => IBlockToolData;\n tool: string;\n}\n\n/**\n * Processed paste data object.\n *\n * @param {string} tool - name of related Tool\n * @param {HTMLElement} content - processed pasted content\n * @param {boolean} isBlock - true if content should be inserted as new Block\n * @param {Function} handler - callback that returns pasted data in IBlockToolData format\n */\ninterface IPasteData {\n tool: string;\n content: HTMLElement;\n isBlock: boolean;\n handler: (content: HTMLElement|string, patten?: RegExp) => IBlockToolData;\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]: ITagSubstitute} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: IPatternSubstitute[] = [];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\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.processPastedData);\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 tools\n *\n * @param {string} tool\n */\n private processTool = ([name, tool]) => {\n const toolPasteConfig = tool.onPaste || {};\n\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 && typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n } else {\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] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n }\n\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 } else {\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 \"${tool}\" 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 /**\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);\n\n return !block;\n }\n\n /**\n * Get pasted data, process it and insert into editor\n *\n * @param {ClipboardEvent} event\n */\n private processPastedData = async (event: ClipboardEvent): Promise => {\n const {\n Editor: {Tools, Sanitizer, BlockManager, Caret},\n } = this;\n\n /** If target is native input or is not Block, use browser behaviour */\n if (this.isNativeBehaviour(event.target)) {\n return;\n }\n\n event.preventDefault();\n\n const htmlData = event.clipboardData.getData('text/html'),\n plainData = event.clipboardData.getData('text/plain');\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()] = {};\n\n return result;\n }, {});\n\n const customConfig = {tags: Object.assign({}, toolsTags, Sanitizer.defaultConfig.tags)};\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n let dataToInsert = [];\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 dataToInsert = this.processPlain(plainData);\n } else {\n dataToInsert = this.processHTML(htmlData);\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n this.splitBlock();\n\n await Promise.all(dataToInsert.map(\n async (data, i) => await this.insertBlock(data, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\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 {IPasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: IPasteData): Promise {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret} = 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 if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n 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 /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, content.innerHTML);\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: IBlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{data: IBlockToolData, 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 {IPasteData} 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: IPasteData, 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 * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {IPasteData[]}\n */\n private processHTML(innerHTML: string): IPasteData[] {\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 = {tags: Object.assign({}, toolTags, Sanitizer.defaultConfig.tags)};\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(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 {IPasteData[]}\n */\n private processPlain(plain: string): IPasteData[] {\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.split('\\n\\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 * 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)) {\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 /** Append inline elements to previous fragment */\n if (\n !$.blockElements.includes(element.tagName.toLowerCase()) &&\n !tags.includes(element.tagName)\n ) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (tags.includes(element.tagName) || (\n $.blockElements.includes(element.tagName.toLowerCase()) &&\n Array.from(element.children).every(\n ({tagName}) => !$.blockElements.includes(tagName.toLowerCase()),\n )\n )\n ) {\n return [...nodes, 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 * 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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\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 render(blocks) {\n let chainData = [];\n\n for (let i = 0; i < blocks.length; i++) {\n chainData.push({\n function: () => this.insertBlock(blocks[i])\n });\n }\n\n return _.sequence(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 insertBlock(item) {\n let tool = item.type,\n data = item.data,\n 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 Promise.reject(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 return Promise.resolve();\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\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 */\nexport default class Sanitizer extends Module {\n /**\n * Initializes Sanitizer module\n * Sets default configuration if custom not exists\n *\n * @property {SanitizerConfig} this.defaultConfig\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\n *\n * @param {SanitizerConfig} config\n */\n constructor({config}) {\n super({config});\n\n // default config\n this.defaultConfig = null;\n this._sanitizerInstance = null;\n\n /** Custom configuration */\n this.sanitizerConfig = config.settings ? config.settings.sanitizer : {};\n\n /** HTML Janitor library */\n this.sanitizerInstance = require('html-janitor');\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 *\n * @param {HTMLJanitor} library - sanitizer extension\n */\n set sanitizerInstance(library) {\n this._sanitizerInstance = new library(this.defaultConfig);\n }\n\n /**\n * Sets sanitizer configuration. Uses default config if user didn't pass the restriction\n * @param {SanitizerConfig} config\n */\n set sanitizerConfig(config) {\n if (_.isEmpty(config)) {\n this.defaultConfig = {\n tags: {\n p: {},\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow'\n },\n b: {},\n i: {}\n }\n };\n } else {\n this.defaultConfig = config;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * @param {String} taintString - HTML string\n * @param {Object} customConfig - custom sanitizer configuration. Method uses default if param is empty\n * @return {String} clean HTML\n */\n clean(taintString, customConfig = {}) {\n if (_.isEmpty(customConfig)) {\n return this._sanitizerInstance.clean(taintString);\n } else {\n return Sanitizer.clean(taintString, customConfig);\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * @static\n *\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 static clean(taintString, customConfig) {\n let newInstance = new Sanitizer({\n config: {\n settings: {\n sanitizer: customConfig\n }\n }\n });\n\n return newInstance.clean(taintString);\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Object} SavedData\n * @property {Date} time - saving proccess time\n * @property {Object} items - extracted data\n * @property {String} version - CodexEditor version\n */\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 * @constructor\n * @param config\n */\n constructor({config}) {\n super({config});\n\n this.output = null;\n this.blocksData = [];\n }\n\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {SavedData}\n */\n save() {\n let blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n return Promise.all(chainData)\n .then((allExtractedData) => this.makeOutput(allExtractedData))\n .then((outputData) => {\n return outputData;\n });\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {SavedData}\n */\n makeOutput(allExtractedData) {\n let blocks = [],\n totalTime = 0;\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: blocks,\n version: VERSION,\n };\n }\n}\n\n// module.exports = (function (saver) {\n//\n// let editor = codex.editor;\n//\n// /**\n// * @public\n// * Save blocks\n// */\n// saver.save = function () {\n//\n// /** Save html content of redactor to memory */\n// editor.state.html = editor.nodes.redactor.innerHTML;\n//\n// /** Clean jsonOutput state */\n// editor.state.jsonOutput = [];\n//\n// return saveBlocks(editor.nodes.redactor.childNodes);\n//\n// };\n//\n// /**\n// * @private\n// * Save each block data\n// *\n// * @param blocks\n// * @returns {Promise.}\n// */\n// let saveBlocks = function (blocks) {\n//\n// let data = [];\n//\n// for(let index = 0; index < blocks.length; index++) {\n//\n// data.push(getBlockData(blocks[index]));\n//\n// }\n//\n// return Promise.all(data)\n// .then(makeOutput)\n// .catch(editor.core.log);\n//\n// };\n//\n// /** Save and validate block data */\n// let getBlockData = function (block) {\n//\n// return saveBlockData(block)\n// .then(validateBlockData)\n// .catch(editor.core.log);\n//\n// };\n//\n// /**\n// * @private\n// * Call block`s plugin save method and return saved data\n// *\n// * @param block\n// * @returns {Object}\n// */\n// let saveBlockData = function (block) {\n//\n// let pluginName = block.dataset.tool;\n//\n// /** Check for plugin existence */\n// if (!editor.tools[pluginName]) {\n//\n// editor.core.log(`Plugin «${pluginName}» not found`, 'error');\n// return {data: null, pluginName: null};\n//\n// }\n//\n// /** Check for plugin having save method */\n// if (typeof editor.tools[pluginName].save !== 'function') {\n//\n// editor.core.log(`Plugin «${pluginName}» must have save method`, 'error');\n// return {data: null, pluginName: null};\n//\n// }\n//\n// /** Result saver */\n// let blockContent = block.childNodes[0],\n// pluginsContent = blockContent.childNodes[0],\n// position = pluginsContent.dataset.inputPosition;\n//\n// /** If plugin wasn't available then return data from cache */\n// if ( editor.tools[pluginName].available === false ) {\n//\n// return Promise.resolve({data: codex.editor.state.blocks.items[position].data, pluginName});\n//\n// }\n//\n// return Promise.resolve(pluginsContent)\n// .then(editor.tools[pluginName].save)\n// .then(data => Object({data, pluginName}));\n//\n// };\n//\n// /**\n// * Call plugin`s validate method. Return false if validation failed\n// *\n// * @param data\n// * @param pluginName\n// * @returns {Object|Boolean}\n// */\n// let validateBlockData = function ({data, pluginName}) {\n//\n// if (!data || !pluginName) {\n//\n// return false;\n//\n// }\n//\n// if (editor.tools[pluginName].validate) {\n//\n// let result = editor.tools[pluginName].validate(data);\n//\n// /**\n// * Do not allow invalid data\n// */\n// if (!result) {\n//\n// return false;\n//\n// }\n//\n// }\n//\n// return {data, pluginName};\n//\n//\n// };\n//\n// /**\n// * Compile article output\n// *\n// * @param savedData\n// * @returns {{time: number, version, items: (*|Array)}}\n// */\n// let makeOutput = function (savedData) {\n//\n// savedData = savedData.filter(blockData => blockData);\n//\n// let items = savedData.map(blockData => Object({type: blockData.pluginName, data: blockData.data}));\n//\n// editor.state.jsonOutput = items;\n//\n// return {\n// id: editor.state.blocks.id || null,\n// time: +new Date(),\n// version: editor.version,\n// items\n// };\n//\n// };\n//\n// return saver;\n//\n// })({});\n","\nimport Shortcut from '@codexteam/shortcuts';\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\nimport IEditorConfig from '../interfaces/editor-config';\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module implements IShortcuts {\n /**\n * All registered shortcuts\n * @type {IShortcut[]}\n */\n private registeredShortcuts: IShortcut[];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.registeredShortcuts = [];\n }\n\n /**\n * Register shortcut\n * @param {IShortcut} shortcut\n */\n public add(shortcut: IShortcut): void {\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: document,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {IShortcut} shortcut\n */\n public remove(shortcut: string): void {\n // Remove\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null\n };\n }\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n get events() {\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 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 * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n make() {\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 * Add Tool's settings\n */\n addToolSettings() {\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 addDefaultSettings() {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Open Block Settings pane\n */\n open() {\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 close() {\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","declare var Module: any;\ndeclare var $: any;\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 EditorConfig from '../interfaces/editor-config';\nimport InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport _ from '../utils';\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 * 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 = {\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 * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Inline Toolbar Tools\n * includes internal and external tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = {...this.internalTools, ...this.externalTools};\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\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 * Shows Inline Toolbar\n */\n private open() {\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, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Hides Inline Toolbar\n */\n private close() {\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 * 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);\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);\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 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 this.Editor.Listeners.on(button, 'click', () => {\n this.toolClicked(tool);\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (this.internalTools[toolName]) {\n shortcut = this.internalTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[this.Editor.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 Shortcut 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 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, toolName) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\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","import IEditorConfig from '../interfaces/editor-config';\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 * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n toolbox: null,\n buttons: []\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n this.opened = false;\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n this.activeButtonIndex = -1;\n }\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 make() {\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 * Iterates available tools and appends them to the Toolbox\n */\n addTools() {\n let tools = this.Editor.Tools.toolsAvailable;\n\n for (let toolName in tools) {\n this.addTool(toolName, tools[toolName]);\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {IBlockTool} tool - tool class\n */\n addTool(toolName, tool) {\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 let 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) => {\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\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {IBlockTool} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the Shortcut Module format\n */\n enableShortcut(tool, toolName, shortcut) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\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 Shortcut\n *\n * @param {IBlockTool} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n insertNewBlock(tool, toolName) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n /**\n * We do replace if:\n * - block is empty\n * - block is not irreplaceable\n * @type {Array}\n */\n let newBlock;\n\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\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 /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n toolButtonActivate(event, toolName) {\n const tool = this.Editor.Tools.toolsClasses[toolName];\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n open() {\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n close() {\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 toggle() {\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 leaf(direction = 'right') {\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 === 'right' ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === '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].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 get getActiveTool() {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return childNodes[this.activeButtonIndex].title;\n }\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 * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\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 /**\n * CSS styles\n * @return {Object}\n * @constructor\n */\n static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\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 make() {\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 /**\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.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\n\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 move(forceClose = true) {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n let currentNode = this.Editor.BlockManager.currentNode;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentNode) {\n return;\n }\n\n /**\n * @todo Compute dynamically on prepare\n * @type {number}\n */\n const defaultToolbarHeight = 49;\n const defaultOffset = 34;\n\n var newYCoordinate = currentNode.offsetTop - (defaultToolbarHeight / 2) + defaultOffset;\n\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(newYCoordinate)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button\n */\n open() {\n this.move();\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n close() {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\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 get plusButton() {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden)\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n plusButtonClicked() {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n bindEvents() {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\n this.settingsTogglerClicked(event);\n });\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n settingsTogglerClicked() {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","const Paragraph = require('../tools/paragraph/dist/bundle');\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 * Each Tool must contain the following important objects:\n *\n * @typedef {Object} ToolConfig {@link docs/tools.md}\n * @property {String} iconClassname - this a icon in toolbar\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\n * @property render @todo add description\n * @property save @todo add description\n * @property settings @todo add description\n * @property validate - method that validates output data before saving\n */\n\n/**\n * @typedef {Function} Tool {@link docs/tools.md}\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\n * @property {String} iconClassName - CSS class name for the Toolbox button\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\n * @property render\n * @property save\n * @property settings\n * @property validate\n *\n * @todo update according to current API\n * @todo describe Tool in the {@link docs/tools.md}\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 * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n this.toolsClasses = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\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 /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n this._inlineTools = null;\n }\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n get available() {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n get unavailable() {\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 get inline() {\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(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\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 get blockTools() {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n return true;\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 get apiSettings() {\n return {\n CONFIG: 'config',\n IS_CONTENTLESS: 'contentless',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n };\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n prepare() {\n this.config.tools.paragraph = {\n class: Paragraph,\n inlineToolbar: true\n };\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n return Promise.reject('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for(let 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 {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\n\n /**\n * Save Tool's settings\n * @type {IToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName];\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 {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName];\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n let 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) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\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 getListOfPrepareFunctions() {\n let toolPreparationList = [];\n\n for(let toolName in this.toolsClasses) {\n let toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function : toolClass.prepare,\n data : {\n toolName\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 return toolPreparationList;\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n 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 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 {IBlockToolData} data — initial data\n * @return {IBlockTool}\n */\n 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: IAPI, config: ({}), data: IBlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data: data\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {IInlineTool} tool\n * @return {IInlineTool} — instance\n */\n constructInline(tool) {\n /**\n * @type {{api: IAPI}}\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 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 {IToolSettings}\n */\n getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n}\n","/**\n * Module UI\n *\n * @type {UI}\n */\n\n/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\nimport Selection from '../selection';\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 * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n holder: null,\n wrapper: null,\n redactor: null\n };\n }\n\n /**\n * Making main interface\n */\n async prepare() {\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 * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string, block: string}}\n */\n get CSS() {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise}\n */\n async make() {\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 loadStyles() {\n /**\n * Load CSS\n */\n let styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n let 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 bindEvents() {\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n documentKeydown(event) {\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 defaultBehaviour(event) {\n const keyDownOnEditor = event.target.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 enterPressed(event) {\n let 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.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\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n documentClicked(event) {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = event.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\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 redactorClicked(event) {\n const clickedNode = event.target;\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 /**\n * Move toolbar and open\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 let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isInitialBlock && isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n appendSVGSprite() {\n let 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 /**\n * Clean editor`s UI\n */\n destroy() {\n this.nodes.holder.innerHTML = '';\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}\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 {Selection} Selection\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n * @constructor\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 */\n public static log(msg: string, type: string = 'log', args?: any): void {\n\n if (!args) {\n if (['time', 'timeEnd'].includes(type)) {\n msg = `[codex-editor]: ${msg}`;\n } else {\n args = msg || 'undefined';\n msg = '[codex-editor]: %o';\n }\n } else {\n msg = '[codex-editor]: ' + msg;\n }\n\n try {\n if ( 'console' in window && window.console[ type ] ) {\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\n }\n } catch (e) {\n // do nothing\n }\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes(): object {\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 sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise {\n return new Promise((resolve) => {\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 chains.reduce((previousValue, currentValue, iteration) => {\n return previousValue\n .then(() => waitNextBlock(currentValue, success, fallback))\n .then(() => {\n // finished\n if (iteration === chains.length - 1) {\n resolve();\n }\n });\n }, Promise.resolve());\n });\n\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise {\n return new Promise((resolve) => {\n chainData.function()\n .then(() => {\n successCallback(chainData.data || {});\n })\n .then(resolve)\n .catch(() => {\n fallbackCallback(chainData.data || {});\n\n // anyway, go ahead even it falls\n resolve();\n });\n });\n }\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","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: rgba(61,166,239,0.63);\\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: #E8E8EB;\\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 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: rgba(61,166,239,0.63);\\n background-color: var(--selectionColor);\\n}\\n::selection{\\n background-color: rgba(61,166,239,0.63);\\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/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 0;\\n padding-right: 16px;\\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: inline-block;\\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--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 }\\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: inline-block;\\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--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--selected {\\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--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\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.86, 0.86, 0.86);\\n }\\n\\n 20% {\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n\\n 40% {\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 60% {\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 80% {\\n transform: scale3d(0.97, 0.97, 0.97);\\n }\\n\\n to {\\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 #E8E8EB;\\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: inline-block;\\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--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 #E8E8EB;\\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 #E8E8EB;\\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\n// exports\n"],"sourceRoot":""} \ No newline at end of file diff --git a/example/example.html b/example/example.html index 4883d07b0..4259cbb17 100644 --- a/example/example.html +++ b/example/example.html @@ -46,7 +46,9 @@ + + @@ -103,12 +105,21 @@ }, }, - delimiter: Delimiter, + marker: { + class: Marker, + shortcut: 'CMD+SHIFT+M' + }, + code: { + class: CodeTool, + shortcut: 'CMD+SHIFT+D' + }, + + delimiter: Delimiter, inlineCode: { class: InlineCode, - shortcut: 'CMD+SHIFT+M' + shortcut: 'CMD+SHIFT+C' }, }, diff --git a/example/tools/code b/example/tools/code new file mode 160000 index 000000000..2196eac8d --- /dev/null +++ b/example/tools/code @@ -0,0 +1 @@ +Subproject commit 2196eac8d8e57397f99f7aa0f135361f4a2b5800 diff --git a/example/tools/marker b/example/tools/marker new file mode 160000 index 000000000..9d16ccf14 --- /dev/null +++ b/example/tools/marker @@ -0,0 +1 @@ +Subproject commit 9d16ccf1458e8cf90fc04c30cfc174fec4e7409c