From cb86bf446b12b6f32b3e59cb05b0cf294dcf12c6 Mon Sep 17 00:00:00 2001 From: George Berezhnoy Date: Tue, 16 Oct 2018 15:33:49 +0300 Subject: [PATCH] Improve paste behaviour (#473) * Improve paste behaviour * Use variables for long expressions * Fix paste processing logic --- build/codex-editor.js | 6 +++--- build/codex-editor.js.map | 2 +- package.json | 2 +- src/components/modules/paste.ts | 38 +++++++++++++++++++++++---------- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/build/codex-editor.js b/build/codex-editor.js index 8ee0ec96..bc6978e7 100644 --- a/build/codex-editor.js +++ b/build/codex-editor.js @@ -1942,7 +1942,7 @@ /*!**********************!*\ !*** ./src/codex.js ***! \**********************/ -/*! no static exports found */function(e,o,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var s=u(t(/*! babel-runtime/core-js/object/set-prototype-of */"./node_modules/babel-runtime/core-js/object/set-prototype-of.js")),r=u(t(/*! babel-runtime/helpers/typeof */"./node_modules/babel-runtime/helpers/typeof.js")),n=u(t(/*! babel-runtime/helpers/classCallCheck */"./node_modules/babel-runtime/helpers/classCallCheck.js")),i=u(t(/*! babel-runtime/helpers/createClass */"./node_modules/babel-runtime/helpers/createClass.js"));t(/*! babel-core/register */"./node_modules/babel-core/register.js"),t(/*! components/polyfills */"./src/components/polyfills.ts");var l=u(t(/*! ./components/core */"./src/components/core.js"));function u(e){return e&&e.__esModule?e:{default:e}}window&&window._babelPolyfill||t(/*! babel-polyfill */"./node_modules/babel-polyfill/lib/index.js");var d=function(){function e(o){var t=this;(0,n.default)(this,e);var s=function(){};"object"===(void 0===o?"undefined":(0,r.default)(o))&&"function"==typeof o.onReady&&(s=o.onReady);var i=new l.default(o);this.isReady=i.isReady.then(function(){t.exportAPI(i),s()})}return(0,i.default)(e,null,[{key:"version",get:function(){return"2.1.2"}}]),(0,i.default)(e,[{key:"exportAPI",value:function(e){var o=this;["configuration"].forEach(function(t){o[t]=e[t]}),this.destroy=function(){for(var t in e.moduleInstances.Listeners.removeAll(),e.moduleInstances.UI.destroy(),e.moduleInstances.ModificationsObserver.destroy(),e=null,o)delete o[t];(0,s.default)(o,null)},(0,s.default)(this,e.moduleInstances.API.methods),delete this.exportAPI}}]),e}();d.displayName="CodexEditor",o.default=d,e.exports=o.default},"./src/components/__module.ts": +/*! no static exports found */function(e,o,t){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var s=u(t(/*! babel-runtime/core-js/object/set-prototype-of */"./node_modules/babel-runtime/core-js/object/set-prototype-of.js")),r=u(t(/*! babel-runtime/helpers/typeof */"./node_modules/babel-runtime/helpers/typeof.js")),n=u(t(/*! babel-runtime/helpers/classCallCheck */"./node_modules/babel-runtime/helpers/classCallCheck.js")),i=u(t(/*! babel-runtime/helpers/createClass */"./node_modules/babel-runtime/helpers/createClass.js"));t(/*! babel-core/register */"./node_modules/babel-core/register.js"),t(/*! components/polyfills */"./src/components/polyfills.ts");var l=u(t(/*! ./components/core */"./src/components/core.js"));function u(e){return e&&e.__esModule?e:{default:e}}window&&window._babelPolyfill||t(/*! babel-polyfill */"./node_modules/babel-polyfill/lib/index.js");var d=function(){function e(o){var t=this;(0,n.default)(this,e);var s=function(){};"object"===(void 0===o?"undefined":(0,r.default)(o))&&"function"==typeof o.onReady&&(s=o.onReady);var i=new l.default(o);this.isReady=i.isReady.then(function(){t.exportAPI(i),s()})}return(0,i.default)(e,null,[{key:"version",get:function(){return"2.1.3"}}]),(0,i.default)(e,[{key:"exportAPI",value:function(e){var o=this;["configuration"].forEach(function(t){o[t]=e[t]}),this.destroy=function(){for(var t in e.moduleInstances.Listeners.removeAll(),e.moduleInstances.UI.destroy(),e.moduleInstances.ModificationsObserver.destroy(),e=null,o)delete o[t];(0,s.default)(o,null)},(0,s.default)(this,e.moduleInstances.API.methods),delete this.exportAPI}}]),e}();d.displayName="CodexEditor",o.default=d,e.exports=o.default},"./src/components/__module.ts": /*!************************************!*\ !*** ./src/components/__module.ts ***! \************************************/ @@ -2066,7 +2066,7 @@ /*!*****************************************!*\ !*** ./src/components/modules/paste.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){"use strict";(function(s,r,n){Object.defineProperty(o,"__esModule",{value:!0});var i=k(t(/*! babel-runtime/helpers/toConsumableArray */"./node_modules/babel-runtime/helpers/toConsumableArray.js")),l=k(t(/*! babel-runtime/core-js/array/from */"./node_modules/babel-runtime/core-js/array/from.js")),u=k(t(/*! babel-runtime/core-js/promise */"./node_modules/babel-runtime/core-js/promise.js")),d=k(t(/*! babel-runtime/core-js/object/entries */"./node_modules/babel-runtime/core-js/object/entries.js")),c=k(t(/*! babel-runtime/core-js/object/assign */"./node_modules/babel-runtime/core-js/object/assign.js")),a=k(t(/*! babel-runtime/core-js/object/keys */"./node_modules/babel-runtime/core-js/object/keys.js")),m=k(t(/*! babel-runtime/regenerator */"./node_modules/babel-runtime/regenerator/index.js")),f=k(t(/*! babel-runtime/helpers/asyncToGenerator */"./node_modules/babel-runtime/helpers/asyncToGenerator.js")),j=k(t(/*! babel-runtime/helpers/slicedToArray */"./node_modules/babel-runtime/helpers/slicedToArray.js")),_=k(t(/*! babel-runtime/core-js/object/get-prototype-of */"./node_modules/babel-runtime/core-js/object/get-prototype-of.js")),p=k(t(/*! babel-runtime/helpers/classCallCheck */"./node_modules/babel-runtime/helpers/classCallCheck.js")),h=k(t(/*! babel-runtime/helpers/createClass */"./node_modules/babel-runtime/helpers/createClass.js")),b=k(t(/*! babel-runtime/helpers/possibleConstructorReturn */"./node_modules/babel-runtime/helpers/possibleConstructorReturn.js")),y=k(t(/*! babel-runtime/helpers/inherits */"./node_modules/babel-runtime/helpers/inherits.js")),v=k(t(/*! ./caret */"./src/components/modules/caret.js")),g=k(t(/*! ../selection */"./src/components/selection.ts"));function k(e){return e&&e.__esModule?e:{default:e}}var x=function(e){function o(e){var t=this,s=e.config;(0,p.default)(this,o);var n=(0,b.default)(this,(o.__proto__||(0,_.default)(o)).call(this,{config:s}));return n.toolsTags={},n.toolsPatterns=[],n.toolsFiles={},n.processTool=function(e){var o=(0,j.default)(e,2),t=o[0],s=o[1];try{var i=s.onPaste||{};n.getTagsConfig(t,i),n.getFilesConfig(t,i),n.getPatternsConfig(t,i)}catch(e){r.log("Paste handling for «"+t+"» Tool hasn't been set up because of the error","warn",e)}},n.handlePasteEvent=function(){var e=(0,f.default)(m.default.mark(function e(o){var s;return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(s=n.Editor,s.Sanitizer,s.BlockManager,s.Tools,s.Caret,!n.isNativeBehaviour(o.target)||o.clipboardData.types.includes("Files")){e.next=3;break}return e.abrupt("return");case 3:o.preventDefault(),n.processDataTransfer(o.clipboardData);case 5:case"end":return e.stop()}},e,t)}));return function(o){return e.apply(this,arguments)}}(),n}return(0,y.default)(o,e),(0,h.default)(o,[{key:"prepare",value:function(){var e=(0,f.default)(m.default.mark(function e(){return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.setCallback(),this.processTools();case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"processDataTransfer",value:function(){var e=(0,f.default)(m.default.mark(function e(o){var t,s,r,i,l,u,d=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.Editor.Sanitizer,!o.types.includes("Files")){e.next=5;break}return e.next=4,this.processFiles(o.items);case 4:return e.abrupt("return");case 5:if(s=o.getData("text/plain"),r=o.getData("text/html"),d&&s.trim()&&r.trim()&&(r="

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

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

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

"),i=(0,a.default)(this.toolsTags).reduce(function(e,o){return e[o.toLowerCase()]=!0,e},{}),l=(0,c.default)({},i,t.defaultConfig.tags),(u=t.clean(r,l)).trim()&&u.trim()!==s&&n.isHTMLString(u)){e.next=16;break}return e.next=14,this.processText(s);case 14:e.next=18;break;case 16:return e.next=18,this.processText(u,!0);case 18:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"setCallback",value:function(){var e=this.Editor,o=e.Listeners,t=e.UI;o.on(t.nodes.redactor,"paste",this.handlePasteEvent)}},{key:"processTools",value:function(){var e=this.Editor.Tools.blockTools;(0,d.default)(e).forEach(this.processTool)}},{key:"getTagsConfig",value:function(e,o){var t=this;if(this.config.initialBlock!==e||o.handler||r.log("«"+e+"» Tool must provide a paste handler.","warn"),o.handler)if("function"==typeof o.handler){var s=o.tags||[];s.forEach(function(s){t.toolsTags.hasOwnProperty(s)?r.log("Paste handler for «"+e+"» Tool on «"+s+"» tag is skipped because it is already used by «"+t.toolsTags[s].tool+"» Tool.","warn"):t.toolsTags[s.toUpperCase()]={handler:o.handler,tool:e}}),this.tagsByTool[e]=s.map(function(e){return e.toUpperCase()})}else r.log("Paste handler for «"+e+"» Tool should be a function.","warn")}},{key:"getFilesConfig",value:function(e,o){var t=o.fileHandler,s=o.files,n=void 0===s?{}:s,i=n.extensions,l=n.mimeTypes;t&&(i||l)&&("function"==typeof t?(i&&!Array.isArray(i)&&(r.log("«extensions» property of the onDrop config for «"+e+"» Tool should be an array"),i=[]),l&&!Array.isArray(l)&&(r.log("«mimeTypes» property of the onDrop config for «"+e+"» Tool should be an array"),l=[]),l&&(l=l.filter(function(o){return!!r.isValidMimeType(o)||(r.log("MIME type value «"+o+"» for the «"+e+"» Tool is not a valid MIME type","warn"),!1)})),this.toolsFiles[e]={extensions:i||[],mimeTypes:l||[],handler:t}):r.log("Drop handler for «"+e+"» Tool should be a function."))}},{key:"getPatternsConfig",value:function(e,o){var t=this;o.patternHandler&&!r.isEmpty(o.patterns)&&("function"==typeof o.patternHandler?(0,d.default)(o.patterns).forEach(function(s){var n=(0,j.default)(s,2),i=n[0],l=n[1];l instanceof RegExp||r.log("Pattern "+l+" for «"+e+"» Tool is skipped because it should be a Regexp instance.","warn"),t.toolsPatterns.push({key:i,pattern:l,handler:o.patternHandler,tool:e})}):r.log("Pattern parser for «"+e+"» Tool should be a function.","warn"))}},{key:"isNativeBehaviour",value:function(e){var o=this.Editor.BlockManager;return!!n.isNativeInput(e)||!o.getBlock(e)}},{key:"processFiles",value:function(){var e=(0,f.default)(m.default.mark(function e(o){var t,s=this;return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.Editor.BlockManager,void 0,e.next=4,u.default.all((0,l.default)(o).map(function(e){return s.processFile(e)}));case 4:e.sent.filter(function(e){return!!e}).forEach(function(e,o){0===o&&t.currentBlock&&t.currentBlock.isEmpty?t.replace(e.type,e.data):t.insert(e.type,e.data)});case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processFile",value:function(){var e=(0,f.default)(m.default.mark(function e(o){var t,s,n,i,l,u;return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!==o.kind){e.next=2;break}return e.abrupt("return");case 2:if(t=o.getAsFile(),s=r.getFileExtension(t),n=(0,d.default)(this.toolsFiles).find(function(e){var o=(0,j.default)(e,2),r=(o[0],o[1]),n=r.mimeTypes,i=r.extensions,l=t.type.split("/"),u=(0,j.default)(l,2),d=u[0],c=u[1],a=i.find(function(e){return e.toLowerCase()===s.toLowerCase()}),m=n.find(function(e){var o=e.split("/"),t=(0,j.default)(o,2),s=t[0],r=t[1];return s===d&&(r===c||"*"===r)});return!!a||!!m})){e.next=7;break}return e.abrupt("return");case 7:return i=(0,j.default)(n,2),l=i[0],u=i[1].handler,e.next=10,u(t);case 10:return e.t0=e.sent,e.t1=l,e.abrupt("return",{data:e.t0,type:e.t1});case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processText",value:function(){var e=(0,f.default)(m.default.mark(function e(o){var t,s,r,n,i=this,l=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=this.Editor,s=t.Caret,r=t.BlockManager,(n=l?this.processHTML(o):this.processPlain(o)).length){e.next=4;break}return e.abrupt("return");case 4:if(1!==n.length||n[0].isBlock){e.next=7;break}return this.processSingleBlock(n.pop()),e.abrupt("return");case 7:return g.default.isAtEditor&&!s.isAtEnd&&g.default.isCollapsed&&this.splitBlock(),e.next=10,u.default.all(n.map(function(){var e=(0,f.default)(m.default.mark(function e(o,t){return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i.insertBlock(o,0===t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,i)}));return function(o,t){return e.apply(this,arguments)}}()));case 10:s.setToBlock(r.currentBlock,v.default.positions.END);case 11:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processHTML",value:function(e){var o=this,t=this.Editor,s=t.Tools,r=t.Sanitizer,i=this.config.initialBlock,l=n.make("DIV");return l.innerHTML=e,this.getNodes(l).map(function(e){var t=void 0,l=i,u=!1;switch(e.nodeType){case Node.DOCUMENT_FRAGMENT_NODE:(t=n.make("div")).appendChild(e);break;case Node.ELEMENT_NODE:t=e,u=!0,o.toolsTags[t.tagName]&&(l=o.toolsTags[t.tagName].tool)}var d=s.blockTools[l].onPaste,a=d.handler,m=d.tags.reduce(function(e,o){return e[o.toLowerCase()]={},e},{}),f=(0,c.default)({},m,r.defaultConfig.tags);return t.innerHTML=r.clean(t.innerHTML,f),{content:t,isBlock:u,handler:a,tool:l}}).filter(function(e){return!n.isNodeEmpty(e.content)||n.isSingleTag(e.content)})}},{key:"processPlain",value:function(e){var o=this.config.initialBlock,t=this.Editor.Tools;if(!e)return[];var s=o,r=t.blockTools[s].onPaste.handler;return e.split(/\r?\n/).filter(function(e){return e.trim()}).map(function(e){var o=n.make("div");return o.innerHTML=e,{content:o,tool:s,isBlock:!1,handler:r}})}},{key:"processSingleBlock",value:function(){var e=(0,f.default)(m.default.mark(function e(t){var s,r,n,i,l,u,d;return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(s=this.config.initialBlock,r=this.Editor,n=r.BlockManager,i=r.Caret,l=t.content,!(t.tool===s&&l.textContent.length1&&void 0!==arguments[1]&&arguments[1];return m.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.handler(o.content);case 2:if(t=e.sent,s=this.Editor,r=s.BlockManager,n=s.Caret,i=r.currentBlock,!(u&&i&&i.isEmpty)){e.next=10;break}return r.replace(o.tool,t),e.abrupt("return");case 10:l=r.insert(o.tool,t),n.setToBlock(l);case 12:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"splitBlock",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret;o.currentBlock&&(o.currentBlock.isEmpty||t.isAtEnd||(o.split(),o.currentBlockIndex--))}},{key:"getNodes",value:function(e){var o=this,t=(0,l.default)(e.childNodes),s=(0,a.default)(this.toolsTags);return t.reduce(function e(t,r){if(n.isEmpty(r)&&!n.isSingleTag(r))return t;var u=t[t.length-1],d=new DocumentFragment;switch(u&&n.isFragment(u)&&(d=t.pop()),r.nodeType){case Node.ELEMENT_NODE:var c=r,a=(o.toolsTags[c.tagName]||{}).tool,m=void 0===a?"":a,f=o.tagsByTool[m]||[],j=s.includes(c.tagName),_=n.blockElements.includes(c.tagName.toLowerCase()),p=(0,l.default)(c.children).some(function(e){var o=e.tagName;return s.includes(o)&&!f.includes(o)}),h=(0,l.default)(c.children).some(function(e){var o=e.tagName;return n.blockElements.includes(o.toLowerCase())});if(!_&&!j)return d.appendChild(c),[].concat((0,i.default)(t),[d]);if(j&&!p||_&&!h&&!p)return[].concat((0,i.default)(t),[d,c]);break;case Node.TEXT_NODE:return d.appendChild(r),[].concat((0,i.default)(t),[d]);default:return[].concat((0,i.default)(t),[d])}return[].concat((0,i.default)(t),(0,i.default)((0,l.default)(r.childNodes).reduce(e,[])))},[])}}]),o}(s);x.displayName="Paste",o.default=x,x.PATTERN_PROCESSING_MAX_LENGTH=450,e.exports=o.default}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! utils */"./src/components/utils.ts"),t(/*! dom */"./src/components/dom.ts"))},"./src/components/modules/renderer.js": /*!********************************************!*\ !*** ./src/components/modules/renderer.js ***! \********************************************/ @@ -2078,7 +2078,7 @@ /*!*****************************************!*\ !*** ./src/components/modules/saver.js ***! \*****************************************/ -/*! no static exports found */function(e,o,t){"use strict";(function(s){Object.defineProperty(o,"__esModule",{value:!0});var r=c(t(/*! babel-runtime/core-js/promise */"./node_modules/babel-runtime/core-js/promise.js")),n=c(t(/*! babel-runtime/core-js/object/get-prototype-of */"./node_modules/babel-runtime/core-js/object/get-prototype-of.js")),i=c(t(/*! babel-runtime/helpers/classCallCheck */"./node_modules/babel-runtime/helpers/classCallCheck.js")),l=c(t(/*! babel-runtime/helpers/createClass */"./node_modules/babel-runtime/helpers/createClass.js")),u=c(t(/*! babel-runtime/helpers/possibleConstructorReturn */"./node_modules/babel-runtime/helpers/possibleConstructorReturn.js")),d=c(t(/*! babel-runtime/helpers/inherits */"./node_modules/babel-runtime/helpers/inherits.js"));function c(e){return e&&e.__esModule?e:{default:e}}var a=function(e){function o(e){var t=e.config;(0,i.default)(this,o);var s=(0,u.default)(this,(o.__proto__||(0,n.default)(o)).call(this,{config:t}));return s.output=null,s.blocksData=[],s}return(0,d.default)(o,e),(0,l.default)(o,[{key:"save",value:function(){var e=this,o=[];return this.Editor.BlockManager.blocks.forEach(function(e){o.push(e.data)}),r.default.all(o).then(function(o){return e.makeOutput(o)}).then(function(e){return e})}},{key:"makeOutput",value:function(e){var o=[],t=0;return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«"+e.tool+"» saving info",e),t+=e.time,o.push({type:e.tool,data:e.data})}),console.log("Total",t),console.groupEnd(),{time:+new Date,blocks:o,version:"2.1.2"}}}]),o}(s);a.displayName="Saver",o.default=a,e.exports=o.default}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/shortcuts.ts": +/*! no static exports found */function(e,o,t){"use strict";(function(s){Object.defineProperty(o,"__esModule",{value:!0});var r=c(t(/*! babel-runtime/core-js/promise */"./node_modules/babel-runtime/core-js/promise.js")),n=c(t(/*! babel-runtime/core-js/object/get-prototype-of */"./node_modules/babel-runtime/core-js/object/get-prototype-of.js")),i=c(t(/*! babel-runtime/helpers/classCallCheck */"./node_modules/babel-runtime/helpers/classCallCheck.js")),l=c(t(/*! babel-runtime/helpers/createClass */"./node_modules/babel-runtime/helpers/createClass.js")),u=c(t(/*! babel-runtime/helpers/possibleConstructorReturn */"./node_modules/babel-runtime/helpers/possibleConstructorReturn.js")),d=c(t(/*! babel-runtime/helpers/inherits */"./node_modules/babel-runtime/helpers/inherits.js"));function c(e){return e&&e.__esModule?e:{default:e}}var a=function(e){function o(e){var t=e.config;(0,i.default)(this,o);var s=(0,u.default)(this,(o.__proto__||(0,n.default)(o)).call(this,{config:t}));return s.output=null,s.blocksData=[],s}return(0,d.default)(o,e),(0,l.default)(o,[{key:"save",value:function(){var e=this,o=[];return this.Editor.BlockManager.blocks.forEach(function(e){o.push(e.data)}),r.default.all(o).then(function(o){return e.makeOutput(o)}).then(function(e){return e})}},{key:"makeOutput",value:function(e){var o=[],t=0;return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«"+e.tool+"» saving info",e),t+=e.time,o.push({type:e.tool,data:e.data})}),console.log("Total",t),console.groupEnd(),{time:+new Date,blocks:o,version:"2.1.3"}}}]),o}(s);a.displayName="Saver",o.default=a,e.exports=o.default}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/shortcuts.ts": /*!*********************************************!*\ !*** ./src/components/modules/shortcuts.ts ***! \*********************************************/ diff --git a/build/codex-editor.js.map b/build/codex-editor.js.map index 4f06e621..4eef445d 100644 --- a/build/codex-editor.js.map +++ b/build/codex-editor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@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-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/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/babel-runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/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.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 ^\\.\\/.*$","webpack://CodexEditor/./src/components/modules/_notifications.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/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.js","webpack://CodexEditor/./src/components/modules/listeners.js","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","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","_promise2","obj","_interopRequireDefault","fn","gen","apply","arguments","resolve","reject","step","arg","info","error","done","then","err","instance","Constructor","_defineProperty2","defineProperties","target","props","descriptor","protoProps","staticProps","_setPrototypeOf2","_create2","_typeof3","subClass","superClass","constructor","__proto__","ReferenceError","_isIterable3","_getIterator3","arr","isArray","_arr","_n","_d","_e","undefined","_s","_i","next","push","sliceIterator","_from2","arr2","_iterator2","_symbol2","_typeof","g","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","iter","result","toString","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","previousPromise","callInvokeWithMethodAndArg","Promise","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","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","process","isNode","head","last","notify","flush","parent","domain","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","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","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","eval","CodexEditor","configuration","_this","_classCallCheck3","onReady","editor","Core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","$","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","save","pluginsContent","extractedBlock","sanitize","sanitizeBlock","measuringStart","performance","measuringEnd","finishedExtraction","_utils2","isValid","_this3","_blockTuneMoveUp2","_blockTuneDelete2","_blockTuneMoveDown2","tune","tunesElement","createDocumentFragment","_dom2","append","render","blockData","rules","_this4","cleanData","isEmpty","sanitizer","contentNode","selector","inputs","array","querySelectorAll","input","contains","querySelector","contentless","emptyText","emptyMedia","hasMedia","selected","wrapperStretched","dropTarget","onFail","holderId","tools","constructModules","configureModules","getModulesDiff","diff","moduleName","modulesToPrepare","_asyncToGenerator3","_regenerator2","_callee","_context","prepare","t0","Renderer","initialBlock","initialBlockData","placeholder","hideToolbar","onChange","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","./_notifications","./_notifications.js","./api","./api-blocks","./api-blocks.ts","./api-caret","./api-caret.ts","./api-events","./api-events.ts","./api-listener","./api-listener.ts","./api-sanitizer","./api-sanitizer.ts","./api-saver","./api-saver.ts","./api-selection","./api-selection.ts","./api-styles","./api-styles.ts","./api-toolbar","./api-toolbar.ts","./api.ts","./block-events","./block-events.ts","./blockManager","./blockManager.js","./caret","./caret.js","./dragNDrop","./dragNDrop.ts","./events","./events.js","./listeners","./listeners.js","./modificationsObserver","./modificationsObserver.ts","./paste","./paste.ts","./renderer","./renderer.js","./sanitizer","./sanitizer.js","./saver","./saver.js","./shortcuts","./shortcuts.ts","./toolbar","./toolbar-blockSettings","./toolbar-blockSettings.js","./toolbar-inline","./toolbar-inline.ts","./toolbar-toolbox","./toolbar-toolbox.js","./toolbar.js","./tools","./tools.js","./ui","./ui.js","webpackContext","req","webpackContextResolve","notifications","codex","addToQueue","createHolder","draw","body","errorThrown","errorMsg","notification","message","constructorSettings","cancel","confirm","inputField","confirmHandler","cancelHandler","okBtn","cancelBtn","okMsg","cancelMsg","listeners","dataset","send","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","plusButton","show","getBlockByChildNode","Tools","toolsAvailable","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","isInitial","BM","isFirstBlock","canMergeBlocks","isAtStart","targetBlock","blockToMerge","mergeable","createShadow","mergeBlocks","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","Blocks","redactor","Proxy","available","bindEvents","keydown","mouseUp","keyup","dragOver","dragLeave","newIndex","composeBlock","blockToMergeIndex","blockToMergeInfo","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","workingArea","second","secondBlock","deleteCount","insertAdjacentElement","nextBlock","children","position","positions","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","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","DragNDrop","isStartedAtEditor","processDrop","dropEvent","_this$Editor","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","findOne","existingListeners","findAll","listenersOnElement","listenersWithType","listenersWithHandler","foundListeners","foundByElements","findByElement","mutationDebouncer","debounce","DebounceTimer","setObserver","_Editor","toolsTags","toolsPatterns","toolsFiles","processTool","_ref2","_ref3","_slicedToArray3","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref4","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","plainData","getData","htmlData","_keys2","customConfig","_assign2","defaultConfig","isHTMLString","processText","blockTools","_entries2","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref7","_ref8","pattern","getBlock","_this5","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref11","_ref12","_ref12$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref14","_callee6","_context6","_this6","insertBlock","_x8","_x9","_caret2","_this7","_Editor3","initialTool","getNodes","_Tools$blockTools$too","toolTags","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","insertedBlock","substitute","execResult","canReplaceCurrentBlock","_Editor6","reducer","destNode","DocumentFragment","isFragment","blockElements","_ref18","chainData","_loop","function","sequence","_sanitizerInstance","sanitizerConfig","sanitizerInstance","newConfig","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","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","SHORTCUT","enableShortcuts","surround","toolsInstances","allTools","externalTools","_map2","bold","constructInline","_inlineToolBold2","italic","_inlineToolItalic2","_inlineToolLink2","inline","toolbox","activeButtonIndex","displayedToolsCount","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","contentOffset","transform","offsetTop","toolbarOpened","settingsTogglerClicked","plusButtonHidden","Paragraph","toolsSettings","toolsUnavailable","_inlineTools","paragraph","sequenceData","getListOfPrepareFunctions","success","fallback","toolPreparationList","CONFIG","plugin","IS_INLINE","notImplementedMethods","_ref5","_ref6","_ref9","IS_CONTENTLESS","IS_PASTE_DISALLOWED","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","highlightCurrentNode","clickedOnInlineToolbarButton","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","marl","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","successCallback","fallbackCallback","_callee2","previousValue","currentValue","_context2","waitNextBlock","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","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\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\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';\r\n\r\n/**\r\n * Apply polyfills\r\n */\r\nimport 'babel-core/register';\r\nif (!window || !window._babelPolyfill) require('babel-polyfill');\r\nimport 'components/polyfills';\r\nimport Core from './components/core';\r\n\r\n/**\r\n * Codex Editor\r\n *\r\n * Short Description (눈_눈;)\r\n * @version 2.0\r\n *\r\n * @author CodeX-Team \r\n */\r\nexport default class CodexEditor {\r\n /** Editor version */\r\n static get version() {\r\n return VERSION;\r\n }\r\n\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig|String} [configuration] - user configuration\r\n */\r\n constructor(configuration) {\r\n /**\r\n * Set default onReady function\r\n */\r\n let onReady = () => {};\r\n\r\n /**\r\n * If `onReady` was passed in `configuration` then redefine onReady function\r\n */\r\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\r\n onReady = configuration.onReady;\r\n }\r\n\r\n /**\r\n * Create a CodeX Editor instance\r\n */\r\n const editor = new Core(configuration);\r\n\r\n /**\r\n * We need to export isReady promise in the constructor\r\n * as it can be used before other API methods are exported\r\n * @type {Promise}\r\n */\r\n this.isReady = editor.isReady.then(() => {\r\n this.exportAPI(editor);\r\n onReady();\r\n });\r\n }\r\n\r\n /**\r\n * Export external API methods\r\n *\r\n * @param editor\r\n */\r\n exportAPI(editor) {\r\n const fieldsToExport = [ 'configuration' ];\r\n const destroy = () => {\r\n editor.moduleInstances.Listeners.removeAll();\r\n editor.moduleInstances.UI.destroy();\r\n editor.moduleInstances.ModificationsObserver.destroy();\r\n editor = null;\r\n\r\n for (const field in this) {\r\n delete this[field];\r\n }\r\n\r\n Object.setPrototypeOf(this, null);\r\n };\r\n\r\n fieldsToExport.forEach(field => {\r\n this[field] = editor[field];\r\n });\r\n\r\n this.destroy = destroy;\r\n\r\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\r\n\r\n delete this['exportAPI'];\r\n }\r\n}\r\n","import IEditor from './interfaces/editor';\r\nimport IEditorConfig from './interfaces/editor-config';\r\nimport IModuleConfig from './interfaces/module-config';\r\n\r\n/**\r\n * @abstract\r\n * @class Module\r\n * @classdesc All modules inherits from this class.\r\n *\r\n * @typedef {Module} Module\r\n * @property {Object} config - Editor user settings\r\n * @property {IEditorConfig} Editor - List of Editor modules\r\n */\r\nexport default class Module {\r\n\r\n /**\r\n * Editor modules list\r\n * @type {IEditor}\r\n */\r\n protected Editor: IEditor;\r\n\r\n /**\r\n * Editor configuration object\r\n * @type {IEditorConfig}\r\n */\r\n protected config: IEditorConfig;\r\n\r\n /**\r\n * @constructor\r\n * @param {IModuleConfig}\r\n */\r\n constructor({config}: IModuleConfig) {\r\n if (new.target === Module) {\r\n throw new TypeError('Constructors for abstract class Module are not allowed.');\r\n }\r\n\r\n this.config = config;\r\n }\r\n\r\n /**\r\n * Editor modules setter\r\n * @param {IEditor} Editor\r\n */\r\n set state(Editor) {\r\n this.Editor = Editor;\r\n }\r\n}\r\n","/**\r\n * @class DeleteTune\r\n * @classdesc Editor's default tune that moves up selected block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class DeleteTune implements IBlockTune {\r\n\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {docs/api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n wrapper: 'ass',\r\n button: 'ce-settings__button',\r\n buttonDelete: 'ce-settings__button--delete',\r\n buttonConfirm: 'ce-settings__button--confirm',\r\n };\r\n\r\n /**\r\n * Delete confirmation\r\n */\r\n private needConfirmation: boolean;\r\n\r\n /**\r\n * set false confirmation state\r\n */\r\n private resetConfirmation: () => void;\r\n\r\n /**\r\n * Tune nodes\r\n */\r\n private nodes = {\r\n button: null,\r\n };\r\n\r\n /**\r\n * DeleteTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n constructor({api}) {\r\n this.api = api;\r\n\r\n this.resetConfirmation = () => {\r\n this.setConfirmation(false);\r\n };\r\n }\r\n\r\n /**\r\n * Create \"Delete\" button and add click event listener\r\n * @returns [Element}\r\n */\r\n public render() {\r\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\r\n this.nodes.button.appendChild($.svg('cross', 12, 12));\r\n this.api.listener.on(this.nodes.button, 'click', (event) => this.handleClick(event), false);\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Delete block conditions passed\r\n * @param {MouseEvent} event\r\n */\r\n public handleClick(event: MouseEvent): void {\r\n\r\n /**\r\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\r\n * otherwise delete block\r\n */\r\n if (!this.needConfirmation) {\r\n this.setConfirmation(true);\r\n\r\n /**\r\n * Subscribe on event.\r\n * When toolbar block settings is closed but block deletion is not confirmed,\r\n * then reset confirmation state\r\n */\r\n this.api.events.on('block-settings-closed', this.resetConfirmation);\r\n\r\n } else {\r\n\r\n /**\r\n * Unsubscribe from block-settings closing event\r\n */\r\n this.api.events.off('block-settings-closed', this.resetConfirmation);\r\n\r\n this.api.blocks.delete();\r\n\r\n /**\r\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\r\n */\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n /**\r\n * change tune state\r\n */\r\n private setConfirmation(state): void {\r\n this.needConfirmation = state;\r\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\r\n }\r\n\r\n}\r\n","/**\r\n * @class MoveDownTune\r\n * @classdesc Editor's default tune - Moves down highlighted block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class MoveDownTune implements IBlockTune {\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n button: 'ce-settings__button',\r\n wrapper: 'ce-tune-move-down',\r\n animation: 'wobble',\r\n };\r\n\r\n /**\r\n * MoveDownTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n public constructor({api}) {\r\n this.api = api;\r\n }\r\n\r\n /**\r\n * Return 'move down' button\r\n */\r\n public render() {\r\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\r\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\r\n this.api.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\r\n return moveDownButton;\r\n }\r\n\r\n /**\r\n * Handle clicks on 'move down' button\r\n * @param {MouseEvent} event\r\n * @param {HTMLElement} button\r\n */\r\n public handleClick(event: MouseEvent, button: HTMLElement) {\r\n\r\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\r\n\r\n // If Block is last do nothing\r\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\r\n button.classList.add(this.CSS.animation);\r\n\r\n window.setTimeout( () => {\r\n button.classList.remove(this.CSS.animation);\r\n }, 500);\r\n return;\r\n }\r\n\r\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1).holder,\r\n nextBlockCoords = nextBlockElement.getBoundingClientRect();\r\n\r\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\r\n\r\n /**\r\n * Next block ends on screen.\r\n * Increment scroll by next block's height to save element onscreen-position\r\n */\r\n if (nextBlockCoords.top < window.innerHeight) {\r\n\r\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\r\n\r\n }\r\n\r\n window.scrollTo(0, scrollOffset);\r\n\r\n /** Change blocks positions */\r\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\r\n\r\n }\r\n}\r\n","/**\r\n * @class MoveUpTune\r\n * @classdesc Editor's default tune that moves up selected block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class MoveUpTune implements IBlockTune {\r\n\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n button: 'ce-settings__button',\r\n wrapper: 'ce-tune-move-up',\r\n animation: 'wobble',\r\n };\r\n\r\n /**\r\n * MoveUpTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n public constructor({api}) {\r\n this.api = api;\r\n }\r\n\r\n /**\r\n * Create \"MoveUp\" button and add click event listener\r\n * @returns [HTMLElement}\r\n */\r\n public render(): HTMLElement {\r\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\r\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\r\n this.api.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\r\n return moveUpButton;\r\n }\r\n\r\n /**\r\n * Move current block up\r\n * @param {MouseEvent} event\r\n * @param {HTMLElement} button\r\n */\r\n public handleClick(event: MouseEvent, button: HTMLElement): void {\r\n\r\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\r\n\r\n if (currentBlockIndex === 0) {\r\n button.classList.add(this.CSS.animation);\r\n\r\n window.setTimeout( () => {\r\n button.classList.remove(this.CSS.animation);\r\n }, 500);\r\n return;\r\n }\r\n\r\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex).holder,\r\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\r\n\r\n /**\r\n * Here is two cases:\r\n * - when previous block has negative offset and part of it is visible on window, then we scroll\r\n * by window's height and add offset which is mathematically difference between two blocks\r\n *\r\n * - when previous block is visible and has offset from the window,\r\n * than we scroll window to the difference between this offsets.\r\n */\r\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\r\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\r\n\r\n let scrollUpOffset;\r\n\r\n if (previousBlockCoords.top > 0) {\r\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\r\n } else {\r\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\r\n }\r\n\r\n window.scrollBy(0, -1 * scrollUpOffset);\r\n\r\n /** Change blocks positions */\r\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\r\n }\r\n}\r\n","import IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\r\nimport $ from './dom';\r\nimport _ from './utils';\r\n\r\ntype Tool = any;\r\n\r\n/**\r\n * @class Block\r\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\r\n *\r\n * @property {Tool} tool — current block tool (Paragraph, for example)\r\n * @property {Object} CSS — block`s css classes\r\n *\r\n */\r\n\r\n/** Import default tunes */\r\nimport MoveUpTune from './block-tunes/block-tune-move-up';\r\nimport DeleteTune from './block-tunes/block-tune-delete';\r\nimport MoveDownTune from './block-tunes/block-tune-move-down';\r\nimport {IAPI} from './interfaces/api';\r\n\r\n/**\r\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\r\n *\r\n * @property tool - Tool instance\r\n * @property html - Returns HTML content of plugin\r\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\r\n * @property pluginsContent - HTML content that returns by Tool's render function\r\n */\r\nexport default class Block {\r\n\r\n /**\r\n * CSS classes for the Block\r\n * @return {{wrapper: string, content: string}}\r\n */\r\n static get CSS(): {wrapper: string, wrapperStretched: string, content: string, selected: string, dropTarget: string} {\r\n return {\r\n wrapper: 'ce-block',\r\n wrapperStretched: 'ce-block--stretched',\r\n content: 'ce-block__content',\r\n selected: 'ce-block--selected',\r\n dropTarget: 'ce-block--drop-target',\r\n };\r\n }\r\n\r\n /**\r\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\r\n *\r\n * @returns {HTMLElement[]}\r\n */\r\n get inputs(): HTMLElement[] {\r\n const content = this.holder;\r\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\r\n\r\n const selector = '[contenteditable], textarea, input, '\r\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\r\n\r\n const inputs = _.array(content.querySelectorAll(selector));\r\n\r\n /**\r\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\r\n */\r\n if (this.inputIndex > inputs.length - 1) {\r\n this.inputIndex = inputs.length - 1;\r\n }\r\n\r\n return inputs;\r\n }\r\n\r\n /**\r\n * Return current Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get currentInput(): HTMLElement {\r\n return this.inputs[this.inputIndex];\r\n }\r\n\r\n /**\r\n * Set input index to the passed element\r\n *\r\n * @param {HTMLElement} element\r\n */\r\n set currentInput(element: HTMLElement) {\r\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\r\n\r\n if (index !== -1) {\r\n this.inputIndex = index;\r\n }\r\n }\r\n\r\n /**\r\n * Return first Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get firstInput(): HTMLElement {\r\n return this.inputs[0];\r\n }\r\n\r\n /**\r\n * Return first Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get lastInput(): HTMLElement {\r\n const inputs = this.inputs;\r\n\r\n return inputs[inputs.length - 1];\r\n }\r\n\r\n /**\r\n * Return next Tool`s input or undefined if it doesn't exist\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get nextInput(): HTMLElement {\r\n return this.inputs[this.inputIndex + 1];\r\n }\r\n\r\n /**\r\n * Return previous Tool`s input or undefined if it doesn't exist\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get previousInput(): HTMLElement {\r\n return this.inputs[this.inputIndex - 1];\r\n }\r\n\r\n /**\r\n * Returns Plugins content\r\n * @return {Node}\r\n */\r\n get pluginsContent(): Node {\r\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\r\n\r\n if (pluginsContent && pluginsContent.childNodes.length) {\r\n return pluginsContent.childNodes[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Get Block's JSON data\r\n * @return {Object}\r\n */\r\n get data(): object {\r\n return this.save();\r\n }\r\n\r\n /**\r\n * is block mergeable\r\n * We plugin have merge function then we call it mergable\r\n * @return {boolean}\r\n */\r\n get mergeable(): boolean {\r\n return typeof this.tool.merge === 'function';\r\n }\r\n\r\n /**\r\n * Check block for emptiness\r\n * @return {Boolean}\r\n */\r\n get isEmpty(): boolean {\r\n /**\r\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\r\n * That Tools are not empty\r\n */\r\n if (this.class.contentless) {\r\n return false;\r\n }\r\n\r\n const emptyText = $.isEmpty(this.pluginsContent),\r\n emptyMedia = !this.hasMedia;\r\n\r\n return emptyText && emptyMedia;\r\n }\r\n\r\n /**\r\n * Check if block has a media content such as images, iframes and other\r\n * @return {Boolean}\r\n */\r\n get hasMedia(): boolean {\r\n /**\r\n * This tags represents media-content\r\n * @type {string[]}\r\n */\r\n const mediaTags = [\r\n 'img',\r\n 'iframe',\r\n 'video',\r\n 'audio',\r\n 'source',\r\n 'input',\r\n 'textarea',\r\n 'twitterwidget',\r\n ];\r\n\r\n return !!this.holder.querySelector(mediaTags.join(','));\r\n }\r\n\r\n /**\r\n * Set selected state\r\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\r\n */\r\n set selected(state: boolean) {\r\n /**\r\n * We don't need to mark Block as Selected when it is not empty\r\n */\r\n if (state === true && !this.isEmpty) {\r\n this.holder.classList.add(Block.CSS.selected);\r\n } else {\r\n this.holder.classList.remove(Block.CSS.selected);\r\n }\r\n }\r\n\r\n /**\r\n * Set stretched state\r\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\r\n */\r\n set stretched(state: boolean) {\r\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\r\n }\r\n\r\n public name: string;\r\n public tool: Tool;\r\n public class: any;\r\n public settings: object;\r\n public holder: HTMLDivElement;\r\n public tunes: IBlockTune[];\r\n private readonly api: IAPI;\r\n private inputIndex = 0;\r\n\r\n /**\r\n * @constructor\r\n * @param {String} toolName - Tool name that passed on initialization\r\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\r\n * @param {Object} toolClass — Tool's class\r\n * @param {Object} settings - default settings\r\n * @param {Object} apiMethods - Editor API\r\n */\r\n constructor(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: IAPI) {\r\n this.name = toolName;\r\n this.tool = toolInstance;\r\n this.class = toolClass;\r\n this.settings = settings;\r\n this.api = apiMethods;\r\n this.holder = this.compose();\r\n\r\n /**\r\n * @type {IBlockTune[]}\r\n */\r\n this.tunes = this.makeTunes();\r\n }\r\n\r\n /**\r\n * Calls Tool's method\r\n *\r\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\r\n *\r\n * @param {String} methodName\r\n * @param {Object} params\r\n */\r\n public call(methodName: string, params: object) {\r\n /**\r\n * call Tool's method with the instance context\r\n */\r\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\r\n this.tool[methodName].call(this.tool, params);\r\n }\r\n }\r\n\r\n /**\r\n * Call plugins merge method\r\n * @param {Object} data\r\n */\r\n public mergeWith(data: object): Promise {\r\n return Promise.resolve()\r\n .then(() => {\r\n this.tool.merge(data);\r\n });\r\n }\r\n /**\r\n * Extracts data from Block\r\n * Groups Tool's save processing time\r\n * @return {Object}\r\n */\r\n public async save(): Promise {\r\n let extractedBlock = await this.tool.save(this.pluginsContent);\r\n\r\n /**\r\n * if Tool provides custom sanitizer config\r\n * then use this config\r\n */\r\n if (this.tool.sanitize && typeof this.tool.sanitize === 'object') {\r\n extractedBlock = this.sanitizeBlock(extractedBlock, this.tool.sanitize);\r\n }\r\n\r\n /**\r\n * Measuring execution time\r\n */\r\n const measuringStart = window.performance.now();\r\n let measuringEnd;\r\n\r\n return Promise.resolve(extractedBlock)\r\n .then((finishedExtraction) => {\r\n /** measure promise execution */\r\n measuringEnd = window.performance.now();\r\n\r\n return {\r\n tool: this.name,\r\n data: finishedExtraction,\r\n time : measuringEnd - measuringStart,\r\n };\r\n })\r\n .catch(function(error) {\r\n _.log(`Saving proccess for ${this.tool.name} tool failed due to the ${error}`, 'log', 'red');\r\n });\r\n }\r\n\r\n /**\r\n * Uses Tool's validation method to check the correctness of output data\r\n * Tool's validation method is optional\r\n *\r\n * @description Method also can return data if it passed the validation\r\n *\r\n * @param {Object} data\r\n * @returns {Boolean|Object} valid\r\n */\r\n public validateData(data: object): object|false {\r\n let isValid = true;\r\n\r\n if (this.tool.validate instanceof Function) {\r\n isValid = this.tool.validate(data);\r\n }\r\n\r\n if (!isValid) {\r\n return false;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Make an array with default settings\r\n * Each block has default tune instance that have states\r\n * @return {IBlockTune[]}\r\n */\r\n public makeTunes(): IBlockTune[] {\r\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\r\n\r\n // Pluck tunes list and return tune instances with passed Editor API and settings\r\n return tunesList.map( (tune: IBlockTuneConstructor) => {\r\n return new tune({\r\n api: this.api,\r\n settings: this.settings,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\r\n * @return {DocumentFragment}\r\n */\r\n public renderTunes(): DocumentFragment {\r\n const tunesElement = document.createDocumentFragment();\r\n\r\n this.tunes.forEach( (tune) => {\r\n $.append(tunesElement, tune.render());\r\n });\r\n\r\n return tunesElement;\r\n }\r\n\r\n /**\r\n * Method recursively reduces Block's data and cleans with passed rules\r\n *\r\n * @param {Object|string} blockData - taint string or object/array that contains taint string\r\n * @param {Object} rules - object with sanitizer rules\r\n */\r\n private sanitizeBlock(blockData, rules) {\r\n\r\n /**\r\n * Case 1: Block data is Array\r\n * Array's in JS can not be enumerated with for..in because result will be Object not Array\r\n * which conflicts with Consistency\r\n */\r\n if (Array.isArray(blockData)) {\r\n /**\r\n * Create new \"cleanData\" array and fill in with sanitizer data\r\n */\r\n return blockData.map((item) => {\r\n return this.sanitizeBlock(item, rules);\r\n });\r\n } else if (typeof blockData === 'object') {\r\n\r\n /**\r\n * Create new \"cleanData\" object and fill with sanitized objects\r\n */\r\n const cleanData = {};\r\n\r\n /**\r\n * Object's may have 3 cases:\r\n * 1. When Data is Array. Then call again itself and recursively clean arrays items\r\n * 2. When Data is Object that can have object's inside. Do the same, call itself and clean recursively\r\n * 3. When Data is base type (string, int, bool, ...). Check if rule is passed\r\n */\r\n for (const data in blockData) {\r\n if (Array.isArray(blockData[data]) || typeof blockData[data] === 'object') {\r\n /**\r\n * Case 1 & Case 2\r\n */\r\n if (rules[data]) {\r\n cleanData[data] = this.sanitizeBlock(blockData[data], rules[data]);\r\n } else if (_.isEmpty(rules)) {\r\n cleanData[data] = this.sanitizeBlock(blockData[data], rules);\r\n } else {\r\n cleanData[data] = blockData[data];\r\n }\r\n\r\n } else {\r\n /**\r\n * Case 3.\r\n */\r\n if (rules[data]) {\r\n cleanData[data] = this.api.sanitizer.clean(blockData[data], rules[data]);\r\n } else {\r\n cleanData[data] = this.api.sanitizer.clean(blockData[data], rules);\r\n }\r\n }\r\n }\r\n\r\n return cleanData;\r\n } else {\r\n /**\r\n * In case embedded objects use parent rules\r\n */\r\n return this.api.sanitizer.clean(blockData, rules);\r\n }\r\n }\r\n\r\n /**\r\n * Toggle drop target state\r\n * @param {boolean} state\r\n */\r\n public set dropTarget(state) {\r\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\r\n }\r\n\r\n /**\r\n * Make default Block wrappers and put Tool`s content there\r\n * @returns {HTMLDivElement}\r\n */\r\n private compose(): HTMLDivElement {\r\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\r\n contentNode = $.make('div', Block.CSS.content),\r\n pluginsContent = this.tool.render();\r\n\r\n contentNode.appendChild(pluginsContent);\r\n wrapper.appendChild(contentNode);\r\n return wrapper;\r\n }\r\n}\r\n","/**\r\n * @typedef {Core} Core - editor core class\r\n */\r\n\r\n/**\r\n * Dynamically imported utils\r\n *\r\n * @typedef {Dom} $ - {@link components/dom.js}\r\n * @typedef {Util} _ - {@link components/utils.js}\r\n */\r\n\r\n/**\r\n * Require Editor modules places in components/modules dir\r\n */\r\n// eslint-disable-next-line\r\nlet modules = editorModules.map( module => require('./modules/' + module ));\r\n\r\n/**\r\n * @class Core\r\n *\r\n * @classdesc CodeX Editor core class\r\n *\r\n * @property this.config - all settings\r\n * @property this.moduleInstances - constructed editor components\r\n *\r\n * @type {Core}\r\n */\r\nexport default class Core {\r\n /**\r\n * @param {EditorConfig} config - user configuration\r\n *\r\n */\r\n constructor(config) {\r\n /**\r\n * Configuration object\r\n * @type {EditorConfig}\r\n */\r\n this.config = {};\r\n\r\n /**\r\n * @typedef {Object} EditorComponents\r\n * @property {BlockManager} BlockManager\r\n * @property {Tools} Tools\r\n * @property {Events} Events\r\n * @property {UI} UI\r\n * @property {Toolbar} Toolbar\r\n * @property {Toolbox} Toolbox\r\n * @property {BlockSettings} BlockSettings\r\n * @property {Renderer} Renderer\r\n * @property {InlineToolbar} InlineToolbar\r\n */\r\n this.moduleInstances = {};\r\n\r\n /**\r\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\r\n */\r\n let onReady, onFail;\r\n\r\n this.isReady = new Promise((resolve, reject) => {\r\n onReady = resolve;\r\n onFail = reject;\r\n });\r\n\r\n Promise.resolve()\r\n .then(() => {\r\n this.configuration = config;\r\n })\r\n .then(() => this.validate())\r\n .then(() => this.init())\r\n .then(() => this.start())\r\n .then(() => {\r\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\r\n\r\n setTimeout(() => {\r\n /**\r\n * Resolve this.isReady promise\r\n */\r\n onReady();\r\n }, 500);\r\n })\r\n .catch(error => {\r\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\r\n\r\n /**\r\n * Reject this.isReady promise\r\n */\r\n onFail(error);\r\n });\r\n }\r\n\r\n /**\r\n * Setting for configuration\r\n * @param {IEditorConfig|string|null} config\r\n */\r\n set configuration(config) {\r\n /**\r\n * Process zero-configuration or with only holderId\r\n */\r\n if (typeof config === 'string' || typeof config === 'undefined') {\r\n config = {\r\n holderId: config\r\n };\r\n }\r\n\r\n /**\r\n * If initial Block's Tool was not passed, use the Paragraph Tool\r\n */\r\n this.config.initialBlock = config.initialBlock || 'paragraph';\r\n\r\n /**\r\n * Initial block type\r\n * Uses in case when there is no blocks passed\r\n * @type {{type: (*), data: {text: null}}}\r\n */\r\n let initialBlockData = {\r\n type : this.config.initialBlock,\r\n data : {}\r\n };\r\n\r\n this.config.holderId = config.holderId || 'codex-editor';\r\n this.config.placeholder = config.placeholder || 'write your story...';\r\n this.config.sanitizer = config.sanitizer || {\r\n p: true,\r\n b: true,\r\n a: true\r\n };\r\n\r\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\r\n this.config.tools = config.tools || {};\r\n this.config.data = config.data || {};\r\n this.config.onReady = config.onReady || function () {};\r\n this.config.onChange = config.onChange || function () {};\r\n\r\n /**\r\n * Initialize Blocks to pass data to the Renderer\r\n */\r\n if (_.isEmpty(this.config.data)) {\r\n this.config.data = {};\r\n this.config.data.blocks = [ initialBlockData ];\r\n } else {\r\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\r\n this.config.data.blocks = [ initialBlockData ];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns private property\r\n * @returns {EditorConfig}\r\n */\r\n get configuration() {\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Checks for required fields in Editor's config\r\n * @returns {void|Promise}\r\n */\r\n validate() {\r\n /**\r\n * Check if holderId is not empty\r\n */\r\n if (!this.config.holderId) {\r\n return Promise.reject('«holderId» param must being not empty');\r\n }\r\n\r\n /**\r\n * Check for a holder element's existence\r\n */\r\n if (!$.get(this.config.holderId)) {\r\n return Promise.reject(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\r\n }\r\n\r\n /**\r\n * Check Tools for a class containing\r\n */\r\n for (let toolName in this.config.tools) {\r\n const tool = this.config.tools[toolName];\r\n\r\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\r\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Initializes modules:\r\n * - make and save instances\r\n * - configure\r\n */\r\n init() {\r\n /**\r\n * Make modules instances and save it to the @property this.moduleInstances\r\n */\r\n this.constructModules();\r\n\r\n /**\r\n * Modules configuration\r\n */\r\n this.configureModules();\r\n }\r\n\r\n /**\r\n * Make modules instances and save it to the @property this.moduleInstances\r\n */\r\n constructModules() {\r\n modules.forEach( Module => {\r\n try {\r\n /**\r\n * We use class name provided by displayName property\r\n *\r\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\r\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\r\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\r\n */\r\n this.moduleInstances[Module.displayName] = new Module({\r\n config : this.configuration\r\n });\r\n } catch ( e ) {\r\n console.log('Module %o skipped because %o', Module, e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Modules instances configuration:\r\n * - pass other modules to the 'state' property\r\n * - ...\r\n */\r\n configureModules() {\r\n for(let name in this.moduleInstances) {\r\n /**\r\n * Module does not need self-instance\r\n */\r\n this.moduleInstances[name].state = this.getModulesDiff( name );\r\n }\r\n }\r\n\r\n /**\r\n * Return modules without passed name\r\n */\r\n getModulesDiff( name ) {\r\n let diff = {};\r\n\r\n for(let moduleName in this.moduleInstances) {\r\n /**\r\n * Skip module with passed name\r\n */\r\n if (moduleName === name) {\r\n continue;\r\n }\r\n diff[moduleName] = this.moduleInstances[moduleName];\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * Start Editor!\r\n *\r\n * Get list of modules that needs to be prepared and return a sequence (Promise)\r\n * @return {Promise}\r\n */\r\n async start() {\r\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste', 'DragNDrop', 'ModificationsObserver'];\r\n\r\n await modulesToPrepare.reduce(\r\n (promise, module) => promise.then(async () => {\r\n _.log(`Preparing ${module} module`, 'time');\r\n\r\n try {\r\n await this.moduleInstances[module].prepare();\r\n } catch (e) {\r\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\r\n }\r\n _.log(`Preparing ${module} module`, 'timeEnd');\r\n }),\r\n Promise.resolve()\r\n );\r\n\r\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\r\n }\r\n};\r\n","/**\r\n * DOM manipulations helper\r\n */\r\nexport default class Dom {\r\n /**\r\n * Check if passed tag has no closed tag\r\n * @param {HTMLElement} tag\r\n * @return {Boolean}\r\n */\r\n public static isSingleTag(tag: HTMLElement): boolean {\r\n return tag.tagName && [\r\n 'AREA',\r\n 'BASE',\r\n 'BR',\r\n 'COL',\r\n 'COMMAND',\r\n 'EMBED',\r\n 'HR',\r\n 'IMG',\r\n 'INPUT',\r\n 'KEYGEN',\r\n 'LINK',\r\n 'META',\r\n 'PARAM',\r\n 'SOURCE',\r\n 'TRACK',\r\n 'WBR',\r\n ].includes(tag.tagName);\r\n }\r\n\r\n /**\r\n * Helper for making Elements with classname and attributes\r\n *\r\n * @param {string} tagName - new Element tag name\r\n * @param {array|string} classNames - list or name of CSS classname(s)\r\n * @param {Object} attributes - any attributes\r\n * @return {Element}\r\n */\r\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\r\n const el = document.createElement(tagName);\r\n\r\n if ( Array.isArray(classNames) ) {\r\n el.classList.add(...classNames);\r\n } else if ( classNames ) {\r\n el.classList.add(classNames);\r\n }\r\n\r\n for (const attrName in attributes) {\r\n if (attributes.hasOwnProperty(attrName)) {\r\n el[attrName] = attributes[attrName];\r\n }\r\n }\r\n\r\n return el;\r\n }\r\n\r\n /**\r\n * Creates Text Node with the passed content\r\n * @param {String} content - text content\r\n * @return {Text}\r\n */\r\n public static text(content: string): Text {\r\n return document.createTextNode(content);\r\n }\r\n\r\n /**\r\n * Creates SVG icon linked to the sprite\r\n * @param {string} name - name (id) of icon from sprite\r\n * @param {number} width\r\n * @param {number} height\r\n * @return {SVGElement}\r\n */\r\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\r\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n\r\n icon.classList.add('icon', 'icon--' + name);\r\n icon.setAttribute('width', width + 'px');\r\n icon.setAttribute('height', height + 'px');\r\n icon.innerHTML = ``;\r\n\r\n return icon;\r\n }\r\n\r\n /**\r\n * Append one or several elements to the parent\r\n *\r\n * @param {Element|DocumentFragment} parent - where to append\r\n * @param {Element|Element[]} elements - element or elements list\r\n */\r\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]): void {\r\n if ( Array.isArray(elements) ) {\r\n elements.forEach( (el) => parent.appendChild(el) );\r\n } else {\r\n parent.appendChild(elements);\r\n }\r\n }\r\n\r\n /**\r\n * Append element or a couple to the beginning of the parent elements\r\n *\r\n * @param {Element} parent - where to append\r\n * @param {Element|Element[]} elements - element or elements list\r\n */\r\n public static prepend(parent: Element, elements: Element|Element[]): void {\r\n if ( Array.isArray(elements) ) {\r\n elements = elements.reverse();\r\n elements.forEach( (el) => parent.prepend(el) );\r\n } else {\r\n parent.prepend(elements);\r\n }\r\n }\r\n\r\n /**\r\n * Swap two elements in parent\r\n * @param {HTMLElement} el1 - from\r\n * @param {HTMLElement} el2 - to\r\n */\r\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\r\n // create marker element and insert it where el1 is\r\n const temp = document.createElement('div'),\r\n parent = el1.parentNode;\r\n\r\n parent.insertBefore(temp, el1);\r\n\r\n // move el1 to right before el2\r\n parent.insertBefore(el1, el2);\r\n\r\n // move el2 to right before where el1 used to be\r\n parent.insertBefore(el2, temp);\r\n\r\n // remove temporary marker node\r\n parent.removeChild(temp);\r\n }\r\n\r\n /**\r\n * Selector Decorator\r\n *\r\n * Returns first match\r\n *\r\n * @param {Element} el - element we searching inside. Default - DOM Document\r\n * @param {String} selector - searching string\r\n *\r\n * @returns {Element}\r\n */\r\n public static find(el: Element|Document = document, selector: string): Element {\r\n return el.querySelector(selector);\r\n }\r\n\r\n /**\r\n * Get Element by Id\r\n *\r\n * @param {string} id\r\n * @returns {HTMLElement | null}\r\n */\r\n public static get(id: string): HTMLElement {\r\n return document.getElementById(id);\r\n }\r\n\r\n /**\r\n * Selector Decorator.\r\n *\r\n * Returns all matches\r\n *\r\n * @param {Element} el - element we searching inside. Default - DOM Document\r\n * @param {String} selector - searching string\r\n * @returns {NodeList}\r\n */\r\n public static findAll(el: Element|Document = document, selector: string): NodeList {\r\n return el.querySelectorAll(selector);\r\n }\r\n\r\n /**\r\n * Search for deepest node which is Leaf.\r\n * Leaf is the vertex that doesn't have any child nodes\r\n *\r\n * @description Method recursively goes throw the all Node until it finds the Leaf\r\n *\r\n * @param {Node} node - root Node. From this vertex we start Deep-first search\r\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\r\n * @param {Boolean} atLast - find last text node\r\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\r\n */\r\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\r\n /**\r\n * Current function have two directions:\r\n * - starts from first child and every time gets first or nextSibling in special cases\r\n * - starts from last child and gets last or previousSibling\r\n * @type {string}\r\n */\r\n const child = atLast ? 'lastChild' : 'firstChild',\r\n sibling = atLast ? 'previousSibling' : 'nextSibling';\r\n\r\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\r\n let nodeChild = node[child];\r\n\r\n /**\r\n * special case when child is single tag that can't contain any content\r\n */\r\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\r\n /**\r\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\r\n * from sibling\r\n *\r\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\r\n * In case of Node Element continue searching\r\n *\r\n * 3) If none of conditions above happened return parent Node Element\r\n */\r\n if (nodeChild[sibling]) {\r\n nodeChild = nodeChild[sibling];\r\n } else if (nodeChild.parentNode[sibling]) {\r\n nodeChild = nodeChild.parentNode[sibling];\r\n } else {\r\n return nodeChild.parentNode;\r\n }\r\n }\r\n\r\n return this.getDeepestNode(nodeChild, atLast);\r\n }\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * Check if object is DOM node\r\n *\r\n * @param {Object} node\r\n * @returns {boolean}\r\n */\r\n public static isElement(node: any): boolean {\r\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\r\n }\r\n\r\n /**\r\n * Check if object is DocumentFragmemt node\r\n *\r\n * @param {Object} node\r\n * @returns {boolean}\r\n */\r\n public static isFragment(node: any): boolean {\r\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\r\n }\r\n\r\n /**\r\n * Checks target if it is native input\r\n * @param {Element|String|Node} target - HTML element or string\r\n * @return {Boolean}\r\n */\r\n public static isNativeInput(target: any): boolean {\r\n const nativeInputs = [\r\n 'INPUT',\r\n 'TEXTAREA',\r\n ];\r\n\r\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\r\n }\r\n\r\n /**\r\n * Checks node if it is empty\r\n *\r\n * @description Method checks simple Node without any childs for emptiness\r\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\r\n *\r\n * @param {Node} node\r\n * @return {Boolean} true if it is empty\r\n */\r\n public static isNodeEmpty(node: Node): boolean {\r\n let nodeText;\r\n\r\n if ( this.isElement(node) && this.isNativeInput(node) ) {\r\n nodeText = (node as HTMLInputElement).value;\r\n } else {\r\n nodeText = node.textContent.replace('\\u200B', '');\r\n }\r\n\r\n return nodeText.trim().length === 0;\r\n }\r\n\r\n /**\r\n * checks node if it is doesn't have any child nodes\r\n * @param {Node} node\r\n * @return {boolean}\r\n */\r\n public static isLeaf(node: Node): boolean {\r\n if (!node) {\r\n return false;\r\n }\r\n\r\n return node.childNodes.length === 0;\r\n }\r\n\r\n /**\r\n * breadth-first search (BFS)\r\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\r\n *\r\n * @description Pushes to stack all DOM leafs and checks for emptiness\r\n *\r\n * @param {Node} node\r\n * @return {boolean}\r\n */\r\n public static isEmpty(node: Node): boolean {\r\n const treeWalker = [],\r\n leafs = [];\r\n\r\n if (!node) {\r\n return true;\r\n }\r\n\r\n if (!node.childNodes.length) {\r\n return this.isNodeEmpty(node);\r\n }\r\n\r\n treeWalker.push(node.firstChild);\r\n\r\n while ( treeWalker.length > 0 ) {\r\n node = treeWalker.shift();\r\n\r\n if (!node) { continue; }\r\n\r\n if ( this.isLeaf(node) ) {\r\n leafs.push(node);\r\n } else {\r\n treeWalker.push(node.firstChild);\r\n }\r\n\r\n while ( node && node.nextSibling ) {\r\n node = node.nextSibling;\r\n\r\n if (!node) { continue; }\r\n\r\n treeWalker.push(node);\r\n }\r\n\r\n /**\r\n * If one of childs is not empty, checked Node is not empty too\r\n */\r\n if (node && !this.isNodeEmpty(node)) {\r\n return false;\r\n }\r\n }\r\n\r\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\r\n }\r\n\r\n /**\r\n * Check if string contains html elements\r\n *\r\n * @returns {boolean}\r\n * @param {String} str\r\n */\r\n public static isHTMLString(str: string): boolean {\r\n const wrapper = Dom.make('div');\r\n\r\n wrapper.innerHTML = str;\r\n\r\n return wrapper.childElementCount > 0;\r\n }\r\n\r\n /**\r\n * Return length of node`s text content\r\n *\r\n * @param {Node} node\r\n * @returns {number}\r\n */\r\n public static getContentLength(node: Node): number {\r\n if (Dom.isNativeInput(node)) {\r\n return (node as HTMLInputElement).value.length;\r\n }\r\n\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n return (node as Text).length;\r\n }\r\n\r\n return node.textContent.length;\r\n }\r\n\r\n /**\r\n * Return array of names of block html elements\r\n *\r\n * @returns {string[]}\r\n */\r\n static get blockElements(): string[] {\r\n return [\r\n 'address',\r\n 'article',\r\n 'aside',\r\n 'blockquote',\r\n 'canvas',\r\n 'div',\r\n 'dl',\r\n 'dt',\r\n 'fieldset',\r\n 'figcaption',\r\n 'figure',\r\n 'footer',\r\n 'form',\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'header',\r\n 'hgroup',\r\n 'hr',\r\n 'li',\r\n 'main',\r\n 'nav',\r\n 'noscript',\r\n 'ol',\r\n 'output',\r\n 'p',\r\n 'pre',\r\n 'ruby',\r\n 'section',\r\n 'table',\r\n 'tr',\r\n 'tfoot',\r\n 'ul',\r\n 'video',\r\n ];\r\n }\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\n\r\ndeclare var $: any;\r\n\r\n/**\r\n * Bold Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Makes selected text bolder\r\n */\r\nexport default class BoldInlineTool implements InlineTool {\r\n\r\n /**\r\n * Native Document's command that uses for Bold\r\n */\r\n private readonly commandName: string = 'bold';\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--bold',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: undefined,\r\n };\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('bold', 13, 15));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Wrap range with tag\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n document.execCommand(this.commandName);\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection: Selection): boolean {\r\n const isActive = document.queryCommandState(this.commandName);\r\n\r\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\r\n return isActive;\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+B';\r\n }\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\n\r\ndeclare var $: any;\r\n\r\n/**\r\n * Italic Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Style selected text with italic\r\n */\r\nexport default class ItalicInlineTool implements InlineTool {\r\n\r\n /**\r\n * Native Document's command that uses for Italic\r\n */\r\n private readonly commandName: string = 'italic';\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--italic',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: null,\r\n };\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('italic', 6, 15));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Wrap range with tag\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n document.execCommand(this.commandName);\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection: Selection): boolean {\r\n const isActive = document.queryCommandState(this.commandName);\r\n\r\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\r\n return isActive;\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+I';\r\n }\r\n\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n/**\r\n * Link Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Wrap selected text with tag\r\n */\r\nexport default class LinkInlineTool implements InlineTool {\r\n /**\r\n * Native Document's commands for link/unlink\r\n */\r\n private readonly commandLink: string = 'createLink';\r\n private readonly commandUnlink: string = 'unlink';\r\n\r\n /**\r\n * Enter key code\r\n */\r\n private readonly ENTER_KEY: number = 13;\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--link',\r\n buttonUnlink: 'ce-inline-tool--unlink',\r\n input: 'ce-inline-tool-input',\r\n inputShowed: 'ce-inline-tool-input--showed',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: null,\r\n input: null,\r\n };\r\n\r\n /**\r\n * SelectionUtils instance\r\n */\r\n private selection: SelectionUtils;\r\n\r\n /**\r\n * Input opening state\r\n */\r\n private inputOpened: boolean = false;\r\n\r\n /**\r\n * Available Inline Toolbar methods (open/close)\r\n */\r\n private inlineToolbar: any;\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n this.inlineToolbar = api.toolbar;\r\n this.selection = new SelectionUtils();\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('link', 15, 14));\r\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Input for the link\r\n */\r\n public renderActions(): HTMLElement {\r\n this.nodes.input = document.createElement('input');\r\n this.nodes.input.placeholder = 'Add a link';\r\n this.nodes.input.classList.add(this.CSS.input);\r\n this.nodes.input.addEventListener('keydown', (event) => {\r\n if (event.keyCode === this.ENTER_KEY ) {\r\n this.enterPressed(event);\r\n }\r\n });\r\n return this.nodes.input;\r\n }\r\n\r\n /**\r\n * Handle clicks on the Inline Toolbar icon\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n /**\r\n * Range will be null when user makes second click on the 'link icon' to close opened input\r\n */\r\n if (range) {\r\n /**\r\n * Save selection before change focus to the input\r\n */\r\n this.selection.save();\r\n const parentAnchor = this.selection.findParentTag('A');\r\n\r\n /**\r\n * Unlink icon pressed\r\n */\r\n if (parentAnchor) {\r\n this.selection.expandToTag(parentAnchor);\r\n this.unlink();\r\n this.closeActions();\r\n this.checkState();\r\n this.inlineToolbar.close();\r\n return;\r\n }\r\n }\r\n\r\n this.toggleActions();\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection?: Selection): boolean {\r\n const anchorTag = this.selection.findParentTag('A');\r\n\r\n if (anchorTag) {\r\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\r\n this.nodes.button.classList.add(this.CSS.buttonActive);\r\n this.openActions();\r\n\r\n /**\r\n * Fill input value with link href\r\n */\r\n const hrefAttr = anchorTag.getAttribute('href');\r\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\r\n\r\n this.selection.save();\r\n } else {\r\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\r\n this.nodes.button.classList.remove(this.CSS.buttonActive);\r\n }\r\n\r\n return !!anchorTag;\r\n }\r\n\r\n /**\r\n * Function called with Inline Toolbar closing\r\n */\r\n public clear(): void {\r\n this.closeActions();\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+K';\r\n }\r\n\r\n private toggleActions(): void {\r\n if (!this.inputOpened) {\r\n this.openActions(true);\r\n } else {\r\n this.closeActions(false);\r\n }\r\n }\r\n\r\n /**\r\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\r\n */\r\n private openActions(needFocus: boolean = false): void {\r\n this.nodes.input.classList.add(this.CSS.inputShowed);\r\n if (needFocus) {\r\n this.nodes.input.focus();\r\n }\r\n this.inputOpened = true;\r\n }\r\n\r\n /**\r\n * Close input\r\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\r\n * on toggle-clicks on the icon of opened Toolbar\r\n */\r\n private closeActions(clearSavedSelection: boolean = true): void {\r\n this.nodes.input.classList.remove(this.CSS.inputShowed);\r\n this.nodes.input.value = '';\r\n if (clearSavedSelection) {\r\n this.selection.clearSaved();\r\n }\r\n this.inputOpened = false;\r\n }\r\n\r\n /**\r\n * Enter pressed on input\r\n * @param {KeyboardEvent} event\r\n */\r\n private enterPressed(event: KeyboardEvent): void {\r\n let value = this.nodes.input.value || '';\r\n\r\n if (!value.trim()) {\r\n this.selection.restore();\r\n this.unlink();\r\n event.preventDefault();\r\n this.closeActions();\r\n }\r\n\r\n if (!this.validateURL(value)) {\r\n /**\r\n * @todo show notification 'Incorrect Link'\r\n */\r\n _.log('Incorrect Link pasted', 'warn', value);\r\n return;\r\n }\r\n\r\n value = this.prepareLink(value);\r\n\r\n this.selection.restore();\r\n this.insertLink(value);\r\n\r\n /**\r\n * Preventing events that will be able to happen\r\n */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n\r\n this.closeActions();\r\n this.inlineToolbar.close();\r\n this.checkState();\r\n }\r\n\r\n /**\r\n * Detects if passed string is URL\r\n * @param {string} str\r\n * @return {Boolean}\r\n */\r\n private validateURL(str: string): boolean {\r\n /**\r\n * Don't allow spaces\r\n */\r\n return !/\\s/.test(str);\r\n }\r\n\r\n /**\r\n * Process link before injection\r\n * - sanitize\r\n * - add protocol for links like 'google.com'\r\n * @param {string} link - raw user input\r\n */\r\n private prepareLink(link: string): string {\r\n link = link.trim();\r\n link = this.addProtocol(link);\r\n return link;\r\n }\r\n\r\n /**\r\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\r\n * @param {String} link\r\n */\r\n private addProtocol(link: string): string {\r\n /**\r\n * If protocol already exists, do nothing\r\n */\r\n if (/^(\\w+):\\/\\//.test(link)) {\r\n return link;\r\n }\r\n\r\n /**\r\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\r\n * 1) Internal links like \"/general\"\r\n * 2) Anchors looks like \"#results\"\r\n * 3) Protocol-relative URLs like \"//google.com\"\r\n */\r\n const isInternal = /^\\/[^\\/\\s]/.test(link),\r\n isAnchor = link.substring(0, 1) === '#',\r\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\r\n\r\n if (!isInternal && !isAnchor && !isProtocolRelative) {\r\n link = 'http://' + link;\r\n }\r\n\r\n return link;\r\n }\r\n\r\n /**\r\n * Inserts tag with \"href\"\r\n * @param {string} link - \"href\" value\r\n */\r\n private insertLink(link: string): void {\r\n\r\n /**\r\n * Edit all link, not selected part\r\n */\r\n const anchorTag = this.selection.findParentTag('A');\r\n\r\n if (anchorTag) {\r\n this.selection.expandToTag(anchorTag);\r\n }\r\n\r\n document.execCommand(this.commandLink, false, link);\r\n }\r\n\r\n /**\r\n * Removes tag\r\n */\r\n private unlink(): void {\r\n document.execCommand(this.commandUnlink);\r\n }\r\n}\r\n","var map = {\n\t\"./_notifications\": \"./src/components/modules/_notifications.js\",\n\t\"./_notifications.js\": \"./src/components/modules/_notifications.js\",\n\t\"./api\": \"./src/components/modules/api.ts\",\n\t\"./api-blocks\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events\": \"./src/components/modules/api-events.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-sanitizer\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events\": \"./src/components/modules/block-events.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager\": \"./src/components/modules/blockManager.js\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./caret\": \"./src/components/modules/caret.js\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./dragNDrop\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events\": \"./src/components/modules/events.js\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners\": \"./src/components/modules/listeners.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./modificationsObserver\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./paste\": \"./src/components/modules/paste.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer\": \"./src/components/modules/renderer.js\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer\": \"./src/components/modules/sanitizer.js\",\n\t\"./sanitizer.js\": \"./src/components/modules/sanitizer.js\",\n\t\"./saver\": \"./src/components/modules/saver.js\",\n\t\"./saver.js\": \"./src/components/modules/saver.js\",\n\t\"./shortcuts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar\": \"./src/components/modules/toolbar.js\",\n\t\"./toolbar-blockSettings\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools\": \"./src/components/modules/tools.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui\": \"./src/components/modules/ui.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 recursive ^\\\\.\\\\/.*$\";","/**\r\n * Codex Editor Notification Module\r\n *\r\n * @author Codex Team\r\n * @version 1.0\r\n */\r\n\r\nmodule.exports = (function (notifications) {\r\n let editor = codex.editor;\r\n\r\n var queue = [];\r\n\r\n var addToQueue = function (settings) {\r\n queue.push(settings);\r\n\r\n var index = 0;\r\n\r\n while ( index < queue.length && queue.length > 5) {\r\n if (queue[index].type == 'confirm' || queue[index].type == 'prompt') {\r\n index++;\r\n continue;\r\n }\r\n\r\n queue[index].close();\r\n queue.splice(index, 1);\r\n }\r\n };\r\n\r\n notifications.createHolder = function () {\r\n var holder = editor.draw.node('DIV', 'cdx-notifications-block');\r\n\r\n editor.nodes.notifications = document.body.appendChild(holder);\r\n\r\n return holder;\r\n };\r\n\r\n\r\n /**\r\n * Error notificator. Shows block with message\r\n * @protected\r\n */\r\n notifications.errorThrown = function (errorMsg, event) {\r\n editor.notifications.notification({message: 'This action is not available currently', type: event.type});\r\n };\r\n\r\n /**\r\n *\r\n * Appends notification\r\n *\r\n * settings = {\r\n * type - notification type (reserved types: alert, confirm, prompt). Just add class 'cdx-notification-'+type\r\n * message - notification message\r\n * okMsg - confirm button text (default - 'Ok')\r\n * cancelBtn - cancel button text (default - 'Cancel'). Only for confirm and prompt types\r\n * confirm - function-handler for ok button click\r\n * cancel - function-handler for cancel button click. Only for confirm and prompt types\r\n * time - time (in seconds) after which notification will close (default - 10s)\r\n * }\r\n *\r\n * @param settings\r\n */\r\n notifications.notification = function (constructorSettings) {\r\n /** Private vars and methods */\r\n var notification = null,\r\n cancel = null,\r\n type = null,\r\n confirm = null,\r\n inputField = null;\r\n\r\n var confirmHandler = function () {\r\n close();\r\n\r\n if (typeof confirm !== 'function' ) {\r\n return;\r\n }\r\n\r\n if (type == 'prompt') {\r\n confirm(inputField.value);\r\n return;\r\n }\r\n\r\n confirm();\r\n };\r\n\r\n var cancelHandler = function () {\r\n close();\r\n\r\n if (typeof cancel !== 'function' ) {\r\n return;\r\n }\r\n\r\n cancel();\r\n };\r\n\r\n\r\n /** Public methods */\r\n function create(settings) {\r\n if (!(settings && settings.message)) {\r\n editor.core.log('Can\\'t create notification. Message is missed');\r\n return;\r\n }\r\n\r\n settings.type = settings.type || 'alert';\r\n settings.time = settings.time*1000 || 10000;\r\n\r\n var wrapper = editor.draw.node('DIV', 'cdx-notification'),\r\n message = editor.draw.node('DIV', 'cdx-notification__message'),\r\n input = editor.draw.node('INPUT', 'cdx-notification__input'),\r\n okBtn = editor.draw.node('SPAN', 'cdx-notification__ok-btn'),\r\n cancelBtn = editor.draw.node('SPAN', 'cdx-notification__cancel-btn');\r\n\r\n message.textContent = settings.message;\r\n okBtn.textContent = settings.okMsg || 'ОК';\r\n cancelBtn.textContent = settings.cancelMsg || 'Отмена';\r\n\r\n editor.listeners.add(okBtn, 'click', confirmHandler);\r\n editor.listeners.add(cancelBtn, 'click', cancelHandler);\r\n\r\n wrapper.appendChild(message);\r\n\r\n if (settings.type == 'prompt') {\r\n wrapper.appendChild(input);\r\n }\r\n\r\n wrapper.appendChild(okBtn);\r\n\r\n if (settings.type == 'prompt' || settings.type == 'confirm') {\r\n wrapper.appendChild(cancelBtn);\r\n }\r\n\r\n wrapper.classList.add('cdx-notification-' + settings.type);\r\n wrapper.dataset.type = settings.type;\r\n\r\n notification = wrapper;\r\n type = settings.type;\r\n confirm = settings.confirm;\r\n cancel = settings.cancel;\r\n inputField = input;\r\n\r\n if (settings.type != 'prompt' && settings.type != 'confirm') {\r\n window.setTimeout(close, settings.time);\r\n }\r\n };\r\n\r\n /**\r\n * Show notification block\r\n */\r\n function send() {\r\n editor.nodes.notifications.appendChild(notification);\r\n inputField.focus();\r\n\r\n editor.nodes.notifications.classList.add('cdx-notification__notification-appending');\r\n\r\n window.setTimeout(function () {\r\n editor.nodes.notifications.classList.remove('cdx-notification__notification-appending');\r\n }, 100);\r\n\r\n addToQueue({type: type, close: close});\r\n };\r\n\r\n /**\r\n * Remove notification block\r\n */\r\n function close() {\r\n notification.remove();\r\n };\r\n\r\n\r\n if (constructorSettings) {\r\n create(constructorSettings);\r\n send();\r\n }\r\n\r\n return {\r\n create: create,\r\n send: send,\r\n close: close\r\n };\r\n };\r\n\r\n notifications.clear = function () {\r\n editor.nodes.notifications.innerHTML = '';\r\n queue = [];\r\n };\r\n\r\n return notifications;\r\n})({});","declare var Module: any;\r\n\r\nimport { IBlocksAPI } from '../interfaces/api';\r\nimport IInputOutputData from '../interfaces/input-output-data';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class BlocksAPI\r\n * provides with methods working with Block\r\n */\r\nexport default class BlocksAPI extends Module implements IBlocksAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IBlocksAPI}\r\n */\r\n get methods(): IBlocksAPI {\r\n return {\r\n clear: () => this.clear(),\r\n render: (data: IInputOutputData) => this.render(data),\r\n delete: () => this.delete(),\r\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\r\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\r\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\r\n getBlocksCount: () => this.getBlocksCount(),\r\n stretchBlock: (index: number, status: boolean) => this.stretchBlock(index, status),\r\n insertNewBlock: () => this.insertNewBlock(),\r\n };\r\n }\r\n\r\n /**\r\n * Returns Blocks count\r\n * @return {number}\r\n */\r\n public getBlocksCount(): number {\r\n return this.Editor.BlockManager.blocks.length;\r\n }\r\n\r\n /**\r\n * Returns current block index\r\n * @return {number}\r\n */\r\n public getCurrentBlockIndex(): number {\r\n return this.Editor.BlockManager.currentBlockIndex;\r\n }\r\n\r\n /**\r\n * Returns Current Block\r\n * @param {Number} index\r\n *\r\n * @return {Object}\r\n */\r\n public getBlockByIndex(index: number): object {\r\n return this.Editor.BlockManager.getBlockByIndex(index);\r\n }\r\n\r\n /**\r\n * Call Block Manager method that swap Blocks\r\n * @param {number} fromIndex - position of first Block\r\n * @param {number} toIndex - position of second Block\r\n */\r\n public swap(fromIndex: number, toIndex: number): void {\r\n this.Editor.BlockManager.swap(fromIndex, toIndex);\r\n\r\n /**\r\n * Move toolbar\r\n * DO not close the settings\r\n */\r\n this.Editor.Toolbar.move(false);\r\n }\r\n\r\n /**\r\n * Deletes Block\r\n * @param blockIndex\r\n */\r\n public delete(blockIndex?: number): void {\r\n this.Editor.BlockManager.removeBlock(blockIndex);\r\n\r\n /**\r\n * in case of last block deletion\r\n * Insert new initial empty block\r\n */\r\n if (this.Editor.BlockManager.blocks.length === 0) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * In case of deletion first block we need to set caret to the current Block\r\n */\r\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\r\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\r\n } else {\r\n this.Editor.Caret.navigatePrevious(true);\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Clear Editor's area\r\n */\r\n public clear(): void {\r\n this.Editor.BlockManager.clear(true);\r\n }\r\n\r\n /**\r\n * Fills Editor with Blocks data\r\n * @param {IInputOutputData} data — Saved Editor data\r\n */\r\n public render(data: IInputOutputData): void {\r\n this.Editor.BlockManager.clear();\r\n this.Editor.Renderer.render(data.blocks);\r\n }\r\n\r\n /**\r\n * Stretch Block's content\r\n * @param {number} index\r\n * @param {boolean} status - true to enable, false to disable\r\n */\r\n public stretchBlock(index: number, status: boolean): void {\r\n const block = this.Editor.BlockManager.getBlockByIndex(index);\r\n\r\n if (!block) {\r\n return;\r\n }\r\n\r\n block.stretched = status !== undefined ? status : true;\r\n }\r\n\r\n /**\r\n * Insert new Block\r\n * After set caret to this Block\r\n */\r\n public insertNewBlock() {\r\n const newBlock = this.Editor.BlockManager.insert();\r\n this.Editor.Caret.setToBlock(newBlock);\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ICaretAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class CaretAPI\r\n * provides with methods to work with caret\r\n */\r\nexport default class CaretAPI extends Module implements ICaretAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ICaretAPI}\r\n */\r\n get methods(): ICaretAPI {\r\n return {};\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IEventsAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class EventsAPI\r\n * provides with methods working with Toolbar\r\n */\r\nexport default class EventsAPI extends Module implements IEventsAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IEventsAPI}\r\n */\r\n get methods(): IEventsAPI {\r\n return {\r\n emit: (eventName: string, data: object) => this.emit(eventName, data),\r\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\r\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\r\n };\r\n }\r\n\r\n /**\r\n * Subscribe on Events\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n */\r\n public on(eventName, callback): void {\r\n this.Editor.Events.on(eventName, callback);\r\n }\r\n\r\n /**\r\n * Emit event with data\r\n * @param {String} eventName\r\n * @param {Object} data\r\n */\r\n public emit(eventName, data): void {\r\n this.Editor.Events.emit(eventName, data);\r\n }\r\n\r\n /**\r\n * Unsubscribe from Event\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n */\r\n public off(eventName, callback): void {\r\n this.Editor.Events.off(eventName, callback);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IListenerAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class API\r\n * Provides with methods working with DOM Listener\r\n */\r\nexport default class ListenerAPI extends Module implements IListenerAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IToolbarAPI}\r\n */\r\n get methods(): IListenerAPI {\r\n return {\r\n on: (element, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\r\n off: (element, eventType, handler) => this.off(element, eventType, handler),\r\n };\r\n }\r\n\r\n /**\r\n * adds DOM event listener\r\n *\r\n * @param {HTMLElement} element\r\n * @param {string} eventType\r\n * @param {() => void} handler\r\n * @param {boolean} useCapture\r\n */\r\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\r\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Removes DOM listener from element\r\n *\r\n * @param element\r\n * @param eventType\r\n * @param handler\r\n */\r\n public off(element, eventType, handler): void {\r\n this.Editor.Listeners.off(element, eventType, handler);\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISanitizerAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class API\r\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\r\n */\r\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISanitizerAPI}\r\n */\r\n get methods(): ISanitizerAPI {\r\n return {\r\n clean: (taintString, config) => this.clean(taintString, config),\r\n };\r\n }\r\n\r\n public clean(taintString, config) {\r\n return this.Editor.Sanitizer.clean(taintString, config);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISaverAPI} from '../interfaces/api';\r\nimport IInputOutputData from '../interfaces/input-output-data';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class SaverAPI\r\n * provides with methods to save data\r\n */\r\nexport default class SaverAPI extends Module implements ISaverAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISaverAPI}\r\n */\r\n get methods(): ISaverAPI {\r\n return {\r\n save: () => this.save(),\r\n };\r\n }\r\n\r\n /**\r\n * Return Editor's data\r\n */\r\n public save(): IInputOutputData {\r\n return this.Editor.Saver.save();\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISelectionAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @class API\r\n * Provides with methods working with SelectionUtils\r\n */\r\nexport default class SelectionAPI extends Module implements ISelectionAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISelectionAPI}\r\n */\r\n get methods(): ISelectionAPI {\r\n return {\r\n findParentTag: (tagName: string, className: string) => this.findParentTag(tagName, className),\r\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\r\n };\r\n }\r\n\r\n /**\r\n * Looks ahead from selection and find passed tag with class name\r\n * @param {string} tagName - tag to find\r\n * @param {string} className - tag's class name\r\n * @return {HTMLElement|null}\r\n */\r\n public findParentTag(tagName: string, className: string): HTMLElement|null {\r\n return new Selection().findParentTag(tagName, className);\r\n }\r\n\r\n /**\r\n * Expand selection to passed tag\r\n * @param {HTMLElement} node - tag that should contain selection\r\n */\r\n public expandToTag(node: HTMLElement): void {\r\n new Selection().expandToTag(node);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport IModuleConfig from '../interfaces/module-config';\r\nimport {IStylesAPI} from '../interfaces/api';\r\n\r\n/**\r\n *\r\n */\r\nexport default class StylesAPI extends Module {\r\n\r\n /**\r\n * Save Editor config\r\n * API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n get classes(): IStylesAPI {\r\n return {\r\n /**\r\n * Base Block styles\r\n */\r\n block: 'cdx-block',\r\n\r\n /**\r\n * Inline Tools styles\r\n */\r\n inlineToolButton: 'ce-inline-tool',\r\n inlineToolButtonActive: 'ce-inline-tool--active',\r\n\r\n /**\r\n * UI elements\r\n */\r\n input: 'cdx-input',\r\n loader: 'cdx-loader',\r\n\r\n /**\r\n * Settings styles\r\n */\r\n settingsButton: 'cdx-settings-button',\r\n settingsButtonActive: 'cdx-settings-button--active',\r\n };\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IToolbarAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class ToolbarsAPI\r\n * provides with methods working with Toolbar\r\n */\r\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IToolbarAPI}\r\n */\r\n get methods(): IToolbarAPI {\r\n return {\r\n close: () => this.close(),\r\n open: () => this.open(),\r\n };\r\n }\r\n\r\n /**\r\n * Open toolbar\r\n */\r\n public open(): void {\r\n this.Editor.Toolbar.open();\r\n }\r\n\r\n /**\r\n * Close toolbar and all included elements\r\n */\r\n public close(): void {\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n}\r\n","/**\r\n * @module API\r\n * @copyright 2018\r\n *\r\n * Each block has an Editor API instance to use provided public methods\r\n * if you cant to read more about how API works, please see docs\r\n */\r\ndeclare var Module: any;\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nimport { IAPI } from '../interfaces/api';\r\n\r\n/**\r\n * @class API\r\n */\r\nexport default class API extends Module {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n public get methods(): IAPI {\r\n return {\r\n blocks: this.Editor.BlocksAPI.methods,\r\n caret: this.Editor.CaretAPI.methods,\r\n events: this.Editor.EventsAPI.methods,\r\n listener: this.Editor.ListenerAPI.methods,\r\n sanitizer: this.Editor.SanitizerAPI.methods,\r\n saver: this.Editor.SaverAPI.methods,\r\n selection: this.Editor.SelectionAPI.methods,\r\n styles: this.Editor.StylesAPI.classes,\r\n toolbar: this.Editor.ToolbarAPI.methods,\r\n };\r\n }\r\n}\r\n","/**\r\n * Contains keyboard and mouse events binded on each Block by Block Manager\r\n */\r\ndeclare var Module: any;\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class BlockEvents extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * All keydowns on Block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n public keydown(event: KeyboardEvent): void {\r\n /**\r\n * Run common method for all keydown events\r\n */\r\n this.beforeKeydownProcessing(event);\r\n\r\n /**\r\n * Fire keydown processor by event.keyCode\r\n */\r\n switch (event.keyCode) {\r\n case _.keyCodes.BACKSPACE:\r\n this.backspace(event);\r\n break;\r\n\r\n case _.keyCodes.ENTER:\r\n this.enter(event);\r\n break;\r\n\r\n case _.keyCodes.DOWN:\r\n case _.keyCodes.RIGHT:\r\n this.arrowRightAndDown(event);\r\n break;\r\n\r\n case _.keyCodes.UP:\r\n case _.keyCodes.LEFT:\r\n this.arrowLeftAndUp(event);\r\n break;\r\n\r\n case _.keyCodes.TAB:\r\n this.tabPressed(event);\r\n break;\r\n\r\n default:\r\n this.defaultHandler();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Fires on keydown before event processing\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n public beforeKeydownProcessing(event): void {\r\n /**\r\n * Clear all highlightings\r\n */\r\n this.Editor.BlockManager.clearHighlightings();\r\n\r\n /**\r\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\r\n */\r\n if (!this.needToolbarClosing(event)) {\r\n return;\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Key up on Block:\r\n * - shows Inline Toolbar if something selected\r\n */\r\n public keyup(event): void {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n /**\r\n * Mouse up on Block:\r\n * - shows Inline Toolbar if something selected\r\n */\r\n public mouseUp(event): void {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n /**\r\n * Open Toolbox to leaf Tools\r\n * @param {KeyboardEvent} event\r\n */\r\n public tabPressed(event): void {\r\n\r\n const {currentBlock} = this.Editor.BlockManager;\r\n\r\n /** Prevent Default behaviour */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n /** this property defines leaf direction */\r\n const shiftKey = event.shiftKey,\r\n direction = shiftKey ? 'left' : 'right';\r\n\r\n if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\r\n this.Editor.Toolbox.open();\r\n } else if (currentBlock.isEmpty) {\r\n this.Editor.Toolbar.open();\r\n this.Editor.Toolbar.plusButton.show();\r\n this.Editor.Toolbox.open();\r\n }\r\n\r\n if (this.Editor.Toolbox.opened) {\r\n this.Editor.Toolbox.leaf(direction);\r\n }\r\n }\r\n\r\n /**\r\n * Add drop target styles\r\n *\r\n * @param {DragEvent} e\r\n */\r\n public dragOver(e: DragEvent) {\r\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\r\n\r\n block.dropTarget = true;\r\n }\r\n\r\n /**\r\n * Remove drop target style\r\n *\r\n * @param {DragEvent} e\r\n */\r\n public dragLeave(e: DragEvent) {\r\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\r\n\r\n block.dropTarget = false;\r\n }\r\n\r\n /**\r\n * ENTER pressed on block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n private enter(event: KeyboardEvent): void {\r\n const currentBlock = this.Editor.BlockManager.currentBlock,\r\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\r\n\r\n /**\r\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\r\n * Uses for Tools like where line breaks should be handled by default behaviour.\r\n */\r\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\r\n return;\r\n }\r\n\r\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\r\n return;\r\n }\r\n\r\n /**\r\n * Allow to create linebreaks by Shift+Enter\r\n */\r\n if (event.shiftKey) {\r\n return;\r\n }\r\n /**\r\n * Split the Current Block into two blocks\r\n * Renew local current node after split\r\n */\r\n const newCurrent = this.Editor.BlockManager.split();\r\n\r\n this.Editor.Caret.setToBlock(newCurrent);\r\n\r\n /**\r\n * If new Block is empty\r\n */\r\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\r\n /**\r\n * Show Toolbar\r\n */\r\n this.Editor.Toolbar.open();\r\n\r\n /**\r\n * Show Plus Button\r\n */\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n /**\r\n * Handle backspace keydown on Block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n private backspace(event: KeyboardEvent): void {\r\n const BM = this.Editor.BlockManager;\r\n const currentBlock = this.Editor.BlockManager.currentBlock,\r\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\r\n\r\n /**\r\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\r\n * Uses for Tools like where line breaks should be handled by default behaviour.\r\n */\r\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\r\n return;\r\n }\r\n\r\n const isFirstBlock = BM.currentBlockIndex === 0,\r\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\r\n\r\n /** If current Block is empty just remove this Block */\r\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\r\n this.Editor.BlockManager.removeBlock();\r\n\r\n /**\r\n * in case of last block deletion\r\n * Insert new initial empty block\r\n */\r\n if (this.Editor.BlockManager.blocks.length === 0) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * In case of deletion first block we need to set caret to the current Block\r\n * After BlockManager removes the Block (which is current now),\r\n * pointer that references to the current Block, now points to the Next\r\n */\r\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\r\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\r\n } else {\r\n this.Editor.Caret.navigatePrevious(true);\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n return;\r\n }\r\n\r\n if (!canMergeBlocks) {\r\n return;\r\n }\r\n\r\n // preventing browser default behaviour\r\n event.preventDefault();\r\n\r\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\r\n blockToMerge = BM.currentBlock;\r\n\r\n /**\r\n * Blocks that can be merged:\r\n * 1) with the same Name\r\n * 2) Tool has 'merge' method\r\n *\r\n * other case will handle as usual ARROW LEFT behaviour\r\n */\r\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\r\n if (this.Editor.Caret.navigatePrevious()) {\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\r\n BM.mergeBlocks(targetBlock, blockToMerge)\r\n .then( () => {\r\n /** Restore caret position after merge */\r\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\r\n targetBlock.pluginsContent.normalize();\r\n this.Editor.Toolbar.close();\r\n });\r\n }\r\n\r\n /**\r\n * Handle right and down keyboard keys\r\n */\r\n private arrowRightAndDown(event: KeyboardEvent): void {\r\n if (this.Editor.Caret.navigateNext()) {\r\n /**\r\n * Default behaviour moves cursor by 1 character, we need to prevent it\r\n */\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Handle left and up keyboard keys\r\n */\r\n private arrowLeftAndUp(event: KeyboardEvent): void {\r\n if (this.Editor.Caret.navigatePrevious()) {\r\n /**\r\n * Default behaviour moves cursor by 1 character, we need to prevent it\r\n */\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Default keydown handler\r\n */\r\n private defaultHandler(): void {}\r\n\r\n /**\r\n * Cases when we need to close Toolbar\r\n */\r\n private needToolbarClosing(event) {\r\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\r\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\r\n\r\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\r\n }\r\n\r\n}\r\n","/**\r\n * @class BlockManager\r\n * @classdesc Manage editor`s blocks storage and appearance\r\n *\r\n * @module BlockManager\r\n *\r\n * @version 2.0.0\r\n */\r\n\r\nimport Block from '../block';\r\n\r\n/**\r\n * @typedef {BlockManager} BlockManager\r\n * @property {Number} currentBlockIndex - Index of current working block\r\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\r\n */\r\nexport default class BlockManager extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n /**\r\n * Proxy for Blocks instance {@link Blocks}\r\n *\r\n * @type {Proxy}\r\n * @private\r\n */\r\n this._blocks = null;\r\n\r\n /**\r\n * Index of current working block\r\n *\r\n * @type {number}\r\n * @private\r\n */\r\n this.currentBlockIndex = -1;\r\n }\r\n\r\n /**\r\n * Should be called after Editor.UI preparation\r\n * Define this._blocks property\r\n *\r\n * @returns {Promise}\r\n */\r\n prepare() {\r\n return new Promise(resolve => {\r\n let blocks = new Blocks(this.Editor.UI.nodes.redactor);\r\n\r\n /**\r\n * We need to use Proxy to overload set/get [] operator.\r\n * So we can use array-like syntax to access blocks\r\n *\r\n * @example\r\n * this._blocks[0] = new Block(...);\r\n *\r\n * block = this._blocks[0];\r\n *\r\n * @todo proxy the enumerate method\r\n *\r\n * @type {Proxy}\r\n * @private\r\n */\r\n this._blocks = new Proxy(blocks, {\r\n set: Blocks.set,\r\n get: Blocks.get\r\n });\r\n\r\n resolve();\r\n });\r\n }\r\n\r\n /**\r\n * Creates Block instance by tool name\r\n *\r\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\r\n * @param {Object} data - constructor params\r\n * @param {Object} settings - block settings\r\n *\r\n * @return {Block}\r\n */\r\n composeBlock(toolName, data, settings) {\r\n let toolInstance = this.Editor.Tools.construct(toolName, data),\r\n toolClass = this.Editor.Tools.available[toolName],\r\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\r\n\r\n this.bindEvents(block);\r\n /**\r\n * Apply callback before inserting html\r\n */\r\n block.call('appendCallback', {});\r\n\r\n return block;\r\n }\r\n\r\n /**\r\n * Bind Events\r\n * @param {Object} block\r\n */\r\n bindEvents(block) {\r\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\r\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\r\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\r\n this.Editor.Listeners.on(block.holder, 'dragover', (event) => this.Editor.BlockEvents.dragOver(event));\r\n this.Editor.Listeners.on(block.holder, 'dragleave', (event) => this.Editor.BlockEvents.dragLeave(event));\r\n }\r\n\r\n /**\r\n * Insert new block into _blocks\r\n *\r\n * @param {String} toolName — plugin name, by default method inserts initial block type\r\n * @param {Object} data — plugin data\r\n * @param {Object} settings - default settings\r\n *\r\n * @return {Block}\r\n */\r\n insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\r\n // Increment index before construct,\r\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\r\n let newIndex = ++this.currentBlockIndex;\r\n let block = this.composeBlock(toolName, data, settings);\r\n\r\n this._blocks[newIndex] = block;\r\n return block;\r\n }\r\n\r\n /**\r\n * Always inserts at the end\r\n * @return {Block}\r\n */\r\n insertAtEnd() {\r\n /**\r\n * Define new value for current block index\r\n */\r\n this.currentBlockIndex = this.blocks.length - 1;\r\n\r\n /**\r\n * Insert initial typed block\r\n */\r\n return this.insert();\r\n }\r\n\r\n /**\r\n * Merge two blocks\r\n * @param {Block} targetBlock - previous block will be append to this block\r\n * @param {Block} blockToMerge - block that will be merged with target block\r\n *\r\n * @return {Promise} - the sequence that can be continued\r\n */\r\n mergeBlocks(targetBlock, blockToMerge) {\r\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\r\n\r\n return Promise.resolve()\r\n .then( () => {\r\n if (blockToMerge.isEmpty) {\r\n return;\r\n }\r\n\r\n return blockToMerge.data\r\n .then((blockToMergeInfo) => {\r\n targetBlock.mergeWith(blockToMergeInfo.data);\r\n });\r\n })\r\n .then( () => {\r\n this.removeBlock(blockToMergeIndex);\r\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\r\n });\r\n }\r\n\r\n /**\r\n * Remove block with passed index or remove last\r\n * @param {Number|null} index\r\n */\r\n removeBlock(index) {\r\n if (!index) {\r\n index = this.currentBlockIndex;\r\n }\r\n this._blocks.remove(index);\r\n\r\n /**\r\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\r\n */\r\n if (!this.blocks.length) {\r\n this.currentBlockIndex = -1;\r\n this.insert();\r\n this.currentBlock.firstInput.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Split current Block\r\n * 1. Extract content from Caret position to the Block`s end\r\n * 2. Insert a new Block below current one with extracted content\r\n *\r\n * @return {Block}\r\n */\r\n split() {\r\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\r\n wrapper = $.make('div');\r\n\r\n wrapper.append(extractedFragment);\r\n\r\n /**\r\n * @todo make object in accordance with Tool\r\n */\r\n let data = {\r\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\r\n };\r\n\r\n /**\r\n * Renew current Block\r\n * @type {Block}\r\n */\r\n return this.insert(this.config.initialBlock, data);\r\n }\r\n\r\n /**\r\n * Replace current working block\r\n *\r\n * @param {String} toolName — plugin name\r\n * @param {Object} data — plugin data\r\n *\r\n * @return {Block}\r\n */\r\n replace(toolName, data = {}) {\r\n let block = this.composeBlock(toolName, data);\r\n\r\n this._blocks.insert(this.currentBlockIndex, block, true);\r\n\r\n return block;\r\n }\r\n\r\n /**\r\n * returns last Block\r\n * @return {Block}\r\n */\r\n get lastBlock() {\r\n return this._blocks[this._blocks.length - 1];\r\n }\r\n\r\n /**\r\n * Returns Block by passed index\r\n * @param {Number} index\r\n * @return {Block}\r\n */\r\n getBlockByIndex(index) {\r\n return this._blocks[index];\r\n }\r\n\r\n /**\r\n * Get Block instance by html element\r\n * @param {Node} element\r\n * @returns {Block}\r\n */\r\n getBlock(element) {\r\n if (!$.isElement(element)) {\r\n element = element.parentNode;\r\n }\r\n\r\n let nodes = this._blocks.nodes,\r\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\r\n index = nodes.indexOf(firstLevelBlock);\r\n\r\n if (index >= 0) {\r\n return this._blocks[index];\r\n }\r\n }\r\n\r\n /**\r\n * Get current Block instance\r\n *\r\n * @return {Block}\r\n */\r\n get currentBlock() {\r\n return this._blocks[this.currentBlockIndex];\r\n }\r\n\r\n /**\r\n * Returns next Block instance\r\n * @return {Block|null}\r\n */\r\n get nextBlock() {\r\n let isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\r\n\r\n if (isLastBlock) {\r\n return null;\r\n }\r\n\r\n return this._blocks[this.currentBlockIndex + 1];\r\n }\r\n\r\n /**\r\n * Return first Block with inputs after current Block\r\n *\r\n * @returns {Block | undefined}\r\n */\r\n get nextContentfulBlock() {\r\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\r\n\r\n return nextBlocks.find(block => !!block.inputs.length);\r\n }\r\n\r\n /**\r\n * Return first Block with inputs before current Block\r\n *\r\n * @returns {Block | undefined}\r\n */\r\n get previousContentfulBlock() {\r\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\r\n\r\n return previousBlocks.find(block => !!block.inputs.length);\r\n }\r\n\r\n /**\r\n * Returns previous Block instance\r\n * @return {Block|null}\r\n */\r\n get previousBlock() {\r\n let isFirstBlock = this.currentBlockIndex === 0;\r\n\r\n if (isFirstBlock) {\r\n return null;\r\n }\r\n\r\n return this._blocks[this.currentBlockIndex - 1];\r\n }\r\n\r\n /**\r\n * Remove selection from all Blocks then highlight only Current Block\r\n */\r\n highlightCurrentNode() {\r\n /**\r\n * Remove previous selected Block's state\r\n */\r\n this.clearHighlightings();\r\n\r\n /**\r\n * Mark current Block as selected\r\n * @type {boolean}\r\n */\r\n this.currentBlock.selected = true;\r\n }\r\n\r\n /**\r\n * Remove selection from all Blocks\r\n */\r\n clearHighlightings() {\r\n this.blocks.forEach( block => block.selected = false);\r\n }\r\n\r\n /**\r\n * Get array of Block instances\r\n *\r\n * @returns {Block[]} {@link Blocks#array}\r\n */\r\n get blocks() {\r\n return this._blocks.array;\r\n }\r\n\r\n /**\r\n * 1) Find first-level Block from passed child Node\r\n * 2) Mark it as current\r\n *\r\n * @param {Element|Text} childNode - look ahead from this node.\r\n * @param {string} caretPosition - position where to set caret\r\n * @throws Error - when passed Node is not included at the Block\r\n */\r\n setCurrentBlockByChildNode(childNode, caretPosition = 'default') {\r\n /**\r\n * If node is Text TextNode\r\n */\r\n if (!$.isElement(childNode)) {\r\n childNode = childNode.parentNode;\r\n }\r\n\r\n const parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\r\n\r\n if (parentFirstLevelBlock) {\r\n /**\r\n * Update current Block's index\r\n * @type {number}\r\n */\r\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock);\r\n\r\n this.Editor.Caret.setToInput(childNode, caretPosition);\r\n } else {\r\n throw new Error('Can not find a Block from this child Node');\r\n }\r\n }\r\n\r\n /**\r\n * Return block which contents passed node\r\n *\r\n * @param {Node} childNode\r\n * @return {Block}\r\n */\r\n getBlockByChildNode(childNode) {\r\n /**\r\n * If node is Text TextNode\r\n */\r\n if (!$.isElement(childNode)) {\r\n childNode = childNode.parentNode;\r\n }\r\n\r\n const firstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\r\n\r\n return this.blocks.find(block => block.holder === firstLevelBlock);\r\n }\r\n\r\n /**\r\n * Swap Blocks Position\r\n * @param {Number} fromIndex\r\n * @param {Number} toIndex\r\n */\r\n swap(fromIndex, toIndex) {\r\n /** Move up current Block */\r\n this._blocks.swap(fromIndex, toIndex);\r\n\r\n /** Now actual block moved up so that current block index decreased */\r\n this.currentBlockIndex = toIndex;\r\n }\r\n\r\n /**\r\n * Sets current Block Index -1 which means unknown\r\n * and clear highlightings\r\n */\r\n dropPointer() {\r\n this.currentBlockIndex = -1;\r\n this.clearHighlightings();\r\n }\r\n\r\n /**\r\n * Clears Editor\r\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\r\n * we don't need to add empty initial block\r\n * 2) in api.blocks.clear we should add empty block\r\n */\r\n clear(needAddInitialBlock = false) {\r\n this._blocks.removeAll();\r\n this.dropPointer();\r\n\r\n if (needAddInitialBlock) {\r\n this.insert(this.config.initialBlock);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @class Blocks\r\n * @classdesc Class to work with Block instances array\r\n *\r\n * @private\r\n *\r\n * @property {HTMLElement} workingArea — editor`s working node\r\n *\r\n */\r\nclass Blocks {\r\n /**\r\n * @constructor\r\n *\r\n * @param {HTMLElement} workingArea — editor`s working node\r\n */\r\n constructor(workingArea) {\r\n this.blocks = [];\r\n this.workingArea = workingArea;\r\n }\r\n\r\n /**\r\n * Push back new Block\r\n *\r\n * @param {Block} block\r\n */\r\n push(block) {\r\n this.blocks.push(block);\r\n this.workingArea.appendChild(block.holder);\r\n }\r\n\r\n /**\r\n * Swaps blocks with indexes first and second\r\n * @param {Number} first - first block index\r\n * @param {Number} second - second block index\r\n */\r\n swap(first, second) {\r\n let secondBlock = this.blocks[second];\r\n\r\n /**\r\n * Change in DOM\r\n */\r\n $.swap(this.blocks[first].holder, secondBlock.holder);\r\n\r\n /**\r\n * Change in array\r\n */\r\n this.blocks[second] = this.blocks[first];\r\n this.blocks[first] = secondBlock;\r\n }\r\n\r\n /**\r\n * Insert new Block at passed index\r\n *\r\n * @param {Number} index — index to insert Block\r\n * @param {Block} block — Block to insert\r\n * @param {Boolean} replace — it true, replace block on given index\r\n */\r\n insert(index, block, replace = false) {\r\n if (!this.length) {\r\n this.push(block);\r\n return;\r\n }\r\n\r\n if (index > this.length) {\r\n index = this.length;\r\n }\r\n\r\n if (replace) {\r\n this.blocks[index].holder.remove();\r\n }\r\n\r\n let deleteCount = replace ? 1 : 0;\r\n\r\n this.blocks.splice(index, deleteCount, block);\r\n\r\n if (index > 0) {\r\n let previousBlock = this.blocks[index - 1];\r\n\r\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\r\n } else {\r\n let nextBlock = this.blocks[index + 1];\r\n\r\n if (nextBlock) {\r\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\r\n } else {\r\n this.workingArea.appendChild(block.holder);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Remove block\r\n * @param {Number|null} index\r\n */\r\n remove(index) {\r\n if (isNaN(index)) {\r\n index = this.length - 1;\r\n }\r\n\r\n this.blocks[index].holder.remove();\r\n this.blocks.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Remove all blocks\r\n */\r\n removeAll() {\r\n this.workingArea.innerHTML = '';\r\n this.blocks.length = 0;\r\n }\r\n\r\n /**\r\n * Insert Block after passed target\r\n *\r\n * @todo decide if this method is necessary\r\n *\r\n * @param {Block} targetBlock — target after wich Block should be inserted\r\n * @param {Block} newBlock — Block to insert\r\n */\r\n insertAfter(targetBlock, newBlock) {\r\n let index = this.blocks.indexOf(targetBlock);\r\n\r\n this.insert(index + 1, newBlock);\r\n }\r\n\r\n /**\r\n * Get Block by index\r\n *\r\n * @param {Number} index — Block index\r\n * @returns {Block}\r\n */\r\n get(index) {\r\n return this.blocks[index];\r\n }\r\n\r\n /**\r\n * Return index of passed Block\r\n *\r\n * @param {Block} block\r\n * @returns {Number}\r\n */\r\n indexOf(block) {\r\n return this.blocks.indexOf(block);\r\n }\r\n\r\n /**\r\n * Get length of Block instances array\r\n *\r\n * @returns {Number}\r\n */\r\n get length() {\r\n return this.blocks.length;\r\n }\r\n\r\n /**\r\n * Get Block instances array\r\n *\r\n * @returns {Block[]}\r\n */\r\n get array() {\r\n return this.blocks;\r\n }\r\n\r\n /**\r\n * Get blocks html elements array\r\n *\r\n * @returns {HTMLElement[]}\r\n */\r\n get nodes() {\r\n return _.array(this.workingArea.children);\r\n }\r\n\r\n /**\r\n * Proxy trap to implement array-like setter\r\n *\r\n * @example\r\n * blocks[0] = new Block(...)\r\n *\r\n * @param {Blocks} instance — Blocks instance\r\n * @param {Number|String} index — block index\r\n * @param {Block} block — Block to set\r\n * @returns {Boolean}\r\n */\r\n static set(instance, index, block) {\r\n if (isNaN(Number(index))) {\r\n return false;\r\n }\r\n\r\n instance.insert(index, block);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Proxy trap to implement array-like getter\r\n *\r\n * @param {Blocks} instance — Blocks instance\r\n * @param {Number|String} index — Block index\r\n * @returns {Block|*}\r\n */\r\n static get(instance, index) {\r\n if (isNaN(Number(index))) {\r\n return instance[index];\r\n }\r\n\r\n return instance.get(index);\r\n }\r\n}\r\n","/**\r\n * @class Caret\r\n * @classdesc Contains methods for working Caret\r\n *\r\n * Uses Range methods to manipulate with caret\r\n *\r\n * @module Caret\r\n *\r\n * @version 2.0.0\r\n */\r\n\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @typedef {Caret} Caret\r\n */\r\nexport default class Caret extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Elements styles that can be useful for Caret Module\r\n */\r\n static get CSS() {\r\n return {\r\n shadowCaret: 'cdx-shadow-caret'\r\n };\r\n };\r\n\r\n /**\r\n * Allowed caret positions in input\r\n *\r\n * @static\r\n * @returns {{START: string, END: string, DEFAULT: string}}\r\n */\r\n static get positions() {\r\n return {\r\n START: 'start',\r\n END: 'end',\r\n DEFAULT: 'default'\r\n };\r\n }\r\n\r\n /**\r\n * Method gets Block instance and puts caret to the text node with offset\r\n * There two ways that method applies caret position:\r\n * - first found text node: sets at the beginning, but you can pass an offset\r\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\r\n *\r\n * @param {Block} block - Block class\r\n * @param {String} position - position where to set caret. If default - leave default behaviour and apply offset if it's passed\r\n * @param {Number} offset - caret offset regarding to the text node\r\n */\r\n setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\r\n const {BlockManager} = this.Editor;\r\n let element;\r\n\r\n switch(position) {\r\n case Caret.positions.START:\r\n element = block.firstInput;\r\n break;\r\n case Caret.positions.END:\r\n element = block.lastInput;\r\n break;\r\n default:\r\n element = block.currentInput;\r\n }\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\r\n const contentLength = $.getContentLength(nodeToSet);\r\n\r\n switch (true) {\r\n case position === Caret.positions.START:\r\n offset = 0;\r\n break;\r\n case position === Caret.positions.END:\r\n case offset > contentLength:\r\n offset = contentLength;\r\n break;\r\n }\r\n\r\n /**\r\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\r\n */\r\n _.delay( () => {\r\n this.set(nodeToSet, offset);\r\n }, 20)();\r\n\r\n BlockManager.setCurrentBlockByChildNode(block.holder);\r\n BlockManager.currentBlock.currentInput = element;\r\n }\r\n\r\n /**\r\n * Set caret to the current input of current Block.\r\n *\r\n * @param {HTMLElement} input - input where caret should be set\r\n * @param {String} position - position of the caret. If default - leave default behaviour and apply offset if it's passed\r\n * @param {number} offset - caret offset regarding to the text node\r\n */\r\n setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\r\n const {currentBlock} = this.Editor.BlockManager;\r\n const nodeToSet = $.getDeepestNode(input);\r\n\r\n switch (position) {\r\n case Caret.positions.START:\r\n this.set(nodeToSet, 0);\r\n break;\r\n\r\n case Caret.positions.END:\r\n const contentLength = $.getContentLength(nodeToSet);\r\n\r\n this.set(nodeToSet, contentLength);\r\n break;\r\n\r\n default:\r\n if (offset) {\r\n this.set(nodeToSet, offset);\r\n }\r\n }\r\n\r\n currentBlock.currentInput = input;\r\n }\r\n\r\n /**\r\n * Creates Document Range and sets caret to the element with offset\r\n * @param {Element} element - target node.\r\n * @param {Number} offset - offset\r\n */\r\n set( element, offset = 0) {\r\n const range = document.createRange(),\r\n selection = Selection.get();\r\n\r\n /** if found deepest node is native input */\r\n if ($.isNativeInput(element)) {\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = offset;\r\n return;\r\n }\r\n\r\n range.setStart(element, offset);\r\n range.setEnd(element, offset);\r\n\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n\r\n\r\n /** If new cursor position is not visible, scroll to it */\r\n const {top, bottom} = range.getBoundingClientRect();\r\n const {innerHeight} = window;\r\n\r\n if (top < 0) window.scrollBy(0, top);\r\n if (bottom > innerHeight) window.scrollBy(0, bottom - innerHeight);\r\n };\r\n\r\n /**\r\n * Set Caret to the last Block\r\n * If last block is not empty, append another empty block\r\n */\r\n setToTheLastBlock() {\r\n let lastBlock = this.Editor.BlockManager.lastBlock;\r\n\r\n if (!lastBlock) return;\r\n\r\n /**\r\n * If last block is empty and it is an initialBlock, set to that.\r\n * Otherwise, append new empty block and set to that\r\n */\r\n if (lastBlock.isEmpty) {\r\n this.setToBlock(lastBlock);\r\n } else {\r\n const newBlock = this.Editor.BlockManager.insertAtEnd();\r\n\r\n this.setToBlock(newBlock);\r\n }\r\n }\r\n\r\n /**\r\n * Extract content fragment of current Block from Caret position to the end of the Block\r\n */\r\n extractFragmentFromCaretPosition() {\r\n let selection = Selection.get();\r\n\r\n if (selection.rangeCount) {\r\n const selectRange = selection.getRangeAt(0);\r\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\r\n\r\n\r\n selectRange.deleteContents();\r\n\r\n if (currentBlockInput) {\r\n let range = selectRange.cloneRange(true);\r\n\r\n range.selectNodeContents(currentBlockInput);\r\n range.setStart(selectRange.endContainer, selectRange.endOffset);\r\n return range.extractContents();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\r\n * Then you can check it for emptiness\r\n *\r\n * @example\r\n *

    \r\n *\r\n * @return {Element[]}\r\n */\r\n getHigherLevelSiblings(from, direction ) {\r\n let current = from,\r\n siblings = [];\r\n\r\n /**\r\n * Find passed node's firs-level parent (in example - blockquote)\r\n */\r\n while (current.parentNode && current.parentNode.contentEditable !== 'true') {\r\n current = current.parentNode;\r\n }\r\n\r\n let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\r\n\r\n /**\r\n * Find all left/right siblings\r\n */\r\n while (current[sibling]) {\r\n current = current[sibling];\r\n siblings.push(current);\r\n }\r\n\r\n return siblings;\r\n }\r\n\r\n /**\r\n * Set's caret to the next Block or Tool`s input\r\n * Before moving caret, we should check if caret position is at the end of Plugins node\r\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\r\n *\r\n * @param {Boolean} force - force navigation even if caret is not at the end\r\n *\r\n * @return {Boolean}\r\n */\r\n navigateNext(force = false) {\r\n const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;\r\n const {nextInput} = currentBlock;\r\n\r\n if (!nextContentfulBlock && !nextInput) {\r\n return false;\r\n }\r\n\r\n if (force) {\r\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\r\n return true;\r\n }\r\n\r\n if (this.isAtEnd) {\r\n /** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */\r\n if (!nextInput) {\r\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\r\n } else {\r\n this.setToInput(nextInput, Caret.positions.START);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Set's caret to the previous Tool`s input or Block\r\n * Before moving caret, we should check if caret position is start of the Plugins node\r\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\r\n *\r\n * @param {Boolean} force - force navigation even if caret is not at the start\r\n *\r\n * @return {Boolean}\r\n */\r\n navigatePrevious(force = false) {\r\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\r\n const {previousInput} = currentBlock || {};\r\n\r\n if (!previousContentfulBlock && !previousInput) {\r\n return false;\r\n }\r\n\r\n if (force) {\r\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\r\n }\r\n\r\n if (this.isAtStart) {\r\n /** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */\r\n if (!previousInput) {\r\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\r\n } else {\r\n this.setToInput(previousInput, Caret.positions.END);\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Get's deepest first node and checks if offset is zero\r\n * @return {boolean}\r\n */\r\n get isAtStart() {\r\n /**\r\n * Don't handle ranges\r\n */\r\n if (!Selection.isCollapsed) {\r\n return false;\r\n }\r\n\r\n let selection = Selection.get(),\r\n anchorNode = selection.anchorNode,\r\n firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);\r\n\r\n /** In case lastNode is native input */\r\n if ($.isNativeInput(firstNode)) {\r\n return firstNode.selectionEnd === 0;\r\n }\r\n\r\n /**\r\n * Workaround case when caret in the text like \" |Hello!\"\r\n * selection.anchorOffset is 1, but real caret visible position is 0\r\n * @type {number}\r\n */\r\n let firstLetterPosition = anchorNode.textContent.search(/\\S/);\r\n\r\n if (firstLetterPosition === -1) { // empty text\r\n firstLetterPosition = 0;\r\n }\r\n\r\n /**\r\n * In case of\r\n *
    \r\n *

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

    <-- first (and deepest) node is \r\n *
    \r\n */\r\n if ($.isEmpty(lastNode)) {\r\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'right'),\r\n nothingAtRight = leftSiblings.every( node => $.isEmpty(node) );\r\n\r\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Workaround case:\r\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\r\n * Why not regular .trim():\r\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\r\n */\r\n let rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\r\n\r\n /**\r\n * We use >= comparison for case:\r\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\r\n */\r\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\r\n }\r\n\r\n /**\r\n * Inserts shadow element after passed element where caret can be placed\r\n * @param {Node} element\r\n */\r\n createShadow(element) {\r\n let shadowCaret = document.createElement('span');\r\n\r\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\r\n element.insertAdjacentElement('beforeEnd', shadowCaret);\r\n }\r\n\r\n /**\r\n * Restores caret position\r\n * @param {Node} element\r\n */\r\n restoreCaret(element) {\r\n let shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\r\n\r\n if (!shadowCaret) {\r\n return;\r\n }\r\n\r\n /**\r\n * After we set the caret to the required place\r\n * we need to clear shadow caret\r\n *\r\n * - make new range\r\n * - select shadowed span\r\n * - use extractContent to remove it from DOM\r\n */\r\n let sel = new Selection();\r\n\r\n sel.expandToTag(shadowCaret);\r\n\r\n setTimeout(() => {\r\n let newRange = document.createRange();\r\n\r\n newRange.selectNode(shadowCaret);\r\n newRange.extractContents();\r\n }, 50);\r\n }\r\n}\r\n","import SelectionUtils from '../selection';\r\n\r\ndeclare var Module: any;\r\n\r\nexport default class DragNDrop extends Module {\r\n\r\n /**\r\n * If drag has been started at editor, we save it\r\n *\r\n * @type Boolean\r\n * @private\r\n */\r\n private isStartedAtEditor = false;\r\n\r\n /**\r\n * Bind events\r\n *\r\n * @private\r\n */\r\n public prepare(): void {\r\n this.bindEvents();\r\n }\r\n\r\n /**\r\n * Add drag events listeners to editor zone\r\n * @private\r\n */\r\n private bindEvents(): void {\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\r\n\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\r\n\r\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\r\n this.isStartedAtEditor = true;\r\n }\r\n\r\n this.Editor.InlineToolbar.close();\r\n });\r\n\r\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\r\n }\r\n\r\n /**\r\n * Handle drop event\r\n *\r\n * @param {DragEvent} dropEvent\r\n */\r\n private processDrop = async (dropEvent: DragEvent): Promise => {\r\n const {\r\n BlockManager,\r\n Paste,\r\n } = this.Editor;\r\n\r\n dropEvent.preventDefault();\r\n\r\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\r\n\r\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\r\n document.execCommand('delete');\r\n }\r\n\r\n this.isStartedAtEditor = false;\r\n\r\n /**\r\n * Try to set current block by drop target.\r\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\r\n */\r\n try {\r\n BlockManager.setCurrentBlockByChildNode(dropEvent.target, 'end');\r\n } catch (e) {\r\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, 'end');\r\n }\r\n\r\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\r\n }\r\n}\r\n","/**\r\n * @module eventDispatcher\r\n *\r\n * Has two important methods:\r\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\r\n * - {Function} emit - fires all subscribers with data\r\n * - {Function off - unsubsribes callback\r\n *\r\n * @version 1.0.0\r\n *\r\n * @typedef {Events} Events\r\n * @property {Object} subscribers - all subscribers grouped by event name\r\n */\r\nexport default class Events extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.subscribers = {};\r\n }\r\n\r\n /**\r\n * Subscribe any event on callback\r\n *\r\n * @param {String} eventName - event name\r\n * @param {Function} callback - subscriber\r\n */\r\n on(eventName, callback) {\r\n if (!(eventName in this.subscribers)) {\r\n this.subscribers[eventName] = [];\r\n }\r\n\r\n // group by events\r\n this.subscribers[eventName].push(callback);\r\n }\r\n\r\n /**\r\n * Emit callbacks with passed data\r\n *\r\n * @param {String} eventName - event name\r\n * @param {Object} data - subscribers get this data when they were fired\r\n */\r\n emit(eventName, data) {\r\n if (!this.subscribers[eventName]) {\r\n return;\r\n }\r\n\r\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\r\n let newData = currentHandler(previousData);\r\n\r\n return newData ? newData : previousData;\r\n }, data);\r\n }\r\n\r\n /**\r\n * Unsubsribe callback from event\r\n *\r\n * @param eventName\r\n * @param callback\r\n */\r\n off(eventName, callback) {\r\n for(let i = 0; i < this.subscribers[eventName].length; i++) {\r\n if (this.subscribers[eventName][i] === callback) {\r\n delete this.subscribers[eventName][i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Destroyer\r\n * clears subsribers list\r\n */\r\n destroy() {\r\n this.subscribers = null;\r\n }\r\n}\r\n","/**\r\n * Codex Editor Listeners module\r\n *\r\n * @module Listeners\r\n *\r\n * Module-decorator for event listeners assignment\r\n *\r\n * @author Codex Team\r\n * @version 2.0.0\r\n */\r\n\r\n/**\r\n * @typedef {Listeners} Listeners\r\n * @property {Array} allListeners\r\n */\r\nexport default class Listeners extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.allListeners = [];\r\n }\r\n\r\n /**\r\n * Assigns event listener on element\r\n *\r\n * @param {Element} element - DOM element that needs to be listened\r\n * @param {String} eventType - event type\r\n * @param {Function} handler - method that will be fired on event\r\n * @param {Boolean} useCapture - use event bubbling\r\n */\r\n on(element, eventType, handler, useCapture = false) {\r\n let assignedEventData = {\r\n element,\r\n eventType,\r\n handler,\r\n useCapture\r\n };\r\n\r\n let alreadyExist = this.findOne(element, eventType, handler);\r\n\r\n if (alreadyExist) return;\r\n\r\n this.allListeners.push(assignedEventData);\r\n element.addEventListener(eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Removes event listener from element\r\n *\r\n * @param {Element} element - DOM element that we removing listener\r\n * @param {String} eventType - event type\r\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\r\n * @param {Boolean} useCapture - use event bubbling\r\n */\r\n off(element, eventType, handler, useCapture = false) {\r\n let existingListeners = this.findAll(element, eventType, handler);\r\n\r\n for (let i = 0; i < existingListeners.length; i++) {\r\n let index = this.allListeners.indexOf(existingListeners[i]);\r\n\r\n if (index > 0) {\r\n this.allListeners.splice(index, 1);\r\n }\r\n }\r\n\r\n element.removeEventListener(eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed element\r\n * @param {Element} element - searching element\r\n * @returns {Array} listeners that found on element\r\n */\r\n findByElement(element) {\r\n let listenersOnElement = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.element === element) {\r\n listenersOnElement.push(listener);\r\n }\r\n }\r\n\r\n return listenersOnElement;\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed event type\r\n * @param {String} eventType\r\n * @return {Array} listeners that found on element\r\n */\r\n findByType(eventType) {\r\n let listenersWithType = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.type === eventType) {\r\n listenersWithType.push(listener);\r\n }\r\n }\r\n\r\n return listenersWithType;\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed handler\r\n * @param {Function} handler\r\n * @return {Array} listeners that found on element\r\n */\r\n findByHandler(handler) {\r\n let listenersWithHandler = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.handler === handler) {\r\n listenersWithHandler.push(listener);\r\n }\r\n }\r\n\r\n return listenersWithHandler;\r\n }\r\n\r\n /**\r\n * @param {Element} element\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n * @return {Element|null}\r\n */\r\n findOne(element, eventType, handler) {\r\n let foundListeners = this.findAll(element, eventType, handler);\r\n\r\n return foundListeners.length > 0 ? foundListeners[0] : null;\r\n }\r\n\r\n /**\r\n * @param {Element} element\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n * @return {Array}\r\n */\r\n findAll(element, eventType, handler) {\r\n let found,\r\n foundByElements = element ? this.findByElement(element) : [];\r\n // foundByEventType = eventType ? this.findByType(eventType) : [],\r\n // foundByHandler = handler ? this.findByHandler(handler) : [];\r\n\r\n if (element && eventType && handler) {\r\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\r\n } else if (element && eventType) {\r\n found = foundByElements.filter( event => event.eventType === eventType);\r\n } else {\r\n found = foundByElements;\r\n }\r\n\r\n return found;\r\n }\r\n\r\n /**\r\n * Removes all listeners\r\n */\r\n removeAll() {\r\n this.allListeners.map( (current) => {\r\n current.element.removeEventListener(current.eventType, current.handler);\r\n });\r\n\r\n this.allListeners = [];\r\n }\r\n}\r\n","/**\r\n * @module ModificationsObserver\r\n *\r\n * Handles any mutations\r\n * and gives opportunity to handle outside\r\n */\r\n\r\nimport IEditorConfig from '../interfaces/editor-config';\r\n\r\ndeclare const Module: any;\r\ndeclare const _: any;\r\n\r\nexport default class ModificationsObserver extends Module {\r\n\r\n /**\r\n * Debounce Timer\r\n * @type {number}\r\n */\r\n public static readonly DebounceTimer = 450;\r\n\r\n /**\r\n * Used to prevent several mutation callback execution\r\n * @type {Function}\r\n */\r\n private mutationDebouncer = _.debounce( () => {\r\n this.config.onChange.call();\r\n }, ModificationsObserver.DebounceTimer);\r\n\r\n /**\r\n * Constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Clear timeout and set null to mutationDebouncer property\r\n */\r\n public destroy() {\r\n this.mutationDebouncer = null;\r\n }\r\n\r\n /**\r\n * Preparation method\r\n * @return {Promise}\r\n */\r\n public async prepare(): Promise {\r\n /**\r\n * wait till Browser render Editor's Blocks\r\n */\r\n window.setTimeout( () => {\r\n this.setObserver();\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * setObserver\r\n *\r\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\r\n * so that User can handle outside from API\r\n */\r\n private setObserver(): void {\r\n const {Listeners, UI} = this.Editor;\r\n\r\n /**\r\n * Set Listener to the Editor
    element that holds only Blocks\r\n */\r\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\r\n this.mutationDebouncer();\r\n }, false);\r\n }\r\n}\r\n","import IBlockToolData from '../interfaces/tools/block-tool';\nimport IEditorConfig from '../interfaces/editor-config';\nimport CaretClass from './caret';\nimport SelectionUtils from '../selection';\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 * Files` types substitutions object.\n *\n * @param {string[]} extensions - array of extenstions Tool can handle\n * @param {string[]} mimeTypes - array of MIME types Tool can handle\n * @param {Function} handler - callback to handle pasted File\n */\ninterface IFilesSubstitution {\n extensions: string[];\n mimeTypes: string[];\n handler: (file: File) => IBlockToolData;\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/**\n * Tool onPaste configuration object\n */\ninterface IPasteConfig {\n tags?: string[];\n handler?: (element: HTMLElement) => IBlockToolData;\n patterns?: {[key: string]: RegExp};\n patternHandler?: (text: string, key: string) => IBlockToolData;\n files?: {extensions?: string[], mimeTypes?: string[]};\n fileHandler?: (file: File) => IBlockToolData;\n}\n\n/**\n * @class Paste\n * @classdesc Contains methods to handle paste on editor\n *\n * @module Paste\n *\n * @version 2.0.0\n */\nexport default class Paste extends Module {\n\n /** If string`s length is greater than this number we don't check paste patterns */\n public static readonly PATTERN_PROCESSING_MAX_LENGTH = 450;\n\n /**\n * Tags` substitutions parameters\n */\n private toolsTags: {[tag: string]: ITagSubstitute} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: IPatternSubstitute[] = [];\n\n /** Files` substitutions parameters */\n private toolsFiles: {\n [tool: string]: IFilesSubstitution,\n } = {};\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Set onPaste callback and collect tools` paste configurations\n *\n * @public\n */\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\n }\n\n /**\n * Handle pasted or dropped data transfer object\n *\n * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object\n */\n public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise {\n const { Sanitizer } = this.Editor;\n\n if (dataTransfer.types.includes('Files')) {\n await this.processFiles(dataTransfer.items);\n return;\n }\n\n const plainData = dataTransfer.getData('text/plain');\n let htmlData = dataTransfer.getData('text/html');\n\n /**\n * If text was drag'n'dropped, wrap content with P tag to insert it as the new Block\n */\n if (isDragNDrop && plainData.trim() && htmlData.trim()) {\n htmlData = '

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

    ';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.defaultConfig.tags);\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (this.config.initialBlock === name && !toolPasteConfig.handler) {\n _.log(\n `«${name}» Tool must provide a paste handler.`,\n 'warn',\n );\n }\n\n if (!toolPasteConfig.handler) {\n return;\n }\n\n if (typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: IPasteConfig): void {\n\n const {fileHandler, files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!fileHandler || (!extensions && !mimeTypes)) {\n return;\n }\n\n if (typeof fileHandler !== 'function') {\n _.log(`Drop handler for «${name}» Tool should be a function.`);\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n handler: fileHandler,\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n if (typeof toolPasteConfig.patternHandler !== 'function') {\n _.log(\n `Pattern parser for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n handler: toolPasteConfig.patternHandler,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise => {\n const {\n Editor: {Sanitizer, BlockManager, Tools, Caret},\n } = this;\n\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {DataTransferItemList} items - pasted or dropped items\n */\n private async processFiles(items: DataTransferItemList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, data: IBlockToolData}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.replace(data.type, data.data);\n return;\n }\n\n BlockManager.insert(data.type, data.data);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {DataTransferItem} item\n */\n private async processFile(item: DataTransferItem) {\n if (item.kind === 'string') {\n return;\n }\n\n const file = item.getAsFile();\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool, {handler}] = foundConfig;\n return {\n data: await handler(file),\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n /**\n * If caret not at the end of of the Block and there is no selection,\n * we split the Block and insert content at the middle.\n */\n if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) {\n this.splitBlock();\n }\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {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 = 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) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {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\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n return {content, tool, isBlock: false, handler};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {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 insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n /** 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 * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n /** 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","/**\r\n * Codex Editor Renderer Module\r\n *\r\n * @module Renderer\r\n * @author CodeX Team\r\n *\r\n * @version 2.0.0\r\n */\r\nexport default class Renderer extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * @typedef {Object} RendererBlocks\r\n * @property {String} type - tool name\r\n * @property {Object} data - tool data\r\n */\r\n\r\n /**\r\n * @example\r\n *\r\n * blocks: [\r\n * {\r\n * type : 'paragraph',\r\n * data : {\r\n * text : 'Hello from Codex!'\r\n * }\r\n * },\r\n * {\r\n * type : 'paragraph',\r\n * data : {\r\n * text : 'Leave feedback if you like it!'\r\n * }\r\n * },\r\n * ]\r\n *\r\n */\r\n\r\n /**\r\n * Make plugin blocks from array of plugin`s data\r\n * @param {RendererBlocks[]} blocks\r\n */\r\n render(blocks) {\r\n let chainData = [];\r\n\r\n for (let i = 0; i < blocks.length; i++) {\r\n chainData.push({\r\n function: () => this.insertBlock(blocks[i])\r\n });\r\n }\r\n\r\n return _.sequence(chainData);\r\n }\r\n\r\n /**\r\n * Get plugin instance\r\n * Add plugin instance to BlockManager\r\n * Insert block to working zone\r\n *\r\n * @param {Object} item\r\n * @returns {Promise.}\r\n * @private\r\n */\r\n insertBlock(item) {\r\n let tool = item.type,\r\n data = item.data,\r\n settings = item.settings;\r\n\r\n if (tool in this.Editor.Tools.available) {\r\n try {\r\n this.Editor.BlockManager.insert(tool, data, settings);\r\n } catch (error) {\r\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\r\n Promise.reject(error);\r\n }\r\n } else {\r\n /**\r\n * @todo show warning notification message\r\n *\r\n * `${tool} blocks was skipped.`\r\n */\r\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n}\r\n","/**\r\n * CodeX Sanitizer\r\n *\r\n * @module Sanitizer\r\n * Clears HTML from taint tags\r\n *\r\n * @version 2.0.0\r\n *\r\n * @example\r\n * Module can be used within two ways:\r\n * 1) When you have an instance\r\n * - this.Editor.Sanitizer.clean(yourTaintString);\r\n * 2) As static method\r\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\r\n *\r\n * {@link SanitizerConfig}\r\n */\r\n\r\n\r\n/**\r\n * @typedef {Object} SanitizerConfig\r\n * @property {Object} tags - define tags restrictions\r\n *\r\n * @example\r\n *\r\n * tags : {\r\n * p: true,\r\n * a: {\r\n * href: true,\r\n * rel: \"nofollow\",\r\n * target: \"_blank\"\r\n * }\r\n * }\r\n */\r\nexport default class Sanitizer extends Module {\r\n /**\r\n * Initializes Sanitizer module\r\n * Sets default configuration if custom not exists\r\n *\r\n * @property {SanitizerConfig} this.defaultConfig\r\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\r\n *\r\n * @param {SanitizerConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this._sanitizerInstance = null;\r\n\r\n /** Custom configuration */\r\n this.sanitizerConfig = config.settings ? config.settings.sanitizer : null;\r\n\r\n /** HTML Janitor library */\r\n this.sanitizerInstance = require('html-janitor');\r\n }\r\n\r\n /**\r\n * If developer uses editor's API, then he can customize sanitize restrictions.\r\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\r\n * At least, if there is no config overrides, that API uses Default configuration\r\n *\r\n * @uses https://www.npmjs.com/package/html-janitor\r\n *\r\n * @param {HTMLJanitor} library - sanitizer extension\r\n */\r\n set sanitizerInstance(library) {\r\n if (this.sanitizerConfig) {\r\n this._sanitizerInstance = new library(this.sanitizerConfig);\r\n }\r\n\r\n return this._sanitizerInstance;\r\n }\r\n\r\n /**\r\n * Sets sanitizer configuration. Uses default config if user didn't pass the restriction\r\n */\r\n get defaultConfig() {\r\n return {\r\n tags: {\r\n p: {},\r\n a: {\r\n href: true,\r\n target: '_blank',\r\n rel: 'nofollow'\r\n },\r\n b: {},\r\n i: {}\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Return sanitizer instance\r\n * @return {null|library}\r\n */\r\n get sanitizerInstance() {\r\n return this._sanitizerInstance;\r\n }\r\n\r\n /**\r\n * Cleans string from unwanted tags\r\n * @param {String} taintString - HTML string\r\n * @param {Object} customConfig - custom sanitizer configuration. Method uses default if param is empty\r\n * @return {String} clean HTML\r\n */\r\n clean(taintString, customConfig) {\r\n if (customConfig && typeof customConfig === 'object') {\r\n /**\r\n * API client can use custom config to manage sanitize process\r\n */\r\n let newConfig = {\r\n tags: customConfig\r\n };\r\n\r\n return Sanitizer.clean(taintString, newConfig);\r\n } else {\r\n /**\r\n * Ignore sanitizing when nothing passed in config\r\n */\r\n if (!this.sanitizerInstance) {\r\n return taintString;\r\n } else {\r\n return this.sanitizerInstance.clean(taintString);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Cleans string from unwanted tags\r\n * @static\r\n *\r\n * Method allows to use default config\r\n *\r\n * @param {String} taintString - taint string\r\n * @param {SanitizerConfig} customConfig - allowed tags\r\n *\r\n * @return {String} clean HTML\r\n */\r\n static clean(taintString, customConfig) {\r\n let newInstance = new Sanitizer({\r\n config: {\r\n settings: {\r\n sanitizer: customConfig\r\n }\r\n }\r\n });\r\n\r\n return newInstance.clean(taintString);\r\n }\r\n}\r\n","/**\r\n * Codex Editor Saver\r\n *\r\n * @module Saver\r\n * @author Codex Team\r\n * @version 2.0.0\r\n */\r\n\r\n/**\r\n * @typedef {Object} SavedData\r\n * @property {Date} time - saving proccess time\r\n * @property {Object} items - extracted data\r\n * @property {String} version - CodexEditor version\r\n */\r\n\r\n/**\r\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\r\n *\r\n * @typedef {Saver} Saver\r\n * @property {Element} html - Editor HTML content\r\n * @property {String} json - Editor JSON output\r\n */\r\nexport default class Saver extends Module {\r\n /**\r\n * @constructor\r\n * @param config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.output = null;\r\n this.blocksData = [];\r\n }\r\n\r\n /**\r\n * Composes new chain of Promises to fire them alternatelly\r\n * @return {SavedData}\r\n */\r\n save() {\r\n let blocks = this.Editor.BlockManager.blocks,\r\n chainData = [];\r\n\r\n blocks.forEach((block) => {\r\n chainData.push(block.data);\r\n });\r\n\r\n return Promise.all(chainData)\r\n .then((allExtractedData) => this.makeOutput(allExtractedData))\r\n .then((outputData) => {\r\n return outputData;\r\n });\r\n }\r\n\r\n /**\r\n * Creates output object with saved data, time and version of editor\r\n * @param {Object} allExtractedData\r\n * @return {SavedData}\r\n */\r\n makeOutput(allExtractedData) {\r\n let blocks = [],\r\n totalTime = 0;\r\n\r\n console.groupCollapsed('[CodexEditor saving]:');\r\n\r\n allExtractedData.forEach((extraction) => {\r\n /** Group process info */\r\n console.log(`«${extraction.tool}» saving info`, extraction);\r\n totalTime += extraction.time;\r\n blocks.push({\r\n type: extraction.tool,\r\n data: extraction.data\r\n });\r\n });\r\n\r\n console.log('Total', totalTime);\r\n console.groupEnd();\r\n\r\n return {\r\n time: +new Date(),\r\n blocks: blocks,\r\n version: VERSION,\r\n };\r\n }\r\n}\r\n\r\n// module.exports = (function (saver) {\r\n//\r\n// let editor = codex.editor;\r\n//\r\n// /**\r\n// * @public\r\n// * Save blocks\r\n// */\r\n// saver.save = function () {\r\n//\r\n// /** Save html content of redactor to memory */\r\n// editor.state.html = editor.nodes.redactor.innerHTML;\r\n//\r\n// /** Clean jsonOutput state */\r\n// editor.state.jsonOutput = [];\r\n//\r\n// return saveBlocks(editor.nodes.redactor.childNodes);\r\n//\r\n// };\r\n//\r\n// /**\r\n// * @private\r\n// * Save each block data\r\n// *\r\n// * @param blocks\r\n// * @returns {Promise.}\r\n// */\r\n// let saveBlocks = function (blocks) {\r\n//\r\n// let data = [];\r\n//\r\n// for(let index = 0; index < blocks.length; index++) {\r\n//\r\n// data.push(getBlockData(blocks[index]));\r\n//\r\n// }\r\n//\r\n// return Promise.all(data)\r\n// .then(makeOutput)\r\n// .catch(editor.core.log);\r\n//\r\n// };\r\n//\r\n// /** Save and validate block data */\r\n// let getBlockData = function (block) {\r\n//\r\n// return saveBlockData(block)\r\n// .then(validateBlockData)\r\n// .catch(editor.core.log);\r\n//\r\n// };\r\n//\r\n// /**\r\n// * @private\r\n// * Call block`s plugin save method and return saved data\r\n// *\r\n// * @param block\r\n// * @returns {Object}\r\n// */\r\n// let saveBlockData = function (block) {\r\n//\r\n// let pluginName = block.dataset.tool;\r\n//\r\n// /** Check for plugin existence */\r\n// if (!editor.tools[pluginName]) {\r\n//\r\n// editor.core.log(`Plugin «${pluginName}» not found`, 'error');\r\n// return {data: null, pluginName: null};\r\n//\r\n// }\r\n//\r\n// /** Check for plugin having save method */\r\n// if (typeof editor.tools[pluginName].save !== 'function') {\r\n//\r\n// editor.core.log(`Plugin «${pluginName}» must have save method`, 'error');\r\n// return {data: null, pluginName: null};\r\n//\r\n// }\r\n//\r\n// /** Result saver */\r\n// let blockContent = block.childNodes[0],\r\n// pluginsContent = blockContent.childNodes[0],\r\n// position = pluginsContent.dataset.inputPosition;\r\n//\r\n// /** If plugin wasn't available then return data from cache */\r\n// if ( editor.tools[pluginName].available === false ) {\r\n//\r\n// return Promise.resolve({data: codex.editor.state.blocks.items[position].data, pluginName});\r\n//\r\n// }\r\n//\r\n// return Promise.resolve(pluginsContent)\r\n// .then(editor.tools[pluginName].save)\r\n// .then(data => Object({data, pluginName}));\r\n//\r\n// };\r\n//\r\n// /**\r\n// * Call plugin`s validate method. Return false if validation failed\r\n// *\r\n// * @param data\r\n// * @param pluginName\r\n// * @returns {Object|Boolean}\r\n// */\r\n// let validateBlockData = function ({data, pluginName}) {\r\n//\r\n// if (!data || !pluginName) {\r\n//\r\n// return false;\r\n//\r\n// }\r\n//\r\n// if (editor.tools[pluginName].validate) {\r\n//\r\n// let result = editor.tools[pluginName].validate(data);\r\n//\r\n// /**\r\n// * Do not allow invalid data\r\n// */\r\n// if (!result) {\r\n//\r\n// return false;\r\n//\r\n// }\r\n//\r\n// }\r\n//\r\n// return {data, pluginName};\r\n//\r\n//\r\n// };\r\n//\r\n// /**\r\n// * Compile article output\r\n// *\r\n// * @param savedData\r\n// * @returns {{time: number, version, items: (*|Array)}}\r\n// */\r\n// let makeOutput = function (savedData) {\r\n//\r\n// savedData = savedData.filter(blockData => blockData);\r\n//\r\n// let items = savedData.map(blockData => Object({type: blockData.pluginName, data: blockData.data}));\r\n//\r\n// editor.state.jsonOutput = items;\r\n//\r\n// return {\r\n// id: editor.state.blocks.id || null,\r\n// time: +new Date(),\r\n// version: editor.version,\r\n// items\r\n// };\r\n//\r\n// };\r\n//\r\n// return saver;\r\n//\r\n// })({});\r\n","\r\nimport Shortcut from '@codexteam/shortcuts';\r\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\r\nimport IEditorConfig from '../interfaces/editor-config';\r\n\r\n/**\r\n * Contains keyboard and mouse events binded on each Block by Block Manager\r\n */\r\ndeclare var Module: any;\r\n\r\n/**\r\n * @class Shortcut\r\n * @classdesc Allows to register new shortcut\r\n *\r\n * Internal Shortcuts Module\r\n */\r\nexport default class Shortcuts extends Module implements IShortcuts {\r\n /**\r\n * All registered shortcuts\r\n * @type {IShortcut[]}\r\n */\r\n private registeredShortcuts: IShortcut[];\r\n\r\n /**\r\n * @constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.registeredShortcuts = [];\r\n }\r\n\r\n /**\r\n * Register shortcut\r\n * @param {IShortcut} shortcut\r\n */\r\n public add(shortcut: IShortcut): void {\r\n const newShortcut = new Shortcut({\r\n name: shortcut.name,\r\n on: document,\r\n callback: shortcut.handler,\r\n });\r\n\r\n this.registeredShortcuts.push(newShortcut);\r\n }\r\n\r\n /**\r\n * Remove shortcut\r\n * @param {IShortcut} shortcut\r\n */\r\n public remove(shortcut: string): void {\r\n // Remove\r\n }\r\n}\r\n","/**\r\n * Block Settings\r\n *\r\n * ____ Settings Panel ____\r\n * | ...................... |\r\n * | . Tool Settings . |\r\n * | ...................... |\r\n * | . Default Settings . |\r\n * | ...................... |\r\n * |________________________|\r\n */\r\nexport default class BlockSettings extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n wrapper: null,\r\n toolSettings: null,\r\n defaultSettings: null\r\n };\r\n }\r\n\r\n /**\r\n * Module Events\r\n * @return {{opened: string, closed: string}}\r\n */\r\n get events() {\r\n return {\r\n opened: 'block-settings-opened',\r\n closed: 'block-settings-closed',\r\n };\r\n }\r\n\r\n /**\r\n * Block Settings CSS\r\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\r\n */\r\n static get CSS() {\r\n return {\r\n // Settings Panel\r\n wrapper: 'ce-settings',\r\n wrapperOpened: 'ce-settings--opened',\r\n toolSettings: 'ce-settings__plugin-zone',\r\n defaultSettings: 'ce-settings__default-zone',\r\n\r\n button: 'ce-settings__button'\r\n };\r\n }\r\n\r\n /**\r\n * Panel with block settings with 2 sections:\r\n * - Tool's Settings\r\n * - Default Settings [Move, Remove, etc]\r\n *\r\n * @return {Element}\r\n */\r\n make() {\r\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\r\n\r\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\r\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\r\n\r\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\r\n }\r\n\r\n /**\r\n * Add Tool's settings\r\n */\r\n addToolSettings() {\r\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\r\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\r\n }\r\n }\r\n\r\n /**\r\n * Add default settings\r\n */\r\n addDefaultSettings() {\r\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\r\n }\r\n\r\n /**\r\n * Is Block Settings opened or not\r\n * @returns {boolean}\r\n */\r\n get opened() {\r\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\r\n }\r\n\r\n /**\r\n * Open Block Settings pane\r\n */\r\n open() {\r\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\r\n\r\n /**\r\n * Fill Tool's settings\r\n */\r\n this.addToolSettings();\r\n\r\n /**\r\n * Add default settings that presents for all Blocks\r\n */\r\n this.addDefaultSettings();\r\n\r\n /** Tell to subscribers that block settings is opened */\r\n this.Editor.Events.emit(this.events.opened);\r\n }\r\n\r\n /**\r\n * Close Block Settings pane\r\n */\r\n close() {\r\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\r\n\r\n /** Clear settings */\r\n this.nodes.toolSettings.innerHTML = '';\r\n this.nodes.defaultSettings.innerHTML = '';\r\n\r\n /** Tell to subscribers that block settings is closed */\r\n this.Editor.Events.emit(this.events.closed);\r\n }\r\n}\r\n","declare var Module: any;\r\ndeclare var $: any;\r\n\r\nimport BoldInlineTool from '../inline-tools/inline-tool-bold';\r\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\r\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\r\nimport EditorConfig from '../interfaces/editor-config';\r\nimport InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\nimport _ from '../utils';\r\n\r\n/**\r\n * Inline toolbar with actions that modifies selected text fragment\r\n *\r\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\r\n * | B i [link] [mark] |\r\n * |________________________|\r\n */\r\nexport default class InlineToolbar extends Module {\r\n\r\n /**\r\n * CSS styles\r\n */\r\n public CSS = {\r\n inlineToolbar: 'ce-inline-toolbar',\r\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\r\n buttonsWrapper: 'ce-inline-toolbar__buttons',\r\n actionsWrapper: 'ce-inline-toolbar__actions',\r\n inlineToolButton: 'ce-inline-tool',\r\n inlineToolButtonLast: 'ce-inline-tool--last',\r\n };\r\n\r\n /**\r\n * Inline Toolbar elements\r\n */\r\n private nodes = {\r\n wrapper: null,\r\n buttons: null,\r\n /**\r\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\r\n * For example, input for the 'link' tool or textarea for the 'comment' tool\r\n */\r\n actions: null,\r\n };\r\n\r\n /**\r\n * Margin above/below the Toolbar\r\n */\r\n private readonly toolbarVerticalMargin: number = 20;\r\n\r\n /**\r\n * Tools instances\r\n */\r\n private toolsInstances: Map;\r\n\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Inline Toolbar Tools\r\n * includes internal and external tools\r\n *\r\n * @returns Map\r\n */\r\n get tools(): Map {\r\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\r\n const allTools = {...this.internalTools, ...this.externalTools};\r\n\r\n this.toolsInstances = new Map();\r\n for (const tool in allTools) {\r\n if (allTools.hasOwnProperty(tool)) {\r\n this.toolsInstances.set(tool, allTools[tool]);\r\n }\r\n }\r\n }\r\n\r\n return this.toolsInstances;\r\n }\r\n\r\n /**\r\n * Making DOM\r\n */\r\n public make() {\r\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\r\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\r\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\r\n\r\n /**\r\n * Append Inline Toolbar to the Editor\r\n */\r\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\r\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\r\n\r\n /**\r\n * Append Inline Toolbar Tools\r\n */\r\n this.addTools();\r\n\r\n }\r\n\r\n /**\r\n * Moving / appearance\r\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n */\r\n\r\n /**\r\n * Shows Inline Toolbar by keyup/mouseup\r\n * @param {KeyboardEvent|MouseEvent} event\r\n */\r\n public handleShowingEvent(event): void {\r\n if (!this.allowedToShow(event)) {\r\n this.close();\r\n return;\r\n }\r\n\r\n this.move();\r\n this.open();\r\n\r\n /** Check Tools state for selected fragment */\r\n this.checkToolsState();\r\n }\r\n\r\n /**\r\n * Move Toolbar to the selected text\r\n */\r\n public move(): void {\r\n const selectionRect = SelectionUtils.rect as DOMRect;\r\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\r\n const newCoords = {\r\n x: selectionRect.x - wrapperOffset.left,\r\n y: selectionRect.y\r\n + selectionRect.height\r\n // + window.scrollY\r\n - wrapperOffset.top\r\n + this.toolbarVerticalMargin,\r\n };\r\n\r\n /**\r\n * If we know selections width, place InlineToolbar to center\r\n */\r\n if (selectionRect.width) {\r\n newCoords.x += Math.floor(selectionRect.width / 2);\r\n }\r\n\r\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\r\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\r\n }\r\n\r\n /**\r\n * Shows Inline Toolbar\r\n */\r\n private open() {\r\n /**\r\n * Filter inline-tools and show only allowed by Block's Tool\r\n */\r\n this.filterTools();\r\n\r\n /**\r\n * Show Inline Toolbar\r\n */\r\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\r\n\r\n /**\r\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\r\n */\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n if (typeof toolInstance.clear === 'function') {\r\n toolInstance.clear();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Hides Inline Toolbar\r\n */\r\n private close() {\r\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n if (typeof toolInstance.clear === 'function') {\r\n toolInstance.clear();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Need to show Inline Toolbar or not\r\n * @param {KeyboardEvent|MouseEvent} event\r\n */\r\n private allowedToShow(event): boolean {\r\n /**\r\n * Tags conflicts with window.selection function.\r\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\r\n */\r\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\r\n\r\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\r\n return false;\r\n }\r\n\r\n const currentSelection = SelectionUtils.get(),\r\n selectedText = SelectionUtils.text;\r\n\r\n // old browsers\r\n if (!currentSelection || !currentSelection.anchorNode) {\r\n return false;\r\n }\r\n\r\n // empty selection\r\n if (currentSelection.isCollapsed || selectedText.length < 1) {\r\n return false;\r\n }\r\n\r\n // is enabled by current Block's Tool\r\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\r\n\r\n if (!currentBlock) {\r\n return false;\r\n }\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\r\n\r\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\r\n }\r\n\r\n /**\r\n * Show only allowed Tools\r\n */\r\n private filterTools(): void {\r\n const currentSelection = SelectionUtils.get(),\r\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\r\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\r\n\r\n /**\r\n * All Inline Toolbar buttons\r\n * @type {HTMLElement[]}\r\n */\r\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\r\n\r\n /**\r\n * Show previously hided\r\n */\r\n buttons.forEach((button) => {\r\n button.hidden = false;\r\n button.classList.remove(this.CSS.inlineToolButtonLast);\r\n });\r\n\r\n /**\r\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\r\n */\r\n if (Array.isArray(inlineToolbarSettings)) {\r\n buttons.forEach((button) => {\r\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\r\n });\r\n }\r\n\r\n /**\r\n * Tick for removing right-margin from last visible button.\r\n * Current generation of CSS does not allow to filter :visible elements\r\n */\r\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\r\n\r\n if (lastVisibleButton) {\r\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\r\n }\r\n }\r\n\r\n /**\r\n * Working with Tools\r\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n */\r\n\r\n /**\r\n * Fill Inline Toolbar with Tools\r\n */\r\n private addTools(): void {\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n this.addTool(toolName, toolInstance);\r\n });\r\n }\r\n\r\n /**\r\n * Add tool button and activate clicks\r\n */\r\n private addTool(toolName: string, tool: InlineTool): void {\r\n const button = tool.render();\r\n\r\n if (!button) {\r\n _.log('Render method must return an instance of Node', 'warn', toolName);\r\n return;\r\n }\r\n\r\n button.dataset.tool = toolName;\r\n this.nodes.buttons.appendChild(button);\r\n\r\n if (typeof tool.renderActions === 'function') {\r\n const actions = tool.renderActions();\r\n this.nodes.actions.appendChild(actions);\r\n }\r\n\r\n this.Editor.Listeners.on(button, 'click', (event) => {\r\n this.toolClicked(tool);\r\n event.preventDefault();\r\n });\r\n\r\n /**\r\n * Enable shortcuts\r\n * Ignore tool that doesn't have shortcut or empty string\r\n */\r\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\r\n\r\n let shortcut = null;\r\n\r\n /**\r\n * 1) For internal tools, check public getter 'shortcut'\r\n * 2) For external tools, check tool's settings\r\n */\r\n if (this.internalTools[toolName]) {\r\n shortcut = this.internalTools[toolName].shortcut;\r\n } else if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\r\n shortcut = toolSettings[this.Editor.Tools.apiSettings.SHORTCUT];\r\n }\r\n\r\n if (shortcut) {\r\n this.enableShortcuts(tool, shortcut);\r\n }\r\n }\r\n\r\n /**\r\n * Enable Tool shortcut with Editor Shortcuts Module\r\n * @param {InlineTool} tool - Tool instance\r\n * @param {string} shortcut - shortcut according to the Shortcut Module format\r\n */\r\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\r\n this.Editor.Shortcuts.add({\r\n name: shortcut,\r\n handler: (event) => {\r\n const {currentBlock} = this.Editor.BlockManager;\r\n\r\n /**\r\n * Editor is not focused\r\n */\r\n if (!currentBlock) {\r\n return;\r\n }\r\n\r\n /**\r\n * We allow to fire shortcut with empty selection (isCollapsed=true)\r\n * it can be used by tools like «Mention» that works without selection:\r\n * Example: by SHIFT+@ show dropdown and insert selected username\r\n */\r\n // if (SelectionUtils.isCollapsed) return;\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\r\n\r\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.toolClicked(tool);\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Inline Tool button clicks\r\n * @param {InlineTool} tool - Tool's instance\r\n */\r\n private toolClicked(tool: InlineTool): void {\r\n const range = SelectionUtils.range;\r\n\r\n tool.surround(range);\r\n this.checkToolsState();\r\n }\r\n\r\n /**\r\n * Check Tools` state by selection\r\n */\r\n private checkToolsState(): void {\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n toolInstance.checkState(SelectionUtils.get());\r\n });\r\n }\r\n\r\n /**\r\n * Returns internal inline tools\r\n * Includes Bold, Italic, Link\r\n */\r\n private get internalTools(): {[name: string]: InlineTool} {\r\n return {\r\n bold: this.Editor.Tools.constructInline(BoldInlineTool),\r\n italic: this.Editor.Tools.constructInline(ItalicInlineTool),\r\n link: this.Editor.Tools.constructInline(LinkInlineTool),\r\n };\r\n }\r\n\r\n /**\r\n * Get external tools\r\n * Tools that has isInline is true\r\n */\r\n private get externalTools(): {[name: string]: InlineTool} {\r\n const result = {};\r\n\r\n for (const tool in this.Editor.Tools.inline) {\r\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\r\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import IEditorConfig from '../interfaces/editor-config';\r\n\r\n/**\r\n * @class Toolbox\r\n * @classdesc Holder for Tools\r\n *\r\n * @typedef {Toolbox} Toolbox\r\n * @property {Boolean} opened - opening state\r\n * @property {Object} nodes - Toolbox nodes\r\n * @property {Object} CSS - CSS class names\r\n *\r\n */\r\nexport default class Toolbox extends Module {\r\n /**\r\n * @constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n toolbox: null,\r\n buttons: []\r\n };\r\n\r\n /**\r\n * Opening state\r\n * @type {boolean}\r\n */\r\n this.opened = false;\r\n\r\n /**\r\n * Active button index\r\n * -1 equals no chosen Tool\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = -1;\r\n\r\n /**\r\n * How many tools displayed in Toolbox\r\n * @type {number}\r\n */\r\n this.displayedToolsCount = 0;\r\n }\r\n\r\n /**\r\n * CSS styles\r\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\r\n */\r\n static get CSS() {\r\n return {\r\n toolbox: 'ce-toolbox',\r\n toolboxButton: 'ce-toolbox__button',\r\n toolboxButtonActive : 'ce-toolbox__button--active',\r\n toolboxOpened: 'ce-toolbox--opened',\r\n };\r\n }\r\n\r\n /**\r\n * Makes the Toolbox\r\n */\r\n make() {\r\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\r\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\r\n\r\n this.addTools();\r\n }\r\n\r\n /**\r\n * Iterates available tools and appends them to the Toolbox\r\n */\r\n addTools() {\r\n let tools = this.Editor.Tools.toolsAvailable;\r\n\r\n for (let toolName in tools) {\r\n this.addTool(toolName, tools[toolName]);\r\n }\r\n }\r\n\r\n /**\r\n * Append Tool to the Toolbox\r\n *\r\n * @param {string} toolName - tool name\r\n * @param {IBlockTool} tool - tool class\r\n */\r\n addTool(toolName, tool) {\r\n const api = this.Editor.Tools.apiSettings;\r\n\r\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\r\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\r\n return;\r\n }\r\n\r\n /**\r\n * @todo Add checkup for the render method\r\n */\r\n // if (typeof tool.render !== 'function') {\r\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\r\n // return;\r\n // }\r\n\r\n /**\r\n * Skip tools that pass 'displayInToolbox=false'\r\n */\r\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\r\n return;\r\n }\r\n\r\n let button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\r\n title: toolName\r\n });\r\n\r\n button.innerHTML = tool.toolboxIcon;\r\n\r\n $.append(this.nodes.toolbox, button);\r\n\r\n this.nodes.toolbox.appendChild(button);\r\n this.nodes.buttons.push(button);\r\n\r\n /**\r\n * Add click listener\r\n */\r\n this.Editor.Listeners.on(button, 'click', (event) => {\r\n this.toolButtonActivate(event, toolName);\r\n });\r\n\r\n /**\r\n * Enable shortcut\r\n */\r\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\r\n\r\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\r\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\r\n }\r\n\r\n /** Increment Tools count */\r\n this.displayedToolsCount++;\r\n }\r\n\r\n /**\r\n * Enable shortcut Block Tool implemented shortcut\r\n * @param {IBlockTool} tool - Tool class\r\n * @param {String} toolName - Tool name\r\n * @param {String} shortcut - shortcut according to the Shortcut Module format\r\n */\r\n enableShortcut(tool, toolName, shortcut) {\r\n this.Editor.Shortcuts.add({\r\n name: shortcut,\r\n handler: (event) => {\r\n event.preventDefault();\r\n this.insertNewBlock(tool, toolName);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Inserts new block\r\n * Can be called when button clicked on Toolbox or by Shortcut\r\n *\r\n * @param {IBlockTool} tool - Tool Class\r\n * @param {String} toolName - Tool name\r\n */\r\n insertNewBlock(tool, toolName) {\r\n /**\r\n * @type {Block}\r\n */\r\n const currentBlock = this.Editor.BlockManager.currentBlock;\r\n\r\n /**\r\n * We do replace if:\r\n * - block is empty\r\n * - block is not irreplaceable\r\n * @type {Array}\r\n */\r\n let newBlock;\r\n\r\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\r\n newBlock = this.Editor.BlockManager.replace(toolName);\r\n } else {\r\n newBlock = this.Editor.BlockManager.insert(toolName);\r\n }\r\n\r\n this.Editor.Caret.setToBlock(newBlock);\r\n\r\n /**\r\n * close toolbar when node is changed\r\n */\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Toolbox Tool's button click handler\r\n *\r\n * @param {MouseEvent|KeyboardEvent} event\r\n * @param {string} toolName\r\n */\r\n toolButtonActivate(event, toolName) {\r\n const tool = this.Editor.Tools.toolsClasses[toolName];\r\n\r\n this.insertNewBlock(tool, toolName);\r\n }\r\n\r\n /**\r\n * Open Toolbox with Tools\r\n */\r\n open() {\r\n if (this.isEmpty) {\r\n return;\r\n }\r\n\r\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\r\n this.opened = true;\r\n }\r\n\r\n /**\r\n * Close Toolbox\r\n */\r\n close() {\r\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\r\n this.opened = false;\r\n\r\n /** remove active item pointer */\r\n this.activeButtonIndex = -1;\r\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\r\n\r\n if (activeButton) {\r\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n }\r\n\r\n /**\r\n * Close Toolbox\r\n */\r\n toggle() {\r\n if (!this.opened) {\r\n this.open();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n /**\r\n * Leaf\r\n * flip through the toolbox items\r\n * @param {String} direction - leaf direction, right is default\r\n */\r\n leaf(direction = 'right') {\r\n const childNodes = this.nodes.toolbox.childNodes;\r\n\r\n /**\r\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\r\n */\r\n if (this.activeButtonIndex === -1) {\r\n /**\r\n * Normalize \"previous\" Tool index depending on direction.\r\n * We need to do this to highlight \"first\" Tool correctly\r\n *\r\n * Order of Tools: [0] [1] ... [n - 1]\r\n * [0 = n] because of: n % n = 0 % n\r\n *\r\n * Direction 'right': for [0] the [n - 1] is a previous index\r\n * [n - 1] -> [0]\r\n *\r\n * Direction 'left': for [n - 1] the [0] is a previous index\r\n * [n - 1] <- [0]\r\n *\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = direction === 'right' ? -1 : 0;\r\n } else {\r\n /**\r\n * If we have chosen Tool then remove highlighting\r\n */\r\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n\r\n /**\r\n * Count index for next Tool\r\n */\r\n if (direction === 'right') {\r\n /**\r\n * If we go right then choose next (+1) Tool\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\r\n } else {\r\n /**\r\n * If we go left then choose previous (-1) Tool\r\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\r\n }\r\n\r\n /**\r\n * Highlight new chosen Tool\r\n */\r\n childNodes[this.activeButtonIndex].classList.add(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n\r\n /**\r\n * get tool name when it is selected\r\n * In case when nothing selection returns null\r\n *\r\n * @return {String|null}\r\n */\r\n get getActiveTool() {\r\n const childNodes = this.nodes.toolbox.childNodes;\r\n\r\n if (this.activeButtonIndex === -1) {\r\n return null;\r\n }\r\n\r\n return childNodes[this.activeButtonIndex].title;\r\n }\r\n\r\n /**\r\n * Returns True if Toolbox is Empty and nothing to show\r\n * @return {boolean}\r\n */\r\n get isEmpty() {\r\n return this.displayedToolsCount === 0;\r\n }\r\n}\r\n","/**\r\n *\r\n * «Toolbar» is the node that moves up/down over current block\r\n *\r\n * ______________________________________ Toolbar ____________________________________________\r\n * | |\r\n * | ..................... Content .................... ......... Block Actions .......... |\r\n * | . . . . |\r\n * | . . . [Open Settings] . |\r\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\r\n * | . . . [Settings Panel] . |\r\n * | .................................................. .................................. |\r\n * | |\r\n * |___________________________________________________________________________________________|\r\n *\r\n *\r\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\r\n *\r\n * _______________ Toolbox _______________\r\n * | |\r\n * | [Header] [Image] [List] [Quote] ... |\r\n * |_______________________________________|\r\n *\r\n *\r\n * Settings Panel — is an Element with block settings:\r\n *\r\n * ____ Settings Panel ____\r\n * | ...................... |\r\n * | . Tool Settings . |\r\n * | ...................... |\r\n * | . Default Settings . |\r\n * | ...................... |\r\n * |________________________|\r\n *\r\n *\r\n * @class\r\n * @classdesc Toolbar module\r\n *\r\n * @typedef {Toolbar} Toolbar\r\n * @property {Object} nodes\r\n * @property {Element} nodes.wrapper - Toolbar main element\r\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\r\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\r\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\r\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\r\n * @property {Element} nodes.toolbox - Container for tools\r\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\r\n * @property {Element} nodes.settings - Settings Panel\r\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\r\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\r\n */\r\nexport default class Toolbar extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n wrapper : null,\r\n content : null,\r\n actions : null,\r\n\r\n // Content Zone\r\n plusButton : null,\r\n\r\n // Actions Zone\r\n blockActionsButtons: null,\r\n settingsToggler : null,\r\n };\r\n }\r\n\r\n /**\r\n * CSS styles\r\n * @return {Object}\r\n * @constructor\r\n */\r\n static get CSS() {\r\n return {\r\n toolbar: 'ce-toolbar',\r\n content: 'ce-toolbar__content',\r\n actions: 'ce-toolbar__actions',\r\n\r\n toolbarOpened: 'ce-toolbar--opened',\r\n\r\n // Content Zone\r\n plusButton: 'ce-toolbar__plus',\r\n plusButtonHidden: 'ce-toolbar__plus--hidden',\r\n\r\n // Actions Zone\r\n blockActionsButtons: 'ce-toolbar__actions-buttons',\r\n settingsToggler: 'ce-toolbar__settings-btn',\r\n };\r\n }\r\n\r\n /**\r\n * Makes toolbar\r\n */\r\n make() {\r\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\r\n\r\n /**\r\n * Make Content Zone and Actions Zone\r\n */\r\n ['content', 'actions'].forEach( el => {\r\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\r\n $.append(this.nodes.wrapper, this.nodes[el]);\r\n });\r\n\r\n\r\n /**\r\n * Fill Content Zone:\r\n * - Plus Button\r\n * - Toolbox\r\n */\r\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\r\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\r\n $.append(this.nodes.content, this.nodes.plusButton);\r\n this.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\r\n\r\n\r\n /**\r\n * Make a Toolbox\r\n */\r\n this.Editor.Toolbox.make();\r\n\r\n /**\r\n * Fill Actions Zone:\r\n * - Settings Toggler\r\n * - Remove Block Button\r\n * - Settings Panel\r\n */\r\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\r\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\r\n const settingsIcon = $.svg('dots', 18, 4);\r\n\r\n $.append(this.nodes.settingsToggler, settingsIcon);\r\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\r\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\r\n\r\n /**\r\n * Make and append Settings Panel\r\n */\r\n this.Editor.BlockSettings.make();\r\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\r\n\r\n /**\r\n * Append toolbar to the Editor\r\n */\r\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\r\n\r\n /**\r\n * Bind events on the Toolbar elements\r\n */\r\n this.bindEvents();\r\n }\r\n\r\n /**\r\n * Move Toolbar to the Current Block\r\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\r\n */\r\n move(forceClose = true) {\r\n if (forceClose) {\r\n /** Close Toolbox when we move toolbar */\r\n this.Editor.Toolbox.close();\r\n this.Editor.BlockSettings.close();\r\n }\r\n\r\n let currentBlock = this.Editor.BlockManager.currentBlock.holder;\r\n\r\n /**\r\n * If no one Block selected as a Current\r\n */\r\n if (!currentBlock) {\r\n return;\r\n }\r\n\r\n /**\r\n * Set Toolbar Min Height as Block's height\r\n * Plus Button and Toolbox positioned at the center of the Toolbar\r\n */\r\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\r\n\r\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\r\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\r\n /**\r\n * Move Toolbar to the Top coordinate of Block\r\n */\r\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\r\n }\r\n\r\n /**\r\n * Open Toolbar with Plus Button\r\n */\r\n open() {\r\n /**\r\n * Wait Block rendering for correct height computing\r\n */\r\n setTimeout(() => {\r\n this.move();\r\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\r\n }, 50);\r\n }\r\n\r\n /**\r\n * returns toolbar opened state\r\n * @return {Boolean}\r\n */\r\n get opened() {\r\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\r\n }\r\n\r\n /**\r\n * Close the Toolbar\r\n */\r\n close() {\r\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\r\n\r\n /** Close components */\r\n this.Editor.Toolbox.close();\r\n this.Editor.BlockSettings.close();\r\n }\r\n\r\n /**\r\n * Plus Button public methods\r\n * @return {{hide: function(): void, show: function(): void}}\r\n */\r\n get plusButton() {\r\n return {\r\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\r\n show: () => {\r\n if (this.Editor.Toolbox.isEmpty) {\r\n return;\r\n }\r\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Handler for Plus Button\r\n * @param {MouseEvent} event\r\n */\r\n plusButtonClicked() {\r\n this.Editor.Toolbox.toggle();\r\n }\r\n\r\n /**\r\n * Bind events on the Toolbar Elements:\r\n * - Block Settings\r\n */\r\n bindEvents() {\r\n /**\r\n * Settings toggler\r\n */\r\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\r\n this.settingsTogglerClicked(event);\r\n });\r\n }\r\n\r\n /**\r\n * Clicks on the Block Settings toggler\r\n */\r\n settingsTogglerClicked() {\r\n if (this.Editor.BlockSettings.opened) {\r\n this.Editor.BlockSettings.close();\r\n } else {\r\n this.Editor.BlockSettings.open();\r\n }\r\n }\r\n}\r\n","const Paragraph = require('../tools/paragraph/dist/bundle');\r\n\r\n/**\r\n * @module Codex Editor Tools Submodule\r\n *\r\n * Creates Instances from Plugins and binds external config to the instances\r\n */\r\n\r\n/**\r\n * Each Tool must contain the following important objects:\r\n *\r\n * @typedef {Object} ToolConfig {@link docs/tools.md}\r\n * @property {String} iconClassname - this a icon in toolbar\r\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\r\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\r\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\r\n * @property render @todo add description\r\n * @property save @todo add description\r\n * @property settings @todo add description\r\n * @property validate - method that validates output data before saving\r\n */\r\n\r\n/**\r\n * @typedef {Function} Tool {@link docs/tools.md}\r\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\r\n * @property {String} iconClassName - CSS class name for the Toolbox button\r\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\r\n * @property render\r\n * @property save\r\n * @property settings\r\n * @property validate\r\n *\r\n * @todo update according to current API\r\n * @todo describe Tool in the {@link docs/tools.md}\r\n */\r\n\r\n/**\r\n * Class properties:\r\n *\r\n * @typedef {Tools} Tools\r\n * @property {Tools[]} toolsAvailable - available Tools\r\n * @property {Tools[]} toolsUnavailable - unavailable Tools\r\n * @property {object} toolsClasses - all classes\r\n * @property {object} toolsSettings - Tools settings\r\n * @property {EditorConfig} config - Editor config\r\n */\r\nexport default class Tools extends Module {\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n /**\r\n * Map {name: Class, ...} where:\r\n * name — block type name in JSON. Got from EditorConfig.tools keys\r\n * @type {Object}\r\n */\r\n this.toolsClasses = {};\r\n\r\n /**\r\n * Tools settings in a map {name: settings, ...}\r\n * @type {Object}\r\n */\r\n this.toolsSettings = {};\r\n\r\n /**\r\n * Available tools list\r\n * {name: Class, ...}\r\n * @type {Object}\r\n */\r\n this.toolsAvailable = {};\r\n\r\n /**\r\n * Tools that rejected a prepare method\r\n * {name: Class, ... }\r\n * @type {Object}\r\n */\r\n this.toolsUnavailable = {};\r\n\r\n /**\r\n * Cache for the prepared inline tools\r\n * @type {null|object}\r\n * @private\r\n */\r\n this._inlineTools = null;\r\n }\r\n\r\n /**\r\n * Returns available Tools\r\n * @return {Tool[]}\r\n */\r\n get available() {\r\n return this.toolsAvailable;\r\n }\r\n\r\n /**\r\n * Returns unavailable Tools\r\n * @return {Tool[]}\r\n */\r\n get unavailable() {\r\n return this.toolsUnavailable;\r\n }\r\n\r\n /**\r\n * Return Tools for the Inline Toolbar\r\n * @return {Object} - object of Inline Tool's classes\r\n */\r\n get inline() {\r\n if (this._inlineTools) {\r\n return this._inlineTools;\r\n }\r\n\r\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\r\n if (!tool[this.apiSettings.IS_INLINE]) {\r\n return false;\r\n }\r\n\r\n /**\r\n * Some Tools validation\r\n */\r\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\r\n const notImplementedMethods = inlineToolRequiredMethods.filter( method => !this.constructInline(tool)[method]);\r\n\r\n if (notImplementedMethods.length) {\r\n _.log(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n /**\r\n * collected inline tools with key of tool name\r\n */\r\n const result = {};\r\n\r\n tools.forEach(([name, tool]) => result[name] = tool);\r\n\r\n /**\r\n * Cache prepared Tools\r\n */\r\n this._inlineTools = result;\r\n\r\n return this._inlineTools;\r\n }\r\n\r\n /**\r\n * Return editor block tools\r\n */\r\n get blockTools() {\r\n // eslint-disable-next-line no-unused-vars\r\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\r\n if (tool[this.apiSettings.IS_INLINE]) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n /**\r\n * collected block tools with key of tool name\r\n */\r\n const result = {};\r\n\r\n tools.forEach(([name, tool]) => result[name] = tool);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Constant for available Tools Settings\r\n * @return {object}\r\n */\r\n get apiSettings() {\r\n return {\r\n CONFIG: 'config',\r\n IS_CONTENTLESS: 'contentless',\r\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\r\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\r\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\r\n IS_INLINE: 'isInline',\r\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\r\n IS_PASTE_DISALLOWED: 'disallowPaste',\r\n SHORTCUT: 'shortcut',\r\n TOOLBAR_ICON: 'toolboxIcon',\r\n };\r\n }\r\n\r\n /**\r\n * Creates instances via passed or default configuration\r\n * @return {Promise}\r\n */\r\n prepare() {\r\n this.config.tools.paragraph = {\r\n class: Paragraph,\r\n inlineToolbar: true\r\n };\r\n\r\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\r\n return Promise.reject('Can\\'t start without tools');\r\n }\r\n\r\n /**\r\n * Save Tools settings to a map\r\n */\r\n for(let toolName in this.config.tools) {\r\n /**\r\n * If Tool is an object not a Tool's class then\r\n * save class and settings separately\r\n */\r\n if (typeof this.config.tools[toolName] === 'object') {\r\n /**\r\n * Save Tool's class from 'class' field\r\n * @type {ITool}\r\n */\r\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\r\n\r\n /**\r\n * Save Tool's settings\r\n * @type {IToolSettings}\r\n */\r\n this.toolsSettings[toolName] = this.config.tools[toolName];\r\n\r\n /**\r\n * Remove Tool's class from settings\r\n */\r\n delete this.toolsSettings[toolName].class;\r\n } else {\r\n /**\r\n * Save Tool's class\r\n * @type {ITool}\r\n */\r\n this.toolsClasses[toolName] = this.config.tools[toolName];\r\n\r\n /**\r\n * Set empty settings for Block by default\r\n * @type {{}}\r\n */\r\n this.toolsSettings[toolName] = {};\r\n }\r\n }\r\n\r\n /**\r\n * getting classes that has prepare method\r\n */\r\n let sequenceData = this.getListOfPrepareFunctions();\r\n\r\n /**\r\n * if sequence data contains nothing then resolve current chain and run other module prepare\r\n */\r\n if (sequenceData.length === 0) {\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * to see how it works {@link Util#sequence}\r\n */\r\n return _.sequence(sequenceData, (data) => {\r\n this.success(data);\r\n }, (data) => {\r\n this.fallback(data);\r\n });\r\n }\r\n\r\n /**\r\n * Binds prepare function of plugins with user or default config\r\n * @return {Array} list of functions that needs to be fired sequentially\r\n */\r\n getListOfPrepareFunctions() {\r\n let toolPreparationList = [];\r\n\r\n for(let toolName in this.toolsClasses) {\r\n let toolClass = this.toolsClasses[toolName];\r\n\r\n if (typeof toolClass.prepare === 'function') {\r\n toolPreparationList.push({\r\n function : toolClass.prepare,\r\n data : {\r\n toolName,\r\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG]\r\n }\r\n });\r\n } else {\r\n /**\r\n * If Tool hasn't a prepare method, mark it as available\r\n */\r\n this.toolsAvailable[toolName] = toolClass;\r\n }\r\n }\r\n\r\n return toolPreparationList;\r\n }\r\n\r\n /**\r\n * @param {ChainData.data} data - append tool to available list\r\n */\r\n success(data) {\r\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\r\n }\r\n\r\n /**\r\n * @param {ChainData.data} data - append tool to unavailable list\r\n */\r\n fallback(data) {\r\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\r\n }\r\n\r\n /**\r\n * Return Tool`s instance\r\n *\r\n * @param {String} tool — tool name\r\n * @param {IBlockToolData} data — initial data\r\n * @return {IBlockTool}\r\n */\r\n construct(tool, data) {\r\n const plugin = this.toolsClasses[tool];\r\n\r\n /**\r\n * Configuration to be passed to the Tool's constructor\r\n */\r\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\r\n\r\n /**\r\n * @type {{api: IAPI, config: ({}), data: IBlockToolData}}\r\n */\r\n const constructorOptions = {\r\n api: this.Editor.API.methods,\r\n config: config || {},\r\n data: data\r\n };\r\n\r\n return new plugin(constructorOptions);\r\n }\r\n\r\n /**\r\n * Return Inline Tool's instance\r\n *\r\n * @param {IInlineTool} tool\r\n * @return {IInlineTool} — instance\r\n */\r\n constructInline(tool) {\r\n /**\r\n * @type {{api: IAPI}}\r\n */\r\n const constructorOptions = {\r\n api: this.Editor.API.methods\r\n };\r\n\r\n return new tool(constructorOptions);\r\n }\r\n\r\n /**\r\n * Check if passed Tool is an instance of Initial Block Tool\r\n * @param {Tool} tool - Tool to check\r\n * @return {Boolean}\r\n */\r\n isInitial(tool) {\r\n return tool instanceof this.available[this.config.initialBlock];\r\n }\r\n\r\n /**\r\n * Return Tool's config by name\r\n * @param {string} toolName\r\n * @return {IToolSettings}\r\n */\r\n getToolSettings(toolName) {\r\n return this.toolsSettings[toolName];\r\n }\r\n}\r\n","/**\r\n * Module UI\r\n *\r\n * @type {UI}\r\n */\r\n\r\n/**\r\n * Prebuilded sprite of SVG icons\r\n */\r\nimport sprite from '../../../build/sprite.svg';\r\n\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @class\r\n *\r\n * @classdesc Makes CodeX Editor UI:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * @typedef {UI} UI\r\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\r\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\r\n * @property {Object} nodes -\r\n * @property {Element} nodes.holder - element where we need to append redactor\r\n * @property {Element} nodes.wrapper - \r\n * @property {Element} nodes.redactor - \r\n */\r\nexport default class UI extends Module {\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n holder: null,\r\n wrapper: null,\r\n redactor: null\r\n };\r\n }\r\n\r\n /**\r\n * Making main interface\r\n */\r\n async prepare() {\r\n await this.make();\r\n\r\n /**\r\n * Append SVG sprite\r\n */\r\n await this.appendSVGSprite();\r\n\r\n /**\r\n * Make toolbar\r\n */\r\n await this.Editor.Toolbar.make();\r\n\r\n /**\r\n * Make the Inline toolbar\r\n */\r\n await this.Editor.InlineToolbar.make();\r\n\r\n /**\r\n * Load and append CSS\r\n */\r\n await this.loadStyles();\r\n\r\n /**\r\n * Bind events for the UI elements\r\n */\r\n await this.bindEvents();\r\n }\r\n\r\n /**\r\n * CodeX Editor UI CSS class names\r\n * @return {{editorWrapper: string, editorZone: string, block: string}}\r\n */\r\n get CSS() {\r\n return {\r\n editorWrapper : 'codex-editor',\r\n editorZone : 'codex-editor__redactor',\r\n };\r\n }\r\n\r\n /**\r\n * Makes CodeX Editor interface\r\n * @return {Promise}\r\n */\r\n async make() {\r\n /**\r\n * Element where we need to append CodeX Editor\r\n * @type {Element}\r\n */\r\n this.nodes.holder = document.getElementById(this.config.holderId);\r\n\r\n if (!this.nodes.holder) {\r\n throw Error(\"Holder wasn't found by ID: #\" + this.config.holderId);\r\n }\r\n\r\n /**\r\n * Create and save main UI elements\r\n */\r\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\r\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\r\n\r\n this.nodes.wrapper.appendChild(this.nodes.redactor);\r\n this.nodes.holder.appendChild(this.nodes.wrapper);\r\n }\r\n\r\n /**\r\n * Appends CSS\r\n */\r\n loadStyles() {\r\n /**\r\n * Load CSS\r\n */\r\n let styles = require('../../styles/main.css');\r\n\r\n /**\r\n * Make tag\r\n */\r\n let tag = $.make('style', null, {\r\n textContent: styles.toString()\r\n });\r\n\r\n /**\r\n * Append styles at the top of HEAD tag\r\n */\r\n $.prepend(document.head, tag);\r\n }\r\n\r\n /**\r\n * Bind events on the CodeX Editor interface\r\n */\r\n bindEvents() {\r\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\r\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\r\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\r\n }\r\n\r\n /**\r\n * All keydowns on document\r\n * @param {Event} event\r\n */\r\n documentKeydown(event) {\r\n switch (event.keyCode) {\r\n case _.keyCodes.ENTER:\r\n this.enterPressed(event);\r\n break;\r\n default:\r\n this.defaultBehaviour(event);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Ignore all other document's keydown events\r\n * @param {KeyboardEvent} event\r\n */\r\n defaultBehaviour(event) {\r\n const keyDownOnEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\r\n\r\n /**\r\n * Ignore keydowns on document\r\n * clear pointer and close toolbar\r\n */\r\n if (!keyDownOnEditor) {\r\n /**\r\n * Remove all highlights and remove caret\r\n */\r\n this.Editor.BlockManager.dropPointer();\r\n\r\n /**\r\n * Close Toolbar\r\n */\r\n this.Editor.Toolbar.close();\r\n }\r\n }\r\n\r\n /**\r\n * Enter pressed on document\r\n * @param event\r\n */\r\n enterPressed(event) {\r\n let hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\r\n\r\n /**\r\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\r\n * In our case it is document.body\r\n *\r\n * So, BlockManager points some Block and Enter press is on Body\r\n * We can create a new block\r\n */\r\n if (hasPointerToBlock && event.target.tagName === 'BODY') {\r\n /**\r\n * Insert initial typed Block\r\n */\r\n const newBlock = this.Editor.BlockManager.insert();\r\n\r\n this.Editor.Caret.setToBlock(newBlock);\r\n\r\n /**\r\n * And highlight\r\n */\r\n this.Editor.BlockManager.highlightCurrentNode();\r\n\r\n /**\r\n * Move toolbar and show plus button because new Block is empty\r\n */\r\n this.Editor.Toolbar.move();\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n }\r\n\r\n /**\r\n * All clicks on document\r\n * @param {MouseEvent} event - Click\r\n */\r\n documentClicked(event) {\r\n /**\r\n * Close Inline Toolbar when nothing selected\r\n * Do not fire check on clicks at the Inline Toolbar buttons\r\n */\r\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\r\n const clickedInsideofEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\r\n\r\n /** Clear highlightings and pointer on BlockManager */\r\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\r\n this.Editor.BlockManager.dropPointer();\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n if (!clickedOnInlineToolbarButton) {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n if (Selection.isAtEditor) {\r\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\r\n }\r\n }\r\n\r\n /**\r\n * All clicks on the redactor zone\r\n *\r\n * @param {MouseEvent} event\r\n *\r\n * @description\r\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\r\n * it uses for the following:\r\n * - add CSS modifier for the selected Block\r\n * - on Enter press, we make a new Block under that\r\n *\r\n * 2. Move and show the Toolbar\r\n *\r\n * 3. Set a Caret\r\n *\r\n * 4. By clicks on the Editor's bottom zone:\r\n * - if last Block is empty, set a Caret to this\r\n * - otherwise, add a new empty Block and set a Caret to that\r\n *\r\n * 5. Hide the Inline Toolbar\r\n *\r\n * @see selectClickedBlock\r\n *\r\n */\r\n redactorClicked(event) {\r\n const clickedNode = event.target;\r\n\r\n /**\r\n * Select clicked Block as Current\r\n */\r\n try {\r\n /**\r\n * Renew Current Block\r\n */\r\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\r\n\r\n /**\r\n * Highlight Current Node\r\n */\r\n this.Editor.BlockManager.highlightCurrentNode();\r\n } catch (e) {\r\n /**\r\n * If clicked outside first-level Blocks, set Caret to the last empty Block\r\n */\r\n this.Editor.Caret.setToTheLastBlock();\r\n }\r\n\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n\r\n /**\r\n * Move and open toolbar\r\n */\r\n this.Editor.Toolbar.open();\r\n\r\n /**\r\n * Hide the Plus Button\r\n */\r\n this.Editor.Toolbar.plusButton.hide();\r\n\r\n if (!this.Editor.BlockManager.currentBlock) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * Show the Plus Button if:\r\n * - Block is an initial-block (Text)\r\n * - Block is empty\r\n */\r\n let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\r\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\r\n\r\n if (isInitialBlock && isEmptyBlock) {\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n }\r\n\r\n /**\r\n * Append prebuilded sprite with SVG icons\r\n */\r\n appendSVGSprite() {\r\n let spriteHolder = $.make('div');\r\n\r\n spriteHolder.hidden = true;\r\n spriteHolder.style.display = 'none';\r\n spriteHolder.innerHTML = sprite;\r\n\r\n $.append(this.nodes.wrapper, spriteHolder);\r\n }\r\n\r\n /**\r\n * Clean editor`s UI\r\n */\r\n destroy() {\r\n this.nodes.holder.innerHTML = '';\r\n }\r\n}\r\n","'use strict';\r\n\r\n/**\r\n * Extend Element interface to include prefixed and experimental properties\r\n */\r\ninterface Element {\r\n matchesSelector: (selector: string) => boolean;\r\n mozMatchesSelector: (selector: string) => boolean;\r\n oMatchesSelector: (selector: string) => boolean;\r\n\r\n prepend: (nodes: Node|Node[]|any) => void;\r\n}\r\n\r\n/**\r\n * The Element.matches() method returns true if the element\r\n * would be selected by the specified selector string;\r\n * otherwise, returns false.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\r\n */\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\r\n let i = matches.length;\r\n\r\n while (--i >= 0 && matches.item(i) !== this) {\r\n }\r\n\r\n return i > -1;\r\n };\r\n}\r\n\r\n/**\r\n * The Element.closest() method returns the closest ancestor\r\n * of the current element (or the current element itself) which\r\n * matches the selectors given in parameter.\r\n * If there isn't such an ancestor, it returns null.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\r\n */\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n let el = this;\r\n\r\n if (!document.documentElement.contains(el)) {\r\n return null;\r\n }\r\n\r\n do {\r\n if (el.matches(s)) {\r\n return el;\r\n }\r\n\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null);\r\n\r\n return null;\r\n };\r\n}\r\n\r\n/**\r\n * The ParentNode.prepend method inserts a set of Node objects\r\n * or DOMString objects before the first child of the ParentNode.\r\n * DOMString objects are inserted as equivalent Text nodes.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\r\n */\r\nif (!Element.prototype.prepend) {\r\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\r\n const docFrag = document.createDocumentFragment();\r\n\r\n if (!Array.isArray(nodes)) {\r\n nodes = [ nodes ];\r\n }\r\n\r\n nodes.forEach((node: Node|any) => {\r\n const isNode = node instanceof Node;\r\n\r\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n };\r\n}\r\n","/**\r\n * TextRange interface fot IE9-\r\n */\r\nimport _ from './utils';\r\n\r\ninterface TextRange {\r\n boundingTop: number;\r\n boundingLeft: number;\r\n boundingBottom: number;\r\n boundingRight: number;\r\n boundingHeight: number;\r\n boundingWidth: number;\r\n}\r\n\r\n/**\r\n * Interface for object returned by document.selection in IE9-\r\n */\r\ninterface MSSelection {\r\n createRange: () => TextRange;\r\n type: string;\r\n}\r\n\r\n/**\r\n * Extends Document interface for IE9-\r\n */\r\ninterface Document {\r\n selection?: MSSelection;\r\n}\r\n\r\n/**\r\n * Working with selection\r\n * @typedef {Selection} Selection\r\n */\r\nexport default class SelectionUtils {\r\n\r\n /**\r\n * Editor styles\r\n * @return {{editorWrapper: string, editorZone: string}}\r\n * @constructor\r\n */\r\n static get CSS(): {editorWrapper: string, editorZone: string} {\r\n return {\r\n editorWrapper : 'codex-editor',\r\n editorZone : 'codex-editor__redactor',\r\n };\r\n }\r\n\r\n /**\r\n * Returns selected anchor\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\r\n * @return {Node|null}\r\n */\r\n static get anchorNode(): Node|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.anchorNode : null;\r\n }\r\n\r\n /**\r\n * Returns selection offset according to the anchor node\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\r\n * @return {Number|null}\r\n */\r\n static get anchorOffset(): number|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.anchorOffset : null;\r\n }\r\n\r\n /**\r\n * Is current selection range collapsed\r\n * @return {boolean|null}\r\n */\r\n static get isCollapsed(): boolean|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.isCollapsed : null;\r\n }\r\n\r\n /**\r\n * Check current selection if it is at Editor's zone\r\n * @return {boolean}\r\n */\r\n static get isAtEditor(): boolean {\r\n const selection = SelectionUtils.get();\r\n\r\n /**\r\n * Something selected on document\r\n */\r\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\r\n\r\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\r\n selectedNode = selectedNode.parentNode as HTMLElement;\r\n }\r\n\r\n let editorZone = null;\r\n if (selectedNode) {\r\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\r\n }\r\n\r\n /**\r\n * SelectionUtils is not out of Editor because Editor's wrapper was found\r\n */\r\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\r\n }\r\n\r\n /**\r\n * Return first range\r\n * @return {Range|null}\r\n */\r\n static get range(): Range {\r\n const selection = window.getSelection();\r\n\r\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\r\n }\r\n\r\n /**\r\n * Calculates position and size of selected text\r\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\r\n */\r\n static get rect(): DOMRect|ClientRect {\r\n let sel: Selection|MSSelection = (document as Document).selection,\r\n range: TextRange|Range;\r\n\r\n let rect = {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0,\r\n } as DOMRect;\r\n\r\n if (sel && sel.type !== 'Control') {\r\n sel = sel as MSSelection;\r\n range = sel.createRange() as TextRange;\r\n rect.x = range.boundingLeft;\r\n rect.y = range.boundingTop;\r\n rect.width = range.boundingWidth;\r\n rect.height = range.boundingHeight;\r\n\r\n return rect;\r\n }\r\n\r\n if (!window.getSelection) {\r\n _.log('Method window.getSelection is not supported', 'warn');\r\n return rect;\r\n }\r\n\r\n sel = window.getSelection();\r\n\r\n if (!sel.rangeCount) {\r\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\r\n return rect;\r\n }\r\n\r\n range = sel.getRangeAt(0).cloneRange() as Range;\r\n\r\n if (range.getBoundingClientRect) {\r\n rect = range.getBoundingClientRect() as DOMRect;\r\n }\r\n // Fall back to inserting a temporary element\r\n if (rect.x === 0 && rect.y === 0) {\r\n const span = document.createElement('span');\r\n\r\n if (span.getBoundingClientRect) {\r\n // Ensure span has dimensions and position by\r\n // adding a zero-width space character\r\n span.appendChild( document.createTextNode('\\u200b') );\r\n range.insertNode(span);\r\n rect = span.getBoundingClientRect() as DOMRect;\r\n\r\n const spanParent = span.parentNode;\r\n\r\n spanParent.removeChild(span);\r\n\r\n // Glue any broken text nodes back together\r\n spanParent.normalize();\r\n }\r\n }\r\n\r\n return rect;\r\n }\r\n\r\n /**\r\n * Returns selected text as String\r\n * @returns {string}\r\n */\r\n static get text(): string {\r\n return window.getSelection ? window.getSelection().toString() : '';\r\n }\r\n\r\n /**\r\n * Returns window SelectionUtils\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\r\n * @return {Selection}\r\n */\r\n public static get(): Selection {\r\n return window.getSelection();\r\n }\r\n\r\n public instance: Selection = null;\r\n public selection: Selection = null;\r\n\r\n /**\r\n * This property can store SelectionUtils's range for restoring later\r\n * @type {Range|null}\r\n */\r\n public savedSelectionRange: Range = null;\r\n\r\n /**\r\n * Save SelectionUtils's range\r\n */\r\n public save(): void {\r\n this.savedSelectionRange = SelectionUtils.range;\r\n }\r\n\r\n /**\r\n * Restore saved SelectionUtils's range\r\n */\r\n public restore(): void {\r\n if (!this.savedSelectionRange) {\r\n return;\r\n }\r\n\r\n const sel = window.getSelection();\r\n\r\n sel.removeAllRanges();\r\n sel.addRange(this.savedSelectionRange);\r\n }\r\n\r\n /**\r\n * Clears saved selection\r\n */\r\n public clearSaved(): void {\r\n this.savedSelectionRange = null;\r\n }\r\n\r\n /**\r\n * Looks ahead to find passed tag from current selection\r\n *\r\n * @param {String} tagName - tag to found\r\n * @param {String} [className] - tag's class name\r\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\r\n * @return {HTMLElement|null}\r\n */\r\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\r\n const selection = window.getSelection();\r\n let parentTag = null;\r\n\r\n /**\r\n * If selection is missing or no anchorNode or focusNode were found then return null\r\n */\r\n if (!selection || !selection.anchorNode || !selection.focusNode) {\r\n return null;\r\n }\r\n\r\n /**\r\n * Define Nodes for start and end of selection\r\n */\r\n const boundNodes = [\r\n /** the Node in which the selection begins */\r\n selection.anchorNode as HTMLElement,\r\n /** the Node in which the selection ends */\r\n selection.focusNode as HTMLElement,\r\n ];\r\n\r\n /**\r\n * For each selection parent Nodes we try to find target tag [with target class name]\r\n * It would be saved in parentTag variable\r\n */\r\n boundNodes.forEach((parent) => {\r\n /** Reset tags limit */\r\n let searchDepthIterable = searchDepth;\r\n\r\n while (searchDepthIterable > 0 && parent.parentNode) {\r\n /**\r\n * Check tag's name\r\n */\r\n if (parent.tagName === tagName) {\r\n /**\r\n * Save the result\r\n */\r\n parentTag = parent;\r\n\r\n /**\r\n * Optional additional check for class-name mismatching\r\n */\r\n if (className && parent.classList && !parent.classList.contains(className)) {\r\n parentTag = null;\r\n }\r\n\r\n /**\r\n * If we have found required tag with class then go out from the cycle\r\n */\r\n if (parentTag) {\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Target tag was not found. Go up to the parent and check it\r\n */\r\n parent = parent.parentNode as HTMLElement;\r\n searchDepthIterable--;\r\n }\r\n });\r\n\r\n /**\r\n * Return found tag or null\r\n */\r\n return parentTag;\r\n }\r\n\r\n /**\r\n * Expands selection range to the passed parent node\r\n *\r\n * @param {HTMLElement} element\r\n */\r\n public expandToTag(element: HTMLElement): void {\r\n const selection = window.getSelection();\r\n\r\n selection.removeAllRanges();\r\n const range = document.createRange();\r\n\r\n range.selectNodeContents(element);\r\n selection.addRange(range);\r\n }\r\n}\r\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=c(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 f(n,e),function(t){for(var o=[],i=0;i any;\r\n}\r\n\r\n/**\r\n * Codex Editor Util\r\n */\r\nexport default class Util {\r\n /**\r\n * Custom logger\r\n *\r\n * @param {string} msg - message\r\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\r\n * @param {*} args - argument to log with a message\r\n */\r\n public static log(msg: string, type: string = 'log', args?: any): void {\r\n\r\n if (!args) {\r\n if (['time', 'timeEnd'].includes(type)) {\r\n msg = `[codex-editor]: ${msg}`;\r\n } else {\r\n args = msg || 'undefined';\r\n msg = '[codex-editor]: %o';\r\n }\r\n } else {\r\n msg = '[codex-editor]: ' + msg;\r\n }\r\n\r\n try {\r\n if ( 'console' in window && window.console[ type ] ) {\r\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\r\n }\r\n } catch (e) {\r\n // do nothing\r\n }\r\n }\r\n\r\n /**\r\n * Returns basic keycodes as constants\r\n * @return {{}}\r\n */\r\n static get keyCodes(): object {\r\n return {\r\n BACKSPACE: 8,\r\n TAB: 9,\r\n ENTER: 13,\r\n SHIFT: 16,\r\n CTRL: 17,\r\n ALT: 18,\r\n ESC: 27,\r\n SPACE: 32,\r\n LEFT: 37,\r\n UP: 38,\r\n DOWN: 40,\r\n RIGHT: 39,\r\n DELETE: 46,\r\n META: 91,\r\n };\r\n }\r\n\r\n /**\r\n * Fires a promise sequence asyncronically\r\n *\r\n * @param {ChainData[]} chains - list or ChainData's\r\n * @param {Function} success - success callback\r\n * @param {Function} fallback - callback that fires in case of errors\r\n *\r\n * @return {Promise}\r\n */\r\n public static async sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise {\r\n /**\r\n * Decorator\r\n *\r\n * @param {ChainData} chainData\r\n *\r\n * @param {Function} successCallback\r\n * @param {Function} fallbackCallback\r\n *\r\n * @return {Promise}\r\n */\r\n async function waitNextBlock(\r\n chainData: ChainData,\r\n successCallback: (data: any) => void,\r\n fallbackCallback: (data: any) => void,\r\n ): Promise {\r\n try {\r\n await chainData.function(chainData.data);\r\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\r\n } catch (e) {\r\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\r\n }\r\n }\r\n\r\n /**\r\n * pluck each element from queue\r\n * First, send resolved Promise as previous value\r\n * Each plugins \"prepare\" method returns a Promise, that's why\r\n * reduce current element will not be able to continue while can't get\r\n * a resolved Promise\r\n */\r\n return await chains.reduce(async (previousValue, currentValue) => {\r\n await previousValue;\r\n return waitNextBlock(currentValue, success, fallback);\r\n }, Promise.resolve());\r\n }\r\n\r\n /**\r\n * Make array from array-like collection\r\n *\r\n * @param {ArrayLike} collection\r\n *\r\n * @return {Array}\r\n */\r\n public static array(collection: ArrayLike): any[] {\r\n return Array.prototype.slice.call(collection);\r\n }\r\n\r\n /**\r\n * Check if passed variable is a function\r\n * @param {*} fn\r\n * @return {boolean}\r\n */\r\n public static isFunction(fn: any): boolean {\r\n return typeof fn === 'function';\r\n }\r\n\r\n /**\r\n * Check if passed function is a class\r\n * @param {function} fn\r\n * @return {boolean}\r\n */\r\n public static isClass(fn: any): boolean {\r\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\r\n }\r\n\r\n /**\r\n * Checks if object is empty\r\n *\r\n * @param {Object} object\r\n * @return {boolean}\r\n */\r\n public static isEmpty(object: object): boolean {\r\n return Object.keys(object).length === 0 && object.constructor === Object;\r\n }\r\n\r\n /**\r\n * Check if passed object is a Promise\r\n * @param {*} object - object to check\r\n * @return {Boolean}\r\n */\r\n public static isPromise(object: any): boolean {\r\n return Promise.resolve(object) === object;\r\n }\r\n\r\n /**\r\n * Check if passed element is contenteditable\r\n * @param {HTMLElement} element\r\n * @return {boolean}\r\n */\r\n public static isContentEditable(element: HTMLElement): boolean {\r\n return element.contentEditable === 'true';\r\n }\r\n\r\n /**\r\n * Delays method execution\r\n *\r\n * @param {Function} method\r\n * @param {Number} timeout\r\n */\r\n public static delay(method: (...args: any[]) => any, timeout: number) {\r\n return function() {\r\n const context = this,\r\n args = arguments;\r\n\r\n window.setTimeout(() => method.apply(context, args), timeout);\r\n };\r\n }\r\n\r\n /**\r\n * Get file extension\r\n *\r\n * @param {File} file\r\n * @return string\r\n */\r\n public static getFileExtension(file: File): string {\r\n return file.name.split('.').pop();\r\n }\r\n\r\n /**\r\n * Check if string is MIME type\r\n *\r\n * @param {string} type\r\n * @return boolean\r\n */\r\n public static isValidMimeType(type: string): boolean {\r\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\r\n }\r\n\r\n /**\r\n * Debouncing method\r\n * Call method after passed time\r\n *\r\n * Note that this method returns Function and declared variable need to be called\r\n *\r\n * @param {Function} func - function that we're throttling\r\n * @param {Number} wait - time in milliseconds\r\n * @param {Boolean} immediate - call now\r\n * @return {Function}\r\n */\r\n public static debounce(func: () => void, wait: number , immediate: boolean): () => void {\r\n let timeout;\r\n\r\n return () => {\r\n const context = this,\r\n args = arguments;\r\n\r\n const later = () => {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n }\r\n}\r\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 {\\r\\n /**\\r\\n * Selection color\\r\\n */\\r\\n --selectionColor: rgba(61,166,239,0.63);\\r\\n\\r\\n /**\\r\\n * Toolbar buttons\\r\\n */\\r\\n --bg-light: #eff2f5;\\r\\n\\r\\n /**\\r\\n * All gray texts: placeholders, settings\\r\\n */\\r\\n --grayText: #707684;\\r\\n\\r\\n /**\\r\\n * Blue icons\\r\\n */\\r\\n --color-active-icon: #388AE5;\\r\\n\\r\\n /**\\r\\n * Gray border, loaders\\r\\n */\\r\\n --color-gray-border: #E8E8EB;\\r\\n\\r\\n /**\\r\\n * Block content width\\r\\n */\\r\\n --content-width: 650px;\\r\\n\\r\\n /**\\r\\n * Toolbar buttons height and width\\r\\n */\\r\\n --toolbar-buttons-size: 34px;\\r\\n\\r\\n /**\\r\\n * Toolbar Plus Button and Toolbox buttons height and width\\r\\n */\\r\\n --toolbox-buttons-size: 24px;\\r\\n\\r\\n /**\\r\\n * Confirm deletion bg\\r\\n */\\r\\n --color-confirm: #E24A4A;\\r\\n}\\r\\n/**\\r\\n* Editor wrapper\\r\\n*/\\r\\n.codex-editor {\\r\\n position: relative;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n.codex-editor .hide {\\r\\n display: none;\\r\\n }\\r\\n.codex-editor__redactor {\\r\\n padding-bottom: 300px;\\r\\n }\\r\\n.codex-editor svg {\\r\\n fill: currentColor;\\r\\n vertical-align: middle;\\r\\n max-height: 100%;\\r\\n }\\r\\n/**\\r\\n * Set color for native selection\\r\\n */\\r\\n::-moz-selection{\\r\\n background-color: rgba(61,166,239,0.63);\\r\\n background-color: var(--selectionColor);\\r\\n}\\r\\n::selection{\\r\\n background-color: rgba(61,166,239,0.63);\\r\\n background-color: var(--selectionColor);\\r\\n}\\r\\n/**\\r\\n * Add placeholder to content editable elements with data attribute\\r\\n * data-placeholder=\\\"Hello world!\\\"\\r\\n */\\r\\n[contentEditable=true][data-placeholder]:empty::before{\\r\\n content: attr(data-placeholder);\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n font-weight: normal;\\r\\n}\\r\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\r\\n opacity: 0.3;\\r\\n}\\r\\n.ce-toolbar {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n right: 0;\\r\\n top: 0;\\r\\n /*opacity: 0;*/\\r\\n /*visibility: hidden;*/\\r\\n -webkit-transition: opacity 100ms ease;\\r\\n transition: opacity 100ms ease;\\r\\n will-change: opacity, transform;\\r\\n display: none;\\r\\n}\\r\\n.ce-toolbar--opened {\\r\\n display: block;\\r\\n /*opacity: 1;*/\\r\\n /*visibility: visible;*/\\r\\n }\\r\\n.ce-toolbar__content {\\r\\n max-width: 650px;\\r\\n max-width: var(--content-width);\\r\\n margin: 0 auto;\\r\\n position: relative;\\r\\n }\\r\\n.ce-toolbar__plus {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n width: 24px;\\r\\n width: var(--toolbox-buttons-size);\\r\\n height: 24px;\\r\\n height: var(--toolbox-buttons-size);\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center\\r\\n }\\r\\n.ce-toolbar__plus:not(:last-of-type){\\r\\n margin-right: 10px;\\r\\n }\\r\\n.ce-toolbar__plus {\\r\\n\\r\\n position: absolute;\\r\\n left: calc(calc(24px + 10px) * -1);\\r\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\r\\n }\\r\\n.ce-toolbar__plus:hover,\\r\\n .ce-toolbar__plus--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-toolbar__plus--active{\\r\\n -webkit-animation: bounceIn 0.75s 1;\\r\\n animation: bounceIn 0.75s 1;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n }\\r\\n.ce-toolbar__plus--hidden {\\r\\n display: none;\\r\\n }\\r\\n.ce-toolbar__plus,\\r\\n .ce-toolbar .ce-toolbox {\\r\\n top: 50%;\\r\\n -webkit-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n }\\r\\n/**\\r\\n * Block actions Zone\\r\\n * -------------------------\\r\\n */\\r\\n.ce-toolbar__actions {\\r\\n position: absolute;\\r\\n right: 0;\\r\\n top: 10px;\\r\\n padding-right: 16px;\\r\\n }\\r\\n.ce-toolbar__actions-buttons {\\r\\n text-align: right;\\r\\n }\\r\\n.ce-toolbar__settings-btn {\\r\\n display: inline-block;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n }\\r\\n.ce-toolbox {\\r\\n position: absolute;\\r\\n visibility: hidden;\\r\\n -webkit-transition: opacity 100ms ease;\\r\\n transition: opacity 100ms ease;\\r\\n will-change: opacity;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: horizontal;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: row;\\r\\n flex-direction: row;\\r\\n}\\r\\n.ce-toolbox--opened {\\r\\n opacity: 1;\\r\\n visibility: visible;\\r\\n }\\r\\n.ce-toolbox__button {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n width: 24px;\\r\\n width: var(--toolbox-buttons-size);\\r\\n height: 24px;\\r\\n height: var(--toolbox-buttons-size);\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n }\\r\\n.ce-toolbox__button:not(:last-of-type){\\r\\n margin-right: 10px;\\r\\n }\\r\\n.ce-toolbox__button:hover,\\r\\n .ce-toolbox__button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-toolbox__button--active{\\r\\n -webkit-animation: bounceIn 0.75s 1;\\r\\n animation: bounceIn 0.75s 1;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n }\\r\\n.ce-inline-toolbar {\\r\\n position: absolute;\\r\\n background-color: #FFFFFF;\\r\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n border-radius: 4px;\\r\\n z-index: 2\\r\\n}\\r\\n.ce-inline-toolbar::before {\\r\\n content: '';\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n position: absolute;\\r\\n top: -7px;\\r\\n left: 50%;\\r\\n margin-left: -7px;\\r\\n -webkit-transform: rotate(-45deg);\\r\\n transform: rotate(-45deg);\\r\\n background-color: #fff;\\r\\n z-index: -1;\\r\\n }\\r\\n.ce-inline-toolbar {\\r\\n padding: 6px;\\r\\n -webkit-transform: translateX(-50%);\\r\\n transform: translateX(-50%);\\r\\n display: none;\\r\\n -webkit-box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\r\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\r\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\r\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\r\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\r\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\r\\n}\\r\\n.ce-inline-toolbar--showed {\\r\\n display: block;\\r\\n }\\r\\n.ce-inline-toolbar [hidden] {\\r\\n display: none !important;\\r\\n }\\r\\n.ce-inline-tool {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n}\\r\\n.ce-inline-tool:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.ce-inline-tool:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.ce-inline-tool {\\r\\n line-height: normal;\\r\\n}\\r\\n.ce-inline-tool--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-inline-tool--last {\\r\\n margin-right: 0 !important;\\r\\n }\\r\\n.ce-inline-tool--link .icon {\\r\\n margin-top: -2px;\\r\\n }\\r\\n.ce-inline-tool--link .icon--unlink {\\r\\n display: none;\\r\\n }\\r\\n.ce-inline-tool--unlink .icon--link {\\r\\n display: none;\\r\\n }\\r\\n.ce-inline-tool--unlink .icon--unlink {\\r\\n display: inline-block;\\r\\n }\\r\\n.ce-inline-tool-input {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n outline: none;\\r\\n border: 0;\\r\\n border-radius: 3px;\\r\\n margin: 6px 0 0;\\r\\n font-size: 13px;\\r\\n padding: 8px;\\r\\n width: 100%;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n display: none\\r\\n }\\r\\n.ce-inline-tool-input::-webkit-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input:-ms-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input::-ms-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input::placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input--showed {\\r\\n display: block;\\r\\n }\\r\\n.ce-settings {\\r\\n position: absolute;\\r\\n background-color: #FFFFFF;\\r\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n border-radius: 4px;\\r\\n z-index: 2\\r\\n}\\r\\n.ce-settings::before {\\r\\n content: '';\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n position: absolute;\\r\\n top: -7px;\\r\\n left: 50%;\\r\\n margin-left: -7px;\\r\\n -webkit-transform: rotate(-45deg);\\r\\n transform: rotate(-45deg);\\r\\n background-color: #fff;\\r\\n z-index: -1;\\r\\n }\\r\\n.ce-settings {\\r\\n right: 5px;\\r\\n top: 35px;\\r\\n min-width: 124px\\r\\n}\\r\\n.ce-settings::before{\\r\\n left: auto;\\r\\n right: 12px;\\r\\n }\\r\\n.ce-settings {\\r\\n\\r\\n display: none;\\r\\n}\\r\\n.ce-settings--opened {\\r\\n display: block;\\r\\n }\\r\\n.ce-settings__plugin-zone:not(:empty){\\r\\n padding: 6px 6px 0;\\r\\n }\\r\\n.ce-settings__default-zone:not(:empty){\\r\\n padding: 6px;\\r\\n }\\r\\n.ce-settings__button {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n }\\r\\n.ce-settings__button:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.ce-settings__button:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.ce-settings__button {\\r\\n line-height: 32px;\\r\\n }\\r\\n.ce-settings__button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-settings__button--disabled {\\r\\n cursor: not-allowed !important;\\r\\n opacity: .3;\\r\\n }\\r\\n.ce-settings__button--selected {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-settings__button--delete {\\r\\n -webkit-transition: background-color 300ms ease;\\r\\n transition: background-color 300ms ease;\\r\\n will-change: background-color;\\r\\n }\\r\\n.ce-settings__button--delete .icon {\\r\\n -webkit-transition: -webkit-transform 200ms ease-out;\\r\\n transition: -webkit-transform 200ms ease-out;\\r\\n transition: transform 200ms ease-out;\\r\\n transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;\\r\\n will-change: transform;\\r\\n }\\r\\n.ce-settings__button--confirm {\\r\\n background-color: #E24A4A;\\r\\n background-color: var(--color-confirm);\\r\\n color: #fff\\r\\n }\\r\\n.ce-settings__button--confirm:hover {\\r\\n background-color: rgb(213, 74, 74) !important;\\r\\n background-color: rgb(213, 74, 74) !important;\\r\\n }\\r\\n.ce-settings__button--confirm .icon {\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n }\\r\\n.ce-block:first-of-type {\\r\\n margin-top: 0;\\r\\n }\\r\\n.ce-block--selected {\\r\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\r\\n border-radius: 3px;\\r\\n }\\r\\n.ce-block--stretched .ce-block__content {\\r\\n max-width: none;\\r\\n }\\r\\n.ce-block__content {\\r\\n position: relative;\\r\\n max-width: 650px;\\r\\n max-width: var(--content-width);\\r\\n margin: 0 auto;\\r\\n }\\r\\n.ce-block--drop-target .ce-block__content:before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: -20px;\\r\\n margin-top: -1px;\\r\\n height: 8px;\\r\\n width: 8px;\\r\\n border: solid #388AE5;\\r\\n border: solid var(--color-active-icon);\\r\\n border-width: 1px 1px 0 0;\\r\\n -webkit-transform-origin: right;\\r\\n transform-origin: right;\\r\\n -webkit-transform: rotate(45deg);\\r\\n transform: rotate(45deg);\\r\\n }\\r\\n.ce-block--drop-target .ce-block__content:after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n height: 1px;\\r\\n width: 100%;\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n background: repeating-linear-gradient(\\r\\n 90deg,\\r\\n #388AE5,\\r\\n #388AE5 1px,\\r\\n #fff 1px,\\r\\n #fff 6px\\r\\n );\\r\\n background: repeating-linear-gradient(\\r\\n 90deg,\\r\\n var(--color-active-icon),\\r\\n var(--color-active-icon) 1px,\\r\\n #fff 1px,\\r\\n #fff 6px\\r\\n );\\r\\n }\\r\\n.wobble {\\r\\n -webkit-animation-name: wobble;\\r\\n animation-name: wobble;\\r\\n -webkit-animation-duration: 400ms;\\r\\n animation-duration: 400ms;\\r\\n}\\r\\n/**\\r\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\r\\n */\\r\\n@-webkit-keyframes wobble {\\r\\n from {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n}\\r\\n@keyframes wobble {\\r\\n from {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n}\\r\\n@-webkit-keyframes bounceIn {\\r\\n from,\\r\\n 20%,\\r\\n 40%,\\r\\n 60%,\\r\\n 80%,\\r\\n to {\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 0% {\\r\\n -webkit-transform: scale3d(0.86, 0.86, 0.86);\\r\\n transform: scale3d(0.86, 0.86, 0.86);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\r\\n transform: scale3d(1.1, 1.1, 1.1);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\r\\n transform: scale3d(1.03, 1.03, 1.03);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\r\\n transform: scale3d(0.97, 0.97, 0.97);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n@keyframes bounceIn {\\r\\n from,\\r\\n 20%,\\r\\n 40%,\\r\\n 60%,\\r\\n 80%,\\r\\n to {\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 0% {\\r\\n -webkit-transform: scale3d(0.86, 0.86, 0.86);\\r\\n transform: scale3d(0.86, 0.86, 0.86);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\r\\n transform: scale3d(1.1, 1.1, 1.1);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\r\\n transform: scale3d(1.03, 1.03, 1.03);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\r\\n transform: scale3d(0.97, 0.97, 0.97);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n/**\\r\\n * Block Tool wrapper\\r\\n */\\r\\n.cdx-block {\\r\\n padding: 0.7em 0;\\r\\n}\\r\\n/**\\r\\n * Input\\r\\n */\\r\\n.cdx-input {\\r\\n border: 1px solid #E8E8EB;\\r\\n border: 1px solid var(--color-gray-border);\\r\\n -webkit-box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\r\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\r\\n border-radius: 3px;\\r\\n padding: 10px 12px;\\r\\n outline: none;\\r\\n width: 100%;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n/**\\r\\n * Settings\\r\\n */\\r\\n.cdx-settings-button {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n}\\r\\n.cdx-settings-button:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.cdx-settings-button:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.cdx-settings-button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.cdx-settings-button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n/**\\r\\n * Loader\\r\\n */\\r\\n.cdx-loader {\\r\\n position: relative;\\r\\n border: 1px solid #E8E8EB;\\r\\n border: 1px solid var(--color-gray-border)\\r\\n}\\r\\n.cdx-loader::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top: 50%;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n margin: -11px 0 0 -11px;\\r\\n border: 2px solid #E8E8EB;\\r\\n border: 2px solid var(--color-gray-border);\\r\\n border-left-color: #388AE5;\\r\\n border-left-color: var(--color-active-icon);\\r\\n border-radius: 50%;\\r\\n -webkit-animation: cdxRotation 1.2s infinite linear;\\r\\n animation: cdxRotation 1.2s infinite linear;\\r\\n }\\r\\n@-webkit-keyframes cdxRotation {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n@keyframes cdxRotation {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\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-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/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/babel-runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/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.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 ^\\.\\/.*$","webpack://CodexEditor/./src/components/modules/_notifications.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/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.js","webpack://CodexEditor/./src/components/modules/listeners.js","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","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","_promise2","obj","_interopRequireDefault","fn","gen","apply","arguments","resolve","reject","step","arg","info","error","done","then","err","instance","Constructor","_defineProperty2","defineProperties","target","props","descriptor","protoProps","staticProps","_setPrototypeOf2","_create2","_typeof3","subClass","superClass","constructor","__proto__","ReferenceError","_isIterable3","_getIterator3","arr","isArray","_arr","_n","_d","_e","undefined","_s","_i","next","push","sliceIterator","_from2","arr2","_iterator2","_symbol2","_typeof","g","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","iter","result","toString","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","previousPromise","callInvokeWithMethodAndArg","Promise","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","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","process","isNode","head","last","notify","flush","parent","domain","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","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","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","eval","CodexEditor","configuration","_this","_classCallCheck3","onReady","editor","Core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","$","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","save","pluginsContent","extractedBlock","sanitize","sanitizeBlock","measuringStart","performance","measuringEnd","finishedExtraction","_utils2","isValid","_this3","_blockTuneMoveUp2","_blockTuneDelete2","_blockTuneMoveDown2","tune","tunesElement","createDocumentFragment","_dom2","append","render","blockData","rules","_this4","cleanData","isEmpty","sanitizer","contentNode","selector","inputs","array","querySelectorAll","input","contains","querySelector","contentless","emptyText","emptyMedia","hasMedia","selected","wrapperStretched","dropTarget","onFail","holderId","tools","constructModules","configureModules","getModulesDiff","diff","moduleName","modulesToPrepare","_asyncToGenerator3","_regenerator2","_callee","_context","prepare","t0","Renderer","initialBlock","initialBlockData","placeholder","hideToolbar","onChange","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","./_notifications","./_notifications.js","./api","./api-blocks","./api-blocks.ts","./api-caret","./api-caret.ts","./api-events","./api-events.ts","./api-listener","./api-listener.ts","./api-sanitizer","./api-sanitizer.ts","./api-saver","./api-saver.ts","./api-selection","./api-selection.ts","./api-styles","./api-styles.ts","./api-toolbar","./api-toolbar.ts","./api.ts","./block-events","./block-events.ts","./blockManager","./blockManager.js","./caret","./caret.js","./dragNDrop","./dragNDrop.ts","./events","./events.js","./listeners","./listeners.js","./modificationsObserver","./modificationsObserver.ts","./paste","./paste.ts","./renderer","./renderer.js","./sanitizer","./sanitizer.js","./saver","./saver.js","./shortcuts","./shortcuts.ts","./toolbar","./toolbar-blockSettings","./toolbar-blockSettings.js","./toolbar-inline","./toolbar-inline.ts","./toolbar-toolbox","./toolbar-toolbox.js","./toolbar.js","./tools","./tools.js","./ui","./ui.js","webpackContext","req","webpackContextResolve","notifications","codex","addToQueue","createHolder","draw","body","errorThrown","errorMsg","notification","message","constructorSettings","cancel","confirm","inputField","confirmHandler","cancelHandler","okBtn","cancelBtn","okMsg","cancelMsg","listeners","dataset","send","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","plusButton","show","getBlockByChildNode","Tools","toolsAvailable","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","isInitial","BM","isFirstBlock","canMergeBlocks","isAtStart","targetBlock","blockToMerge","mergeable","createShadow","mergeBlocks","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","Blocks","redactor","Proxy","available","bindEvents","keydown","mouseUp","keyup","dragOver","dragLeave","newIndex","composeBlock","blockToMergeIndex","blockToMergeInfo","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","workingArea","second","secondBlock","deleteCount","insertAdjacentElement","nextBlock","children","position","positions","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","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","DragNDrop","isStartedAtEditor","processDrop","dropEvent","_this$Editor","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","findOne","existingListeners","findAll","listenersOnElement","listenersWithType","listenersWithHandler","foundListeners","foundByElements","findByElement","mutationDebouncer","debounce","DebounceTimer","setObserver","_Editor","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref2","_ref3","_slicedToArray3","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref4","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","plainData","getData","htmlData","_keys2","customConfig","_assign2","defaultConfig","isHTMLString","processText","blockTools","_entries2","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref7","_ref8","pattern","getBlock","_this5","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref11","_ref12","_ref12$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref14","_callee6","_context6","_this6","insertBlock","_x8","_x9","_caret2","_this7","_Editor3","initialTool","getNodes","_Tools$blockTools$too","toolTags","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","insertedBlock","substitute","execResult","canReplaceCurrentBlock","_Editor6","_this8","reducer","destNode","DocumentFragment","isFragment","_ref18$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref19","containsBlockElements","_ref20","chainData","_loop","function","sequence","_sanitizerInstance","sanitizerConfig","sanitizerInstance","newConfig","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","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","SHORTCUT","enableShortcuts","surround","toolsInstances","allTools","externalTools","_map2","bold","constructInline","_inlineToolBold2","italic","_inlineToolItalic2","_inlineToolLink2","inline","toolbox","activeButtonIndex","displayedToolsCount","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","contentOffset","transform","offsetTop","toolbarOpened","settingsTogglerClicked","plusButtonHidden","Paragraph","toolsSettings","toolsUnavailable","_inlineTools","paragraph","sequenceData","getListOfPrepareFunctions","success","fallback","toolPreparationList","CONFIG","plugin","IS_INLINE","notImplementedMethods","_ref5","_ref6","_ref9","IS_CONTENTLESS","IS_PASTE_DISALLOWED","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","highlightCurrentNode","clickedOnInlineToolbarButton","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","marl","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","successCallback","fallbackCallback","_callee2","previousValue","currentValue","_context2","waitNextBlock","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","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\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\n\\n\\n\\r\\n \\r\\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';\r\n\r\n/**\r\n * Apply polyfills\r\n */\r\nimport 'babel-core/register';\r\nif (!window || !window._babelPolyfill) require('babel-polyfill');\r\nimport 'components/polyfills';\r\nimport Core from './components/core';\r\n\r\n/**\r\n * Codex Editor\r\n *\r\n * Short Description (눈_눈;)\r\n * @version 2.0\r\n *\r\n * @author CodeX-Team \r\n */\r\nexport default class CodexEditor {\r\n /** Editor version */\r\n static get version() {\r\n return VERSION;\r\n }\r\n\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig|String} [configuration] - user configuration\r\n */\r\n constructor(configuration) {\r\n /**\r\n * Set default onReady function\r\n */\r\n let onReady = () => {};\r\n\r\n /**\r\n * If `onReady` was passed in `configuration` then redefine onReady function\r\n */\r\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\r\n onReady = configuration.onReady;\r\n }\r\n\r\n /**\r\n * Create a CodeX Editor instance\r\n */\r\n const editor = new Core(configuration);\r\n\r\n /**\r\n * We need to export isReady promise in the constructor\r\n * as it can be used before other API methods are exported\r\n * @type {Promise}\r\n */\r\n this.isReady = editor.isReady.then(() => {\r\n this.exportAPI(editor);\r\n onReady();\r\n });\r\n }\r\n\r\n /**\r\n * Export external API methods\r\n *\r\n * @param editor\r\n */\r\n exportAPI(editor) {\r\n const fieldsToExport = [ 'configuration' ];\r\n const destroy = () => {\r\n editor.moduleInstances.Listeners.removeAll();\r\n editor.moduleInstances.UI.destroy();\r\n editor.moduleInstances.ModificationsObserver.destroy();\r\n editor = null;\r\n\r\n for (const field in this) {\r\n delete this[field];\r\n }\r\n\r\n Object.setPrototypeOf(this, null);\r\n };\r\n\r\n fieldsToExport.forEach(field => {\r\n this[field] = editor[field];\r\n });\r\n\r\n this.destroy = destroy;\r\n\r\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\r\n\r\n delete this['exportAPI'];\r\n }\r\n}\r\n","import IEditor from './interfaces/editor';\r\nimport IEditorConfig from './interfaces/editor-config';\r\nimport IModuleConfig from './interfaces/module-config';\r\n\r\n/**\r\n * @abstract\r\n * @class Module\r\n * @classdesc All modules inherits from this class.\r\n *\r\n * @typedef {Module} Module\r\n * @property {Object} config - Editor user settings\r\n * @property {IEditorConfig} Editor - List of Editor modules\r\n */\r\nexport default class Module {\r\n\r\n /**\r\n * Editor modules list\r\n * @type {IEditor}\r\n */\r\n protected Editor: IEditor;\r\n\r\n /**\r\n * Editor configuration object\r\n * @type {IEditorConfig}\r\n */\r\n protected config: IEditorConfig;\r\n\r\n /**\r\n * @constructor\r\n * @param {IModuleConfig}\r\n */\r\n constructor({config}: IModuleConfig) {\r\n if (new.target === Module) {\r\n throw new TypeError('Constructors for abstract class Module are not allowed.');\r\n }\r\n\r\n this.config = config;\r\n }\r\n\r\n /**\r\n * Editor modules setter\r\n * @param {IEditor} Editor\r\n */\r\n set state(Editor) {\r\n this.Editor = Editor;\r\n }\r\n}\r\n","/**\r\n * @class DeleteTune\r\n * @classdesc Editor's default tune that moves up selected block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class DeleteTune implements IBlockTune {\r\n\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {docs/api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n wrapper: 'ass',\r\n button: 'ce-settings__button',\r\n buttonDelete: 'ce-settings__button--delete',\r\n buttonConfirm: 'ce-settings__button--confirm',\r\n };\r\n\r\n /**\r\n * Delete confirmation\r\n */\r\n private needConfirmation: boolean;\r\n\r\n /**\r\n * set false confirmation state\r\n */\r\n private resetConfirmation: () => void;\r\n\r\n /**\r\n * Tune nodes\r\n */\r\n private nodes = {\r\n button: null,\r\n };\r\n\r\n /**\r\n * DeleteTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n constructor({api}) {\r\n this.api = api;\r\n\r\n this.resetConfirmation = () => {\r\n this.setConfirmation(false);\r\n };\r\n }\r\n\r\n /**\r\n * Create \"Delete\" button and add click event listener\r\n * @returns [Element}\r\n */\r\n public render() {\r\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\r\n this.nodes.button.appendChild($.svg('cross', 12, 12));\r\n this.api.listener.on(this.nodes.button, 'click', (event) => this.handleClick(event), false);\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Delete block conditions passed\r\n * @param {MouseEvent} event\r\n */\r\n public handleClick(event: MouseEvent): void {\r\n\r\n /**\r\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\r\n * otherwise delete block\r\n */\r\n if (!this.needConfirmation) {\r\n this.setConfirmation(true);\r\n\r\n /**\r\n * Subscribe on event.\r\n * When toolbar block settings is closed but block deletion is not confirmed,\r\n * then reset confirmation state\r\n */\r\n this.api.events.on('block-settings-closed', this.resetConfirmation);\r\n\r\n } else {\r\n\r\n /**\r\n * Unsubscribe from block-settings closing event\r\n */\r\n this.api.events.off('block-settings-closed', this.resetConfirmation);\r\n\r\n this.api.blocks.delete();\r\n\r\n /**\r\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\r\n */\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n /**\r\n * change tune state\r\n */\r\n private setConfirmation(state): void {\r\n this.needConfirmation = state;\r\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\r\n }\r\n\r\n}\r\n","/**\r\n * @class MoveDownTune\r\n * @classdesc Editor's default tune - Moves down highlighted block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class MoveDownTune implements IBlockTune {\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n button: 'ce-settings__button',\r\n wrapper: 'ce-tune-move-down',\r\n animation: 'wobble',\r\n };\r\n\r\n /**\r\n * MoveDownTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n public constructor({api}) {\r\n this.api = api;\r\n }\r\n\r\n /**\r\n * Return 'move down' button\r\n */\r\n public render() {\r\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\r\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\r\n this.api.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\r\n return moveDownButton;\r\n }\r\n\r\n /**\r\n * Handle clicks on 'move down' button\r\n * @param {MouseEvent} event\r\n * @param {HTMLElement} button\r\n */\r\n public handleClick(event: MouseEvent, button: HTMLElement) {\r\n\r\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\r\n\r\n // If Block is last do nothing\r\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\r\n button.classList.add(this.CSS.animation);\r\n\r\n window.setTimeout( () => {\r\n button.classList.remove(this.CSS.animation);\r\n }, 500);\r\n return;\r\n }\r\n\r\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1).holder,\r\n nextBlockCoords = nextBlockElement.getBoundingClientRect();\r\n\r\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\r\n\r\n /**\r\n * Next block ends on screen.\r\n * Increment scroll by next block's height to save element onscreen-position\r\n */\r\n if (nextBlockCoords.top < window.innerHeight) {\r\n\r\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\r\n\r\n }\r\n\r\n window.scrollTo(0, scrollOffset);\r\n\r\n /** Change blocks positions */\r\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\r\n\r\n }\r\n}\r\n","/**\r\n * @class MoveUpTune\r\n * @classdesc Editor's default tune that moves up selected block\r\n *\r\n * @copyright 2018\r\n */\r\nimport IBlockTune from '../interfaces/block-tune';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class MoveUpTune implements IBlockTune {\r\n\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {api.md}\r\n */\r\n private readonly api: any;\r\n\r\n /**\r\n * Styles\r\n * @type {{wrapper: string}}\r\n */\r\n private CSS = {\r\n button: 'ce-settings__button',\r\n wrapper: 'ce-tune-move-up',\r\n animation: 'wobble',\r\n };\r\n\r\n /**\r\n * MoveUpTune constructor\r\n *\r\n * @param {Object} api\r\n */\r\n public constructor({api}) {\r\n this.api = api;\r\n }\r\n\r\n /**\r\n * Create \"MoveUp\" button and add click event listener\r\n * @returns [HTMLElement}\r\n */\r\n public render(): HTMLElement {\r\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\r\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\r\n this.api.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\r\n return moveUpButton;\r\n }\r\n\r\n /**\r\n * Move current block up\r\n * @param {MouseEvent} event\r\n * @param {HTMLElement} button\r\n */\r\n public handleClick(event: MouseEvent, button: HTMLElement): void {\r\n\r\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\r\n\r\n if (currentBlockIndex === 0) {\r\n button.classList.add(this.CSS.animation);\r\n\r\n window.setTimeout( () => {\r\n button.classList.remove(this.CSS.animation);\r\n }, 500);\r\n return;\r\n }\r\n\r\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex).holder,\r\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\r\n\r\n /**\r\n * Here is two cases:\r\n * - when previous block has negative offset and part of it is visible on window, then we scroll\r\n * by window's height and add offset which is mathematically difference between two blocks\r\n *\r\n * - when previous block is visible and has offset from the window,\r\n * than we scroll window to the difference between this offsets.\r\n */\r\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\r\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\r\n\r\n let scrollUpOffset;\r\n\r\n if (previousBlockCoords.top > 0) {\r\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\r\n } else {\r\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\r\n }\r\n\r\n window.scrollBy(0, -1 * scrollUpOffset);\r\n\r\n /** Change blocks positions */\r\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\r\n }\r\n}\r\n","import IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\r\nimport $ from './dom';\r\nimport _ from './utils';\r\n\r\ntype Tool = any;\r\n\r\n/**\r\n * @class Block\r\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\r\n *\r\n * @property {Tool} tool — current block tool (Paragraph, for example)\r\n * @property {Object} CSS — block`s css classes\r\n *\r\n */\r\n\r\n/** Import default tunes */\r\nimport MoveUpTune from './block-tunes/block-tune-move-up';\r\nimport DeleteTune from './block-tunes/block-tune-delete';\r\nimport MoveDownTune from './block-tunes/block-tune-move-down';\r\nimport {IAPI} from './interfaces/api';\r\n\r\n/**\r\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\r\n *\r\n * @property tool - Tool instance\r\n * @property html - Returns HTML content of plugin\r\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\r\n * @property pluginsContent - HTML content that returns by Tool's render function\r\n */\r\nexport default class Block {\r\n\r\n /**\r\n * CSS classes for the Block\r\n * @return {{wrapper: string, content: string}}\r\n */\r\n static get CSS(): {wrapper: string, wrapperStretched: string, content: string, selected: string, dropTarget: string} {\r\n return {\r\n wrapper: 'ce-block',\r\n wrapperStretched: 'ce-block--stretched',\r\n content: 'ce-block__content',\r\n selected: 'ce-block--selected',\r\n dropTarget: 'ce-block--drop-target',\r\n };\r\n }\r\n\r\n /**\r\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\r\n *\r\n * @returns {HTMLElement[]}\r\n */\r\n get inputs(): HTMLElement[] {\r\n const content = this.holder;\r\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\r\n\r\n const selector = '[contenteditable], textarea, input, '\r\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\r\n\r\n const inputs = _.array(content.querySelectorAll(selector));\r\n\r\n /**\r\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\r\n */\r\n if (this.inputIndex > inputs.length - 1) {\r\n this.inputIndex = inputs.length - 1;\r\n }\r\n\r\n return inputs;\r\n }\r\n\r\n /**\r\n * Return current Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get currentInput(): HTMLElement {\r\n return this.inputs[this.inputIndex];\r\n }\r\n\r\n /**\r\n * Set input index to the passed element\r\n *\r\n * @param {HTMLElement} element\r\n */\r\n set currentInput(element: HTMLElement) {\r\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\r\n\r\n if (index !== -1) {\r\n this.inputIndex = index;\r\n }\r\n }\r\n\r\n /**\r\n * Return first Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get firstInput(): HTMLElement {\r\n return this.inputs[0];\r\n }\r\n\r\n /**\r\n * Return first Tool`s input\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get lastInput(): HTMLElement {\r\n const inputs = this.inputs;\r\n\r\n return inputs[inputs.length - 1];\r\n }\r\n\r\n /**\r\n * Return next Tool`s input or undefined if it doesn't exist\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get nextInput(): HTMLElement {\r\n return this.inputs[this.inputIndex + 1];\r\n }\r\n\r\n /**\r\n * Return previous Tool`s input or undefined if it doesn't exist\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n get previousInput(): HTMLElement {\r\n return this.inputs[this.inputIndex - 1];\r\n }\r\n\r\n /**\r\n * Returns Plugins content\r\n * @return {Node}\r\n */\r\n get pluginsContent(): Node {\r\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\r\n\r\n if (pluginsContent && pluginsContent.childNodes.length) {\r\n return pluginsContent.childNodes[0];\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Get Block's JSON data\r\n * @return {Object}\r\n */\r\n get data(): object {\r\n return this.save();\r\n }\r\n\r\n /**\r\n * is block mergeable\r\n * We plugin have merge function then we call it mergable\r\n * @return {boolean}\r\n */\r\n get mergeable(): boolean {\r\n return typeof this.tool.merge === 'function';\r\n }\r\n\r\n /**\r\n * Check block for emptiness\r\n * @return {Boolean}\r\n */\r\n get isEmpty(): boolean {\r\n /**\r\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\r\n * That Tools are not empty\r\n */\r\n if (this.class.contentless) {\r\n return false;\r\n }\r\n\r\n const emptyText = $.isEmpty(this.pluginsContent),\r\n emptyMedia = !this.hasMedia;\r\n\r\n return emptyText && emptyMedia;\r\n }\r\n\r\n /**\r\n * Check if block has a media content such as images, iframes and other\r\n * @return {Boolean}\r\n */\r\n get hasMedia(): boolean {\r\n /**\r\n * This tags represents media-content\r\n * @type {string[]}\r\n */\r\n const mediaTags = [\r\n 'img',\r\n 'iframe',\r\n 'video',\r\n 'audio',\r\n 'source',\r\n 'input',\r\n 'textarea',\r\n 'twitterwidget',\r\n ];\r\n\r\n return !!this.holder.querySelector(mediaTags.join(','));\r\n }\r\n\r\n /**\r\n * Set selected state\r\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\r\n */\r\n set selected(state: boolean) {\r\n /**\r\n * We don't need to mark Block as Selected when it is not empty\r\n */\r\n if (state === true && !this.isEmpty) {\r\n this.holder.classList.add(Block.CSS.selected);\r\n } else {\r\n this.holder.classList.remove(Block.CSS.selected);\r\n }\r\n }\r\n\r\n /**\r\n * Set stretched state\r\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\r\n */\r\n set stretched(state: boolean) {\r\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\r\n }\r\n\r\n public name: string;\r\n public tool: Tool;\r\n public class: any;\r\n public settings: object;\r\n public holder: HTMLDivElement;\r\n public tunes: IBlockTune[];\r\n private readonly api: IAPI;\r\n private inputIndex = 0;\r\n\r\n /**\r\n * @constructor\r\n * @param {String} toolName - Tool name that passed on initialization\r\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\r\n * @param {Object} toolClass — Tool's class\r\n * @param {Object} settings - default settings\r\n * @param {Object} apiMethods - Editor API\r\n */\r\n constructor(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: IAPI) {\r\n this.name = toolName;\r\n this.tool = toolInstance;\r\n this.class = toolClass;\r\n this.settings = settings;\r\n this.api = apiMethods;\r\n this.holder = this.compose();\r\n\r\n /**\r\n * @type {IBlockTune[]}\r\n */\r\n this.tunes = this.makeTunes();\r\n }\r\n\r\n /**\r\n * Calls Tool's method\r\n *\r\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\r\n *\r\n * @param {String} methodName\r\n * @param {Object} params\r\n */\r\n public call(methodName: string, params: object) {\r\n /**\r\n * call Tool's method with the instance context\r\n */\r\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\r\n this.tool[methodName].call(this.tool, params);\r\n }\r\n }\r\n\r\n /**\r\n * Call plugins merge method\r\n * @param {Object} data\r\n */\r\n public mergeWith(data: object): Promise {\r\n return Promise.resolve()\r\n .then(() => {\r\n this.tool.merge(data);\r\n });\r\n }\r\n /**\r\n * Extracts data from Block\r\n * Groups Tool's save processing time\r\n * @return {Object}\r\n */\r\n public async save(): Promise {\r\n let extractedBlock = await this.tool.save(this.pluginsContent);\r\n\r\n /**\r\n * if Tool provides custom sanitizer config\r\n * then use this config\r\n */\r\n if (this.tool.sanitize && typeof this.tool.sanitize === 'object') {\r\n extractedBlock = this.sanitizeBlock(extractedBlock, this.tool.sanitize);\r\n }\r\n\r\n /**\r\n * Measuring execution time\r\n */\r\n const measuringStart = window.performance.now();\r\n let measuringEnd;\r\n\r\n return Promise.resolve(extractedBlock)\r\n .then((finishedExtraction) => {\r\n /** measure promise execution */\r\n measuringEnd = window.performance.now();\r\n\r\n return {\r\n tool: this.name,\r\n data: finishedExtraction,\r\n time : measuringEnd - measuringStart,\r\n };\r\n })\r\n .catch(function(error) {\r\n _.log(`Saving proccess for ${this.tool.name} tool failed due to the ${error}`, 'log', 'red');\r\n });\r\n }\r\n\r\n /**\r\n * Uses Tool's validation method to check the correctness of output data\r\n * Tool's validation method is optional\r\n *\r\n * @description Method also can return data if it passed the validation\r\n *\r\n * @param {Object} data\r\n * @returns {Boolean|Object} valid\r\n */\r\n public validateData(data: object): object|false {\r\n let isValid = true;\r\n\r\n if (this.tool.validate instanceof Function) {\r\n isValid = this.tool.validate(data);\r\n }\r\n\r\n if (!isValid) {\r\n return false;\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /**\r\n * Make an array with default settings\r\n * Each block has default tune instance that have states\r\n * @return {IBlockTune[]}\r\n */\r\n public makeTunes(): IBlockTune[] {\r\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\r\n\r\n // Pluck tunes list and return tune instances with passed Editor API and settings\r\n return tunesList.map( (tune: IBlockTuneConstructor) => {\r\n return new tune({\r\n api: this.api,\r\n settings: this.settings,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\r\n * @return {DocumentFragment}\r\n */\r\n public renderTunes(): DocumentFragment {\r\n const tunesElement = document.createDocumentFragment();\r\n\r\n this.tunes.forEach( (tune) => {\r\n $.append(tunesElement, tune.render());\r\n });\r\n\r\n return tunesElement;\r\n }\r\n\r\n /**\r\n * Method recursively reduces Block's data and cleans with passed rules\r\n *\r\n * @param {Object|string} blockData - taint string or object/array that contains taint string\r\n * @param {Object} rules - object with sanitizer rules\r\n */\r\n private sanitizeBlock(blockData, rules) {\r\n\r\n /**\r\n * Case 1: Block data is Array\r\n * Array's in JS can not be enumerated with for..in because result will be Object not Array\r\n * which conflicts with Consistency\r\n */\r\n if (Array.isArray(blockData)) {\r\n /**\r\n * Create new \"cleanData\" array and fill in with sanitizer data\r\n */\r\n return blockData.map((item) => {\r\n return this.sanitizeBlock(item, rules);\r\n });\r\n } else if (typeof blockData === 'object') {\r\n\r\n /**\r\n * Create new \"cleanData\" object and fill with sanitized objects\r\n */\r\n const cleanData = {};\r\n\r\n /**\r\n * Object's may have 3 cases:\r\n * 1. When Data is Array. Then call again itself and recursively clean arrays items\r\n * 2. When Data is Object that can have object's inside. Do the same, call itself and clean recursively\r\n * 3. When Data is base type (string, int, bool, ...). Check if rule is passed\r\n */\r\n for (const data in blockData) {\r\n if (Array.isArray(blockData[data]) || typeof blockData[data] === 'object') {\r\n /**\r\n * Case 1 & Case 2\r\n */\r\n if (rules[data]) {\r\n cleanData[data] = this.sanitizeBlock(blockData[data], rules[data]);\r\n } else if (_.isEmpty(rules)) {\r\n cleanData[data] = this.sanitizeBlock(blockData[data], rules);\r\n } else {\r\n cleanData[data] = blockData[data];\r\n }\r\n\r\n } else {\r\n /**\r\n * Case 3.\r\n */\r\n if (rules[data]) {\r\n cleanData[data] = this.api.sanitizer.clean(blockData[data], rules[data]);\r\n } else {\r\n cleanData[data] = this.api.sanitizer.clean(blockData[data], rules);\r\n }\r\n }\r\n }\r\n\r\n return cleanData;\r\n } else {\r\n /**\r\n * In case embedded objects use parent rules\r\n */\r\n return this.api.sanitizer.clean(blockData, rules);\r\n }\r\n }\r\n\r\n /**\r\n * Toggle drop target state\r\n * @param {boolean} state\r\n */\r\n public set dropTarget(state) {\r\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\r\n }\r\n\r\n /**\r\n * Make default Block wrappers and put Tool`s content there\r\n * @returns {HTMLDivElement}\r\n */\r\n private compose(): HTMLDivElement {\r\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\r\n contentNode = $.make('div', Block.CSS.content),\r\n pluginsContent = this.tool.render();\r\n\r\n contentNode.appendChild(pluginsContent);\r\n wrapper.appendChild(contentNode);\r\n return wrapper;\r\n }\r\n}\r\n","/**\r\n * @typedef {Core} Core - editor core class\r\n */\r\n\r\n/**\r\n * Dynamically imported utils\r\n *\r\n * @typedef {Dom} $ - {@link components/dom.js}\r\n * @typedef {Util} _ - {@link components/utils.js}\r\n */\r\n\r\n/**\r\n * Require Editor modules places in components/modules dir\r\n */\r\n// eslint-disable-next-line\r\nlet modules = editorModules.map( module => require('./modules/' + module ));\r\n\r\n/**\r\n * @class Core\r\n *\r\n * @classdesc CodeX Editor core class\r\n *\r\n * @property this.config - all settings\r\n * @property this.moduleInstances - constructed editor components\r\n *\r\n * @type {Core}\r\n */\r\nexport default class Core {\r\n /**\r\n * @param {EditorConfig} config - user configuration\r\n *\r\n */\r\n constructor(config) {\r\n /**\r\n * Configuration object\r\n * @type {EditorConfig}\r\n */\r\n this.config = {};\r\n\r\n /**\r\n * @typedef {Object} EditorComponents\r\n * @property {BlockManager} BlockManager\r\n * @property {Tools} Tools\r\n * @property {Events} Events\r\n * @property {UI} UI\r\n * @property {Toolbar} Toolbar\r\n * @property {Toolbox} Toolbox\r\n * @property {BlockSettings} BlockSettings\r\n * @property {Renderer} Renderer\r\n * @property {InlineToolbar} InlineToolbar\r\n */\r\n this.moduleInstances = {};\r\n\r\n /**\r\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\r\n */\r\n let onReady, onFail;\r\n\r\n this.isReady = new Promise((resolve, reject) => {\r\n onReady = resolve;\r\n onFail = reject;\r\n });\r\n\r\n Promise.resolve()\r\n .then(() => {\r\n this.configuration = config;\r\n })\r\n .then(() => this.validate())\r\n .then(() => this.init())\r\n .then(() => this.start())\r\n .then(() => {\r\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\r\n\r\n setTimeout(() => {\r\n /**\r\n * Resolve this.isReady promise\r\n */\r\n onReady();\r\n }, 500);\r\n })\r\n .catch(error => {\r\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\r\n\r\n /**\r\n * Reject this.isReady promise\r\n */\r\n onFail(error);\r\n });\r\n }\r\n\r\n /**\r\n * Setting for configuration\r\n * @param {IEditorConfig|string|null} config\r\n */\r\n set configuration(config) {\r\n /**\r\n * Process zero-configuration or with only holderId\r\n */\r\n if (typeof config === 'string' || typeof config === 'undefined') {\r\n config = {\r\n holderId: config\r\n };\r\n }\r\n\r\n /**\r\n * If initial Block's Tool was not passed, use the Paragraph Tool\r\n */\r\n this.config.initialBlock = config.initialBlock || 'paragraph';\r\n\r\n /**\r\n * Initial block type\r\n * Uses in case when there is no blocks passed\r\n * @type {{type: (*), data: {text: null}}}\r\n */\r\n let initialBlockData = {\r\n type : this.config.initialBlock,\r\n data : {}\r\n };\r\n\r\n this.config.holderId = config.holderId || 'codex-editor';\r\n this.config.placeholder = config.placeholder || 'write your story...';\r\n this.config.sanitizer = config.sanitizer || {\r\n p: true,\r\n b: true,\r\n a: true\r\n };\r\n\r\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\r\n this.config.tools = config.tools || {};\r\n this.config.data = config.data || {};\r\n this.config.onReady = config.onReady || function () {};\r\n this.config.onChange = config.onChange || function () {};\r\n\r\n /**\r\n * Initialize Blocks to pass data to the Renderer\r\n */\r\n if (_.isEmpty(this.config.data)) {\r\n this.config.data = {};\r\n this.config.data.blocks = [ initialBlockData ];\r\n } else {\r\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\r\n this.config.data.blocks = [ initialBlockData ];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Returns private property\r\n * @returns {EditorConfig}\r\n */\r\n get configuration() {\r\n return this.config;\r\n }\r\n\r\n /**\r\n * Checks for required fields in Editor's config\r\n * @returns {void|Promise}\r\n */\r\n validate() {\r\n /**\r\n * Check if holderId is not empty\r\n */\r\n if (!this.config.holderId) {\r\n return Promise.reject('«holderId» param must being not empty');\r\n }\r\n\r\n /**\r\n * Check for a holder element's existence\r\n */\r\n if (!$.get(this.config.holderId)) {\r\n return Promise.reject(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\r\n }\r\n\r\n /**\r\n * Check Tools for a class containing\r\n */\r\n for (let toolName in this.config.tools) {\r\n const tool = this.config.tools[toolName];\r\n\r\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\r\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Initializes modules:\r\n * - make and save instances\r\n * - configure\r\n */\r\n init() {\r\n /**\r\n * Make modules instances and save it to the @property this.moduleInstances\r\n */\r\n this.constructModules();\r\n\r\n /**\r\n * Modules configuration\r\n */\r\n this.configureModules();\r\n }\r\n\r\n /**\r\n * Make modules instances and save it to the @property this.moduleInstances\r\n */\r\n constructModules() {\r\n modules.forEach( Module => {\r\n try {\r\n /**\r\n * We use class name provided by displayName property\r\n *\r\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\r\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\r\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\r\n */\r\n this.moduleInstances[Module.displayName] = new Module({\r\n config : this.configuration\r\n });\r\n } catch ( e ) {\r\n console.log('Module %o skipped because %o', Module, e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Modules instances configuration:\r\n * - pass other modules to the 'state' property\r\n * - ...\r\n */\r\n configureModules() {\r\n for(let name in this.moduleInstances) {\r\n /**\r\n * Module does not need self-instance\r\n */\r\n this.moduleInstances[name].state = this.getModulesDiff( name );\r\n }\r\n }\r\n\r\n /**\r\n * Return modules without passed name\r\n */\r\n getModulesDiff( name ) {\r\n let diff = {};\r\n\r\n for(let moduleName in this.moduleInstances) {\r\n /**\r\n * Skip module with passed name\r\n */\r\n if (moduleName === name) {\r\n continue;\r\n }\r\n diff[moduleName] = this.moduleInstances[moduleName];\r\n }\r\n\r\n return diff;\r\n }\r\n\r\n /**\r\n * Start Editor!\r\n *\r\n * Get list of modules that needs to be prepared and return a sequence (Promise)\r\n * @return {Promise}\r\n */\r\n async start() {\r\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste', 'DragNDrop', 'ModificationsObserver'];\r\n\r\n await modulesToPrepare.reduce(\r\n (promise, module) => promise.then(async () => {\r\n _.log(`Preparing ${module} module`, 'time');\r\n\r\n try {\r\n await this.moduleInstances[module].prepare();\r\n } catch (e) {\r\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\r\n }\r\n _.log(`Preparing ${module} module`, 'timeEnd');\r\n }),\r\n Promise.resolve()\r\n );\r\n\r\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\r\n }\r\n};\r\n","/**\r\n * DOM manipulations helper\r\n */\r\nexport default class Dom {\r\n /**\r\n * Check if passed tag has no closed tag\r\n * @param {HTMLElement} tag\r\n * @return {Boolean}\r\n */\r\n public static isSingleTag(tag: HTMLElement): boolean {\r\n return tag.tagName && [\r\n 'AREA',\r\n 'BASE',\r\n 'BR',\r\n 'COL',\r\n 'COMMAND',\r\n 'EMBED',\r\n 'HR',\r\n 'IMG',\r\n 'INPUT',\r\n 'KEYGEN',\r\n 'LINK',\r\n 'META',\r\n 'PARAM',\r\n 'SOURCE',\r\n 'TRACK',\r\n 'WBR',\r\n ].includes(tag.tagName);\r\n }\r\n\r\n /**\r\n * Helper for making Elements with classname and attributes\r\n *\r\n * @param {string} tagName - new Element tag name\r\n * @param {array|string} classNames - list or name of CSS classname(s)\r\n * @param {Object} attributes - any attributes\r\n * @return {Element}\r\n */\r\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\r\n const el = document.createElement(tagName);\r\n\r\n if ( Array.isArray(classNames) ) {\r\n el.classList.add(...classNames);\r\n } else if ( classNames ) {\r\n el.classList.add(classNames);\r\n }\r\n\r\n for (const attrName in attributes) {\r\n if (attributes.hasOwnProperty(attrName)) {\r\n el[attrName] = attributes[attrName];\r\n }\r\n }\r\n\r\n return el;\r\n }\r\n\r\n /**\r\n * Creates Text Node with the passed content\r\n * @param {String} content - text content\r\n * @return {Text}\r\n */\r\n public static text(content: string): Text {\r\n return document.createTextNode(content);\r\n }\r\n\r\n /**\r\n * Creates SVG icon linked to the sprite\r\n * @param {string} name - name (id) of icon from sprite\r\n * @param {number} width\r\n * @param {number} height\r\n * @return {SVGElement}\r\n */\r\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\r\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n\r\n icon.classList.add('icon', 'icon--' + name);\r\n icon.setAttribute('width', width + 'px');\r\n icon.setAttribute('height', height + 'px');\r\n icon.innerHTML = ``;\r\n\r\n return icon;\r\n }\r\n\r\n /**\r\n * Append one or several elements to the parent\r\n *\r\n * @param {Element|DocumentFragment} parent - where to append\r\n * @param {Element|Element[]} elements - element or elements list\r\n */\r\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]): void {\r\n if ( Array.isArray(elements) ) {\r\n elements.forEach( (el) => parent.appendChild(el) );\r\n } else {\r\n parent.appendChild(elements);\r\n }\r\n }\r\n\r\n /**\r\n * Append element or a couple to the beginning of the parent elements\r\n *\r\n * @param {Element} parent - where to append\r\n * @param {Element|Element[]} elements - element or elements list\r\n */\r\n public static prepend(parent: Element, elements: Element|Element[]): void {\r\n if ( Array.isArray(elements) ) {\r\n elements = elements.reverse();\r\n elements.forEach( (el) => parent.prepend(el) );\r\n } else {\r\n parent.prepend(elements);\r\n }\r\n }\r\n\r\n /**\r\n * Swap two elements in parent\r\n * @param {HTMLElement} el1 - from\r\n * @param {HTMLElement} el2 - to\r\n */\r\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\r\n // create marker element and insert it where el1 is\r\n const temp = document.createElement('div'),\r\n parent = el1.parentNode;\r\n\r\n parent.insertBefore(temp, el1);\r\n\r\n // move el1 to right before el2\r\n parent.insertBefore(el1, el2);\r\n\r\n // move el2 to right before where el1 used to be\r\n parent.insertBefore(el2, temp);\r\n\r\n // remove temporary marker node\r\n parent.removeChild(temp);\r\n }\r\n\r\n /**\r\n * Selector Decorator\r\n *\r\n * Returns first match\r\n *\r\n * @param {Element} el - element we searching inside. Default - DOM Document\r\n * @param {String} selector - searching string\r\n *\r\n * @returns {Element}\r\n */\r\n public static find(el: Element|Document = document, selector: string): Element {\r\n return el.querySelector(selector);\r\n }\r\n\r\n /**\r\n * Get Element by Id\r\n *\r\n * @param {string} id\r\n * @returns {HTMLElement | null}\r\n */\r\n public static get(id: string): HTMLElement {\r\n return document.getElementById(id);\r\n }\r\n\r\n /**\r\n * Selector Decorator.\r\n *\r\n * Returns all matches\r\n *\r\n * @param {Element} el - element we searching inside. Default - DOM Document\r\n * @param {String} selector - searching string\r\n * @returns {NodeList}\r\n */\r\n public static findAll(el: Element|Document = document, selector: string): NodeList {\r\n return el.querySelectorAll(selector);\r\n }\r\n\r\n /**\r\n * Search for deepest node which is Leaf.\r\n * Leaf is the vertex that doesn't have any child nodes\r\n *\r\n * @description Method recursively goes throw the all Node until it finds the Leaf\r\n *\r\n * @param {Node} node - root Node. From this vertex we start Deep-first search\r\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\r\n * @param {Boolean} atLast - find last text node\r\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\r\n */\r\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\r\n /**\r\n * Current function have two directions:\r\n * - starts from first child and every time gets first or nextSibling in special cases\r\n * - starts from last child and gets last or previousSibling\r\n * @type {string}\r\n */\r\n const child = atLast ? 'lastChild' : 'firstChild',\r\n sibling = atLast ? 'previousSibling' : 'nextSibling';\r\n\r\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\r\n let nodeChild = node[child];\r\n\r\n /**\r\n * special case when child is single tag that can't contain any content\r\n */\r\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\r\n /**\r\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\r\n * from sibling\r\n *\r\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\r\n * In case of Node Element continue searching\r\n *\r\n * 3) If none of conditions above happened return parent Node Element\r\n */\r\n if (nodeChild[sibling]) {\r\n nodeChild = nodeChild[sibling];\r\n } else if (nodeChild.parentNode[sibling]) {\r\n nodeChild = nodeChild.parentNode[sibling];\r\n } else {\r\n return nodeChild.parentNode;\r\n }\r\n }\r\n\r\n return this.getDeepestNode(nodeChild, atLast);\r\n }\r\n\r\n return node;\r\n }\r\n\r\n /**\r\n * Check if object is DOM node\r\n *\r\n * @param {Object} node\r\n * @returns {boolean}\r\n */\r\n public static isElement(node: any): boolean {\r\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\r\n }\r\n\r\n /**\r\n * Check if object is DocumentFragmemt node\r\n *\r\n * @param {Object} node\r\n * @returns {boolean}\r\n */\r\n public static isFragment(node: any): boolean {\r\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\r\n }\r\n\r\n /**\r\n * Checks target if it is native input\r\n * @param {Element|String|Node} target - HTML element or string\r\n * @return {Boolean}\r\n */\r\n public static isNativeInput(target: any): boolean {\r\n const nativeInputs = [\r\n 'INPUT',\r\n 'TEXTAREA',\r\n ];\r\n\r\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\r\n }\r\n\r\n /**\r\n * Checks node if it is empty\r\n *\r\n * @description Method checks simple Node without any childs for emptiness\r\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\r\n *\r\n * @param {Node} node\r\n * @return {Boolean} true if it is empty\r\n */\r\n public static isNodeEmpty(node: Node): boolean {\r\n let nodeText;\r\n\r\n if ( this.isElement(node) && this.isNativeInput(node) ) {\r\n nodeText = (node as HTMLInputElement).value;\r\n } else {\r\n nodeText = node.textContent.replace('\\u200B', '');\r\n }\r\n\r\n return nodeText.trim().length === 0;\r\n }\r\n\r\n /**\r\n * checks node if it is doesn't have any child nodes\r\n * @param {Node} node\r\n * @return {boolean}\r\n */\r\n public static isLeaf(node: Node): boolean {\r\n if (!node) {\r\n return false;\r\n }\r\n\r\n return node.childNodes.length === 0;\r\n }\r\n\r\n /**\r\n * breadth-first search (BFS)\r\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\r\n *\r\n * @description Pushes to stack all DOM leafs and checks for emptiness\r\n *\r\n * @param {Node} node\r\n * @return {boolean}\r\n */\r\n public static isEmpty(node: Node): boolean {\r\n const treeWalker = [],\r\n leafs = [];\r\n\r\n if (!node) {\r\n return true;\r\n }\r\n\r\n if (!node.childNodes.length) {\r\n return this.isNodeEmpty(node);\r\n }\r\n\r\n treeWalker.push(node.firstChild);\r\n\r\n while ( treeWalker.length > 0 ) {\r\n node = treeWalker.shift();\r\n\r\n if (!node) { continue; }\r\n\r\n if ( this.isLeaf(node) ) {\r\n leafs.push(node);\r\n } else {\r\n treeWalker.push(node.firstChild);\r\n }\r\n\r\n while ( node && node.nextSibling ) {\r\n node = node.nextSibling;\r\n\r\n if (!node) { continue; }\r\n\r\n treeWalker.push(node);\r\n }\r\n\r\n /**\r\n * If one of childs is not empty, checked Node is not empty too\r\n */\r\n if (node && !this.isNodeEmpty(node)) {\r\n return false;\r\n }\r\n }\r\n\r\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\r\n }\r\n\r\n /**\r\n * Check if string contains html elements\r\n *\r\n * @returns {boolean}\r\n * @param {String} str\r\n */\r\n public static isHTMLString(str: string): boolean {\r\n const wrapper = Dom.make('div');\r\n\r\n wrapper.innerHTML = str;\r\n\r\n return wrapper.childElementCount > 0;\r\n }\r\n\r\n /**\r\n * Return length of node`s text content\r\n *\r\n * @param {Node} node\r\n * @returns {number}\r\n */\r\n public static getContentLength(node: Node): number {\r\n if (Dom.isNativeInput(node)) {\r\n return (node as HTMLInputElement).value.length;\r\n }\r\n\r\n if (node.nodeType === Node.TEXT_NODE) {\r\n return (node as Text).length;\r\n }\r\n\r\n return node.textContent.length;\r\n }\r\n\r\n /**\r\n * Return array of names of block html elements\r\n *\r\n * @returns {string[]}\r\n */\r\n static get blockElements(): string[] {\r\n return [\r\n 'address',\r\n 'article',\r\n 'aside',\r\n 'blockquote',\r\n 'canvas',\r\n 'div',\r\n 'dl',\r\n 'dt',\r\n 'fieldset',\r\n 'figcaption',\r\n 'figure',\r\n 'footer',\r\n 'form',\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'header',\r\n 'hgroup',\r\n 'hr',\r\n 'li',\r\n 'main',\r\n 'nav',\r\n 'noscript',\r\n 'ol',\r\n 'output',\r\n 'p',\r\n 'pre',\r\n 'ruby',\r\n 'section',\r\n 'table',\r\n 'tr',\r\n 'tfoot',\r\n 'ul',\r\n 'video',\r\n ];\r\n }\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\n\r\ndeclare var $: any;\r\n\r\n/**\r\n * Bold Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Makes selected text bolder\r\n */\r\nexport default class BoldInlineTool implements InlineTool {\r\n\r\n /**\r\n * Native Document's command that uses for Bold\r\n */\r\n private readonly commandName: string = 'bold';\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--bold',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: undefined,\r\n };\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('bold', 13, 15));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Wrap range with tag\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n document.execCommand(this.commandName);\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection: Selection): boolean {\r\n const isActive = document.queryCommandState(this.commandName);\r\n\r\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\r\n return isActive;\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+B';\r\n }\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\n\r\ndeclare var $: any;\r\n\r\n/**\r\n * Italic Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Style selected text with italic\r\n */\r\nexport default class ItalicInlineTool implements InlineTool {\r\n\r\n /**\r\n * Native Document's command that uses for Italic\r\n */\r\n private readonly commandName: string = 'italic';\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--italic',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: null,\r\n };\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('italic', 6, 15));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Wrap range with tag\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n document.execCommand(this.commandName);\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection: Selection): boolean {\r\n const isActive = document.queryCommandState(this.commandName);\r\n\r\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\r\n return isActive;\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+I';\r\n }\r\n\r\n}\r\n","import InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n/**\r\n * Link Tool\r\n *\r\n * Inline Toolbar Tool\r\n *\r\n * Wrap selected text with tag\r\n */\r\nexport default class LinkInlineTool implements InlineTool {\r\n /**\r\n * Native Document's commands for link/unlink\r\n */\r\n private readonly commandLink: string = 'createLink';\r\n private readonly commandUnlink: string = 'unlink';\r\n\r\n /**\r\n * Enter key code\r\n */\r\n private readonly ENTER_KEY: number = 13;\r\n\r\n /**\r\n * Styles\r\n */\r\n private readonly CSS = {\r\n button: 'ce-inline-tool',\r\n buttonActive: 'ce-inline-tool--active',\r\n buttonModifier: 'ce-inline-tool--link',\r\n buttonUnlink: 'ce-inline-tool--unlink',\r\n input: 'ce-inline-tool-input',\r\n inputShowed: 'ce-inline-tool-input--showed',\r\n };\r\n\r\n /**\r\n * Elements\r\n */\r\n private nodes = {\r\n button: null,\r\n input: null,\r\n };\r\n\r\n /**\r\n * SelectionUtils instance\r\n */\r\n private selection: SelectionUtils;\r\n\r\n /**\r\n * Input opening state\r\n */\r\n private inputOpened: boolean = false;\r\n\r\n /**\r\n * Available Inline Toolbar methods (open/close)\r\n */\r\n private inlineToolbar: any;\r\n\r\n /**\r\n * @param {{api: IAPI}} - CodeX Editor API\r\n */\r\n constructor({api}) {\r\n this.inlineToolbar = api.toolbar;\r\n this.selection = new SelectionUtils();\r\n }\r\n\r\n /**\r\n * Create button for Inline Toolbar\r\n */\r\n public render(): HTMLElement {\r\n this.nodes.button = document.createElement('button');\r\n this.nodes.button.type = 'button';\r\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\r\n this.nodes.button.appendChild($.svg('link', 15, 14));\r\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\r\n return this.nodes.button;\r\n }\r\n\r\n /**\r\n * Input for the link\r\n */\r\n public renderActions(): HTMLElement {\r\n this.nodes.input = document.createElement('input');\r\n this.nodes.input.placeholder = 'Add a link';\r\n this.nodes.input.classList.add(this.CSS.input);\r\n this.nodes.input.addEventListener('keydown', (event) => {\r\n if (event.keyCode === this.ENTER_KEY ) {\r\n this.enterPressed(event);\r\n }\r\n });\r\n return this.nodes.input;\r\n }\r\n\r\n /**\r\n * Handle clicks on the Inline Toolbar icon\r\n * @param {Range} range\r\n */\r\n public surround(range: Range): void {\r\n /**\r\n * Range will be null when user makes second click on the 'link icon' to close opened input\r\n */\r\n if (range) {\r\n /**\r\n * Save selection before change focus to the input\r\n */\r\n this.selection.save();\r\n const parentAnchor = this.selection.findParentTag('A');\r\n\r\n /**\r\n * Unlink icon pressed\r\n */\r\n if (parentAnchor) {\r\n this.selection.expandToTag(parentAnchor);\r\n this.unlink();\r\n this.closeActions();\r\n this.checkState();\r\n this.inlineToolbar.close();\r\n return;\r\n }\r\n }\r\n\r\n this.toggleActions();\r\n }\r\n\r\n /**\r\n * Check selection and set activated state to button if there are tag\r\n * @param {Selection} selection\r\n */\r\n public checkState(selection?: Selection): boolean {\r\n const anchorTag = this.selection.findParentTag('A');\r\n\r\n if (anchorTag) {\r\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\r\n this.nodes.button.classList.add(this.CSS.buttonActive);\r\n this.openActions();\r\n\r\n /**\r\n * Fill input value with link href\r\n */\r\n const hrefAttr = anchorTag.getAttribute('href');\r\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\r\n\r\n this.selection.save();\r\n } else {\r\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\r\n this.nodes.button.classList.remove(this.CSS.buttonActive);\r\n }\r\n\r\n return !!anchorTag;\r\n }\r\n\r\n /**\r\n * Function called with Inline Toolbar closing\r\n */\r\n public clear(): void {\r\n this.closeActions();\r\n }\r\n\r\n /**\r\n * Set a shortcut\r\n */\r\n public get shortcut(): string {\r\n return 'CMD+K';\r\n }\r\n\r\n private toggleActions(): void {\r\n if (!this.inputOpened) {\r\n this.openActions(true);\r\n } else {\r\n this.closeActions(false);\r\n }\r\n }\r\n\r\n /**\r\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\r\n */\r\n private openActions(needFocus: boolean = false): void {\r\n this.nodes.input.classList.add(this.CSS.inputShowed);\r\n if (needFocus) {\r\n this.nodes.input.focus();\r\n }\r\n this.inputOpened = true;\r\n }\r\n\r\n /**\r\n * Close input\r\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\r\n * on toggle-clicks on the icon of opened Toolbar\r\n */\r\n private closeActions(clearSavedSelection: boolean = true): void {\r\n this.nodes.input.classList.remove(this.CSS.inputShowed);\r\n this.nodes.input.value = '';\r\n if (clearSavedSelection) {\r\n this.selection.clearSaved();\r\n }\r\n this.inputOpened = false;\r\n }\r\n\r\n /**\r\n * Enter pressed on input\r\n * @param {KeyboardEvent} event\r\n */\r\n private enterPressed(event: KeyboardEvent): void {\r\n let value = this.nodes.input.value || '';\r\n\r\n if (!value.trim()) {\r\n this.selection.restore();\r\n this.unlink();\r\n event.preventDefault();\r\n this.closeActions();\r\n }\r\n\r\n if (!this.validateURL(value)) {\r\n /**\r\n * @todo show notification 'Incorrect Link'\r\n */\r\n _.log('Incorrect Link pasted', 'warn', value);\r\n return;\r\n }\r\n\r\n value = this.prepareLink(value);\r\n\r\n this.selection.restore();\r\n this.insertLink(value);\r\n\r\n /**\r\n * Preventing events that will be able to happen\r\n */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n\r\n this.closeActions();\r\n this.inlineToolbar.close();\r\n this.checkState();\r\n }\r\n\r\n /**\r\n * Detects if passed string is URL\r\n * @param {string} str\r\n * @return {Boolean}\r\n */\r\n private validateURL(str: string): boolean {\r\n /**\r\n * Don't allow spaces\r\n */\r\n return !/\\s/.test(str);\r\n }\r\n\r\n /**\r\n * Process link before injection\r\n * - sanitize\r\n * - add protocol for links like 'google.com'\r\n * @param {string} link - raw user input\r\n */\r\n private prepareLink(link: string): string {\r\n link = link.trim();\r\n link = this.addProtocol(link);\r\n return link;\r\n }\r\n\r\n /**\r\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\r\n * @param {String} link\r\n */\r\n private addProtocol(link: string): string {\r\n /**\r\n * If protocol already exists, do nothing\r\n */\r\n if (/^(\\w+):\\/\\//.test(link)) {\r\n return link;\r\n }\r\n\r\n /**\r\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\r\n * 1) Internal links like \"/general\"\r\n * 2) Anchors looks like \"#results\"\r\n * 3) Protocol-relative URLs like \"//google.com\"\r\n */\r\n const isInternal = /^\\/[^\\/\\s]/.test(link),\r\n isAnchor = link.substring(0, 1) === '#',\r\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\r\n\r\n if (!isInternal && !isAnchor && !isProtocolRelative) {\r\n link = 'http://' + link;\r\n }\r\n\r\n return link;\r\n }\r\n\r\n /**\r\n * Inserts tag with \"href\"\r\n * @param {string} link - \"href\" value\r\n */\r\n private insertLink(link: string): void {\r\n\r\n /**\r\n * Edit all link, not selected part\r\n */\r\n const anchorTag = this.selection.findParentTag('A');\r\n\r\n if (anchorTag) {\r\n this.selection.expandToTag(anchorTag);\r\n }\r\n\r\n document.execCommand(this.commandLink, false, link);\r\n }\r\n\r\n /**\r\n * Removes tag\r\n */\r\n private unlink(): void {\r\n document.execCommand(this.commandUnlink);\r\n }\r\n}\r\n","var map = {\n\t\"./_notifications\": \"./src/components/modules/_notifications.js\",\n\t\"./_notifications.js\": \"./src/components/modules/_notifications.js\",\n\t\"./api\": \"./src/components/modules/api.ts\",\n\t\"./api-blocks\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events\": \"./src/components/modules/api-events.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-sanitizer\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events\": \"./src/components/modules/block-events.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager\": \"./src/components/modules/blockManager.js\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./caret\": \"./src/components/modules/caret.js\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./dragNDrop\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events\": \"./src/components/modules/events.js\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners\": \"./src/components/modules/listeners.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./modificationsObserver\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./paste\": \"./src/components/modules/paste.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer\": \"./src/components/modules/renderer.js\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer\": \"./src/components/modules/sanitizer.js\",\n\t\"./sanitizer.js\": \"./src/components/modules/sanitizer.js\",\n\t\"./saver\": \"./src/components/modules/saver.js\",\n\t\"./saver.js\": \"./src/components/modules/saver.js\",\n\t\"./shortcuts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar\": \"./src/components/modules/toolbar.js\",\n\t\"./toolbar-blockSettings\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools\": \"./src/components/modules/tools.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui\": \"./src/components/modules/ui.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 recursive ^\\\\.\\\\/.*$\";","/**\r\n * Codex Editor Notification Module\r\n *\r\n * @author Codex Team\r\n * @version 1.0\r\n */\r\n\r\nmodule.exports = (function (notifications) {\r\n let editor = codex.editor;\r\n\r\n var queue = [];\r\n\r\n var addToQueue = function (settings) {\r\n queue.push(settings);\r\n\r\n var index = 0;\r\n\r\n while ( index < queue.length && queue.length > 5) {\r\n if (queue[index].type == 'confirm' || queue[index].type == 'prompt') {\r\n index++;\r\n continue;\r\n }\r\n\r\n queue[index].close();\r\n queue.splice(index, 1);\r\n }\r\n };\r\n\r\n notifications.createHolder = function () {\r\n var holder = editor.draw.node('DIV', 'cdx-notifications-block');\r\n\r\n editor.nodes.notifications = document.body.appendChild(holder);\r\n\r\n return holder;\r\n };\r\n\r\n\r\n /**\r\n * Error notificator. Shows block with message\r\n * @protected\r\n */\r\n notifications.errorThrown = function (errorMsg, event) {\r\n editor.notifications.notification({message: 'This action is not available currently', type: event.type});\r\n };\r\n\r\n /**\r\n *\r\n * Appends notification\r\n *\r\n * settings = {\r\n * type - notification type (reserved types: alert, confirm, prompt). Just add class 'cdx-notification-'+type\r\n * message - notification message\r\n * okMsg - confirm button text (default - 'Ok')\r\n * cancelBtn - cancel button text (default - 'Cancel'). Only for confirm and prompt types\r\n * confirm - function-handler for ok button click\r\n * cancel - function-handler for cancel button click. Only for confirm and prompt types\r\n * time - time (in seconds) after which notification will close (default - 10s)\r\n * }\r\n *\r\n * @param settings\r\n */\r\n notifications.notification = function (constructorSettings) {\r\n /** Private vars and methods */\r\n var notification = null,\r\n cancel = null,\r\n type = null,\r\n confirm = null,\r\n inputField = null;\r\n\r\n var confirmHandler = function () {\r\n close();\r\n\r\n if (typeof confirm !== 'function' ) {\r\n return;\r\n }\r\n\r\n if (type == 'prompt') {\r\n confirm(inputField.value);\r\n return;\r\n }\r\n\r\n confirm();\r\n };\r\n\r\n var cancelHandler = function () {\r\n close();\r\n\r\n if (typeof cancel !== 'function' ) {\r\n return;\r\n }\r\n\r\n cancel();\r\n };\r\n\r\n\r\n /** Public methods */\r\n function create(settings) {\r\n if (!(settings && settings.message)) {\r\n editor.core.log('Can\\'t create notification. Message is missed');\r\n return;\r\n }\r\n\r\n settings.type = settings.type || 'alert';\r\n settings.time = settings.time*1000 || 10000;\r\n\r\n var wrapper = editor.draw.node('DIV', 'cdx-notification'),\r\n message = editor.draw.node('DIV', 'cdx-notification__message'),\r\n input = editor.draw.node('INPUT', 'cdx-notification__input'),\r\n okBtn = editor.draw.node('SPAN', 'cdx-notification__ok-btn'),\r\n cancelBtn = editor.draw.node('SPAN', 'cdx-notification__cancel-btn');\r\n\r\n message.textContent = settings.message;\r\n okBtn.textContent = settings.okMsg || 'ОК';\r\n cancelBtn.textContent = settings.cancelMsg || 'Отмена';\r\n\r\n editor.listeners.add(okBtn, 'click', confirmHandler);\r\n editor.listeners.add(cancelBtn, 'click', cancelHandler);\r\n\r\n wrapper.appendChild(message);\r\n\r\n if (settings.type == 'prompt') {\r\n wrapper.appendChild(input);\r\n }\r\n\r\n wrapper.appendChild(okBtn);\r\n\r\n if (settings.type == 'prompt' || settings.type == 'confirm') {\r\n wrapper.appendChild(cancelBtn);\r\n }\r\n\r\n wrapper.classList.add('cdx-notification-' + settings.type);\r\n wrapper.dataset.type = settings.type;\r\n\r\n notification = wrapper;\r\n type = settings.type;\r\n confirm = settings.confirm;\r\n cancel = settings.cancel;\r\n inputField = input;\r\n\r\n if (settings.type != 'prompt' && settings.type != 'confirm') {\r\n window.setTimeout(close, settings.time);\r\n }\r\n };\r\n\r\n /**\r\n * Show notification block\r\n */\r\n function send() {\r\n editor.nodes.notifications.appendChild(notification);\r\n inputField.focus();\r\n\r\n editor.nodes.notifications.classList.add('cdx-notification__notification-appending');\r\n\r\n window.setTimeout(function () {\r\n editor.nodes.notifications.classList.remove('cdx-notification__notification-appending');\r\n }, 100);\r\n\r\n addToQueue({type: type, close: close});\r\n };\r\n\r\n /**\r\n * Remove notification block\r\n */\r\n function close() {\r\n notification.remove();\r\n };\r\n\r\n\r\n if (constructorSettings) {\r\n create(constructorSettings);\r\n send();\r\n }\r\n\r\n return {\r\n create: create,\r\n send: send,\r\n close: close\r\n };\r\n };\r\n\r\n notifications.clear = function () {\r\n editor.nodes.notifications.innerHTML = '';\r\n queue = [];\r\n };\r\n\r\n return notifications;\r\n})({});","declare var Module: any;\r\n\r\nimport { IBlocksAPI } from '../interfaces/api';\r\nimport IInputOutputData from '../interfaces/input-output-data';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class BlocksAPI\r\n * provides with methods working with Block\r\n */\r\nexport default class BlocksAPI extends Module implements IBlocksAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IBlocksAPI}\r\n */\r\n get methods(): IBlocksAPI {\r\n return {\r\n clear: () => this.clear(),\r\n render: (data: IInputOutputData) => this.render(data),\r\n delete: () => this.delete(),\r\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\r\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\r\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\r\n getBlocksCount: () => this.getBlocksCount(),\r\n stretchBlock: (index: number, status: boolean) => this.stretchBlock(index, status),\r\n insertNewBlock: () => this.insertNewBlock(),\r\n };\r\n }\r\n\r\n /**\r\n * Returns Blocks count\r\n * @return {number}\r\n */\r\n public getBlocksCount(): number {\r\n return this.Editor.BlockManager.blocks.length;\r\n }\r\n\r\n /**\r\n * Returns current block index\r\n * @return {number}\r\n */\r\n public getCurrentBlockIndex(): number {\r\n return this.Editor.BlockManager.currentBlockIndex;\r\n }\r\n\r\n /**\r\n * Returns Current Block\r\n * @param {Number} index\r\n *\r\n * @return {Object}\r\n */\r\n public getBlockByIndex(index: number): object {\r\n return this.Editor.BlockManager.getBlockByIndex(index);\r\n }\r\n\r\n /**\r\n * Call Block Manager method that swap Blocks\r\n * @param {number} fromIndex - position of first Block\r\n * @param {number} toIndex - position of second Block\r\n */\r\n public swap(fromIndex: number, toIndex: number): void {\r\n this.Editor.BlockManager.swap(fromIndex, toIndex);\r\n\r\n /**\r\n * Move toolbar\r\n * DO not close the settings\r\n */\r\n this.Editor.Toolbar.move(false);\r\n }\r\n\r\n /**\r\n * Deletes Block\r\n * @param blockIndex\r\n */\r\n public delete(blockIndex?: number): void {\r\n this.Editor.BlockManager.removeBlock(blockIndex);\r\n\r\n /**\r\n * in case of last block deletion\r\n * Insert new initial empty block\r\n */\r\n if (this.Editor.BlockManager.blocks.length === 0) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * In case of deletion first block we need to set caret to the current Block\r\n */\r\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\r\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\r\n } else {\r\n this.Editor.Caret.navigatePrevious(true);\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Clear Editor's area\r\n */\r\n public clear(): void {\r\n this.Editor.BlockManager.clear(true);\r\n }\r\n\r\n /**\r\n * Fills Editor with Blocks data\r\n * @param {IInputOutputData} data — Saved Editor data\r\n */\r\n public render(data: IInputOutputData): void {\r\n this.Editor.BlockManager.clear();\r\n this.Editor.Renderer.render(data.blocks);\r\n }\r\n\r\n /**\r\n * Stretch Block's content\r\n * @param {number} index\r\n * @param {boolean} status - true to enable, false to disable\r\n */\r\n public stretchBlock(index: number, status: boolean): void {\r\n const block = this.Editor.BlockManager.getBlockByIndex(index);\r\n\r\n if (!block) {\r\n return;\r\n }\r\n\r\n block.stretched = status !== undefined ? status : true;\r\n }\r\n\r\n /**\r\n * Insert new Block\r\n * After set caret to this Block\r\n */\r\n public insertNewBlock() {\r\n const newBlock = this.Editor.BlockManager.insert();\r\n this.Editor.Caret.setToBlock(newBlock);\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ICaretAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class CaretAPI\r\n * provides with methods to work with caret\r\n */\r\nexport default class CaretAPI extends Module implements ICaretAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ICaretAPI}\r\n */\r\n get methods(): ICaretAPI {\r\n return {};\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IEventsAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class EventsAPI\r\n * provides with methods working with Toolbar\r\n */\r\nexport default class EventsAPI extends Module implements IEventsAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IEventsAPI}\r\n */\r\n get methods(): IEventsAPI {\r\n return {\r\n emit: (eventName: string, data: object) => this.emit(eventName, data),\r\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\r\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\r\n };\r\n }\r\n\r\n /**\r\n * Subscribe on Events\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n */\r\n public on(eventName, callback): void {\r\n this.Editor.Events.on(eventName, callback);\r\n }\r\n\r\n /**\r\n * Emit event with data\r\n * @param {String} eventName\r\n * @param {Object} data\r\n */\r\n public emit(eventName, data): void {\r\n this.Editor.Events.emit(eventName, data);\r\n }\r\n\r\n /**\r\n * Unsubscribe from Event\r\n * @param {String} eventName\r\n * @param {Function} callback\r\n */\r\n public off(eventName, callback): void {\r\n this.Editor.Events.off(eventName, callback);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IListenerAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class API\r\n * Provides with methods working with DOM Listener\r\n */\r\nexport default class ListenerAPI extends Module implements IListenerAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IToolbarAPI}\r\n */\r\n get methods(): IListenerAPI {\r\n return {\r\n on: (element, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\r\n off: (element, eventType, handler) => this.off(element, eventType, handler),\r\n };\r\n }\r\n\r\n /**\r\n * adds DOM event listener\r\n *\r\n * @param {HTMLElement} element\r\n * @param {string} eventType\r\n * @param {() => void} handler\r\n * @param {boolean} useCapture\r\n */\r\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\r\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Removes DOM listener from element\r\n *\r\n * @param element\r\n * @param eventType\r\n * @param handler\r\n */\r\n public off(element, eventType, handler): void {\r\n this.Editor.Listeners.off(element, eventType, handler);\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISanitizerAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class API\r\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\r\n */\r\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISanitizerAPI}\r\n */\r\n get methods(): ISanitizerAPI {\r\n return {\r\n clean: (taintString, config) => this.clean(taintString, config),\r\n };\r\n }\r\n\r\n public clean(taintString, config) {\r\n return this.Editor.Sanitizer.clean(taintString, config);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISaverAPI} from '../interfaces/api';\r\nimport IInputOutputData from '../interfaces/input-output-data';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class SaverAPI\r\n * provides with methods to save data\r\n */\r\nexport default class SaverAPI extends Module implements ISaverAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISaverAPI}\r\n */\r\n get methods(): ISaverAPI {\r\n return {\r\n save: () => this.save(),\r\n };\r\n }\r\n\r\n /**\r\n * Return Editor's data\r\n */\r\n public save(): IInputOutputData {\r\n return this.Editor.Saver.save();\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {ISelectionAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @class API\r\n * Provides with methods working with SelectionUtils\r\n */\r\nexport default class SelectionAPI extends Module implements ISelectionAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {ISelectionAPI}\r\n */\r\n get methods(): ISelectionAPI {\r\n return {\r\n findParentTag: (tagName: string, className: string) => this.findParentTag(tagName, className),\r\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\r\n };\r\n }\r\n\r\n /**\r\n * Looks ahead from selection and find passed tag with class name\r\n * @param {string} tagName - tag to find\r\n * @param {string} className - tag's class name\r\n * @return {HTMLElement|null}\r\n */\r\n public findParentTag(tagName: string, className: string): HTMLElement|null {\r\n return new Selection().findParentTag(tagName, className);\r\n }\r\n\r\n /**\r\n * Expand selection to passed tag\r\n * @param {HTMLElement} node - tag that should contain selection\r\n */\r\n public expandToTag(node: HTMLElement): void {\r\n new Selection().expandToTag(node);\r\n }\r\n\r\n}\r\n","declare var Module: any;\r\n\r\nimport IModuleConfig from '../interfaces/module-config';\r\nimport {IStylesAPI} from '../interfaces/api';\r\n\r\n/**\r\n *\r\n */\r\nexport default class StylesAPI extends Module {\r\n\r\n /**\r\n * Save Editor config\r\n * API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n get classes(): IStylesAPI {\r\n return {\r\n /**\r\n * Base Block styles\r\n */\r\n block: 'cdx-block',\r\n\r\n /**\r\n * Inline Tools styles\r\n */\r\n inlineToolButton: 'ce-inline-tool',\r\n inlineToolButtonActive: 'ce-inline-tool--active',\r\n\r\n /**\r\n * UI elements\r\n */\r\n input: 'cdx-input',\r\n loader: 'cdx-loader',\r\n\r\n /**\r\n * Settings styles\r\n */\r\n settingsButton: 'cdx-settings-button',\r\n settingsButtonActive: 'cdx-settings-button--active',\r\n };\r\n }\r\n}\r\n","declare var Module: any;\r\n\r\nimport {IToolbarAPI} from '../interfaces/api';\r\nimport IModuleConfig from '../interfaces/module-config';\r\n\r\n/**\r\n * @class ToolbarsAPI\r\n * provides with methods working with Toolbar\r\n */\r\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n */\r\n constructor({config}: IModuleConfig) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Available methods\r\n * @return {IToolbarAPI}\r\n */\r\n get methods(): IToolbarAPI {\r\n return {\r\n close: () => this.close(),\r\n open: () => this.open(),\r\n };\r\n }\r\n\r\n /**\r\n * Open toolbar\r\n */\r\n public open(): void {\r\n this.Editor.Toolbar.open();\r\n }\r\n\r\n /**\r\n * Close toolbar and all included elements\r\n */\r\n public close(): void {\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n}\r\n","/**\r\n * @module API\r\n * @copyright 2018\r\n *\r\n * Each block has an Editor API instance to use provided public methods\r\n * if you cant to read more about how API works, please see docs\r\n */\r\ndeclare var Module: any;\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nimport { IAPI } from '../interfaces/api';\r\n\r\n/**\r\n * @class API\r\n */\r\nexport default class API extends Module {\r\n\r\n /**\r\n * Save Editor config. API provides passed configuration to the Blocks\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n public get methods(): IAPI {\r\n return {\r\n blocks: this.Editor.BlocksAPI.methods,\r\n caret: this.Editor.CaretAPI.methods,\r\n events: this.Editor.EventsAPI.methods,\r\n listener: this.Editor.ListenerAPI.methods,\r\n sanitizer: this.Editor.SanitizerAPI.methods,\r\n saver: this.Editor.SaverAPI.methods,\r\n selection: this.Editor.SelectionAPI.methods,\r\n styles: this.Editor.StylesAPI.classes,\r\n toolbar: this.Editor.ToolbarAPI.methods,\r\n };\r\n }\r\n}\r\n","/**\r\n * Contains keyboard and mouse events binded on each Block by Block Manager\r\n */\r\ndeclare var Module: any;\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\nexport default class BlockEvents extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * All keydowns on Block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n public keydown(event: KeyboardEvent): void {\r\n /**\r\n * Run common method for all keydown events\r\n */\r\n this.beforeKeydownProcessing(event);\r\n\r\n /**\r\n * Fire keydown processor by event.keyCode\r\n */\r\n switch (event.keyCode) {\r\n case _.keyCodes.BACKSPACE:\r\n this.backspace(event);\r\n break;\r\n\r\n case _.keyCodes.ENTER:\r\n this.enter(event);\r\n break;\r\n\r\n case _.keyCodes.DOWN:\r\n case _.keyCodes.RIGHT:\r\n this.arrowRightAndDown(event);\r\n break;\r\n\r\n case _.keyCodes.UP:\r\n case _.keyCodes.LEFT:\r\n this.arrowLeftAndUp(event);\r\n break;\r\n\r\n case _.keyCodes.TAB:\r\n this.tabPressed(event);\r\n break;\r\n\r\n default:\r\n this.defaultHandler();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Fires on keydown before event processing\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n public beforeKeydownProcessing(event): void {\r\n /**\r\n * Clear all highlightings\r\n */\r\n this.Editor.BlockManager.clearHighlightings();\r\n\r\n /**\r\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\r\n */\r\n if (!this.needToolbarClosing(event)) {\r\n return;\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Key up on Block:\r\n * - shows Inline Toolbar if something selected\r\n */\r\n public keyup(event): void {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n /**\r\n * Mouse up on Block:\r\n * - shows Inline Toolbar if something selected\r\n */\r\n public mouseUp(event): void {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n /**\r\n * Open Toolbox to leaf Tools\r\n * @param {KeyboardEvent} event\r\n */\r\n public tabPressed(event): void {\r\n\r\n const {currentBlock} = this.Editor.BlockManager;\r\n\r\n /** Prevent Default behaviour */\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n /** this property defines leaf direction */\r\n const shiftKey = event.shiftKey,\r\n direction = shiftKey ? 'left' : 'right';\r\n\r\n if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\r\n this.Editor.Toolbox.open();\r\n } else if (currentBlock.isEmpty) {\r\n this.Editor.Toolbar.open();\r\n this.Editor.Toolbar.plusButton.show();\r\n this.Editor.Toolbox.open();\r\n }\r\n\r\n if (this.Editor.Toolbox.opened) {\r\n this.Editor.Toolbox.leaf(direction);\r\n }\r\n }\r\n\r\n /**\r\n * Add drop target styles\r\n *\r\n * @param {DragEvent} e\r\n */\r\n public dragOver(e: DragEvent) {\r\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\r\n\r\n block.dropTarget = true;\r\n }\r\n\r\n /**\r\n * Remove drop target style\r\n *\r\n * @param {DragEvent} e\r\n */\r\n public dragLeave(e: DragEvent) {\r\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\r\n\r\n block.dropTarget = false;\r\n }\r\n\r\n /**\r\n * ENTER pressed on block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n private enter(event: KeyboardEvent): void {\r\n const currentBlock = this.Editor.BlockManager.currentBlock,\r\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\r\n\r\n /**\r\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\r\n * Uses for Tools like where line breaks should be handled by default behaviour.\r\n */\r\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\r\n return;\r\n }\r\n\r\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\r\n return;\r\n }\r\n\r\n /**\r\n * Allow to create linebreaks by Shift+Enter\r\n */\r\n if (event.shiftKey) {\r\n return;\r\n }\r\n /**\r\n * Split the Current Block into two blocks\r\n * Renew local current node after split\r\n */\r\n const newCurrent = this.Editor.BlockManager.split();\r\n\r\n this.Editor.Caret.setToBlock(newCurrent);\r\n\r\n /**\r\n * If new Block is empty\r\n */\r\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\r\n /**\r\n * Show Toolbar\r\n */\r\n this.Editor.Toolbar.open();\r\n\r\n /**\r\n * Show Plus Button\r\n */\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n /**\r\n * Handle backspace keydown on Block\r\n * @param {KeyboardEvent} event - keydown\r\n */\r\n private backspace(event: KeyboardEvent): void {\r\n const BM = this.Editor.BlockManager;\r\n const currentBlock = this.Editor.BlockManager.currentBlock,\r\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\r\n\r\n /**\r\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\r\n * Uses for Tools like where line breaks should be handled by default behaviour.\r\n */\r\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\r\n return;\r\n }\r\n\r\n const isFirstBlock = BM.currentBlockIndex === 0,\r\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\r\n\r\n /** If current Block is empty just remove this Block */\r\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\r\n this.Editor.BlockManager.removeBlock();\r\n\r\n /**\r\n * in case of last block deletion\r\n * Insert new initial empty block\r\n */\r\n if (this.Editor.BlockManager.blocks.length === 0) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * In case of deletion first block we need to set caret to the current Block\r\n * After BlockManager removes the Block (which is current now),\r\n * pointer that references to the current Block, now points to the Next\r\n */\r\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\r\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\r\n } else {\r\n this.Editor.Caret.navigatePrevious(true);\r\n }\r\n\r\n this.Editor.Toolbar.close();\r\n return;\r\n }\r\n\r\n if (!canMergeBlocks) {\r\n return;\r\n }\r\n\r\n // preventing browser default behaviour\r\n event.preventDefault();\r\n\r\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\r\n blockToMerge = BM.currentBlock;\r\n\r\n /**\r\n * Blocks that can be merged:\r\n * 1) with the same Name\r\n * 2) Tool has 'merge' method\r\n *\r\n * other case will handle as usual ARROW LEFT behaviour\r\n */\r\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\r\n if (this.Editor.Caret.navigatePrevious()) {\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\r\n BM.mergeBlocks(targetBlock, blockToMerge)\r\n .then( () => {\r\n /** Restore caret position after merge */\r\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\r\n targetBlock.pluginsContent.normalize();\r\n this.Editor.Toolbar.close();\r\n });\r\n }\r\n\r\n /**\r\n * Handle right and down keyboard keys\r\n */\r\n private arrowRightAndDown(event: KeyboardEvent): void {\r\n if (this.Editor.Caret.navigateNext()) {\r\n /**\r\n * Default behaviour moves cursor by 1 character, we need to prevent it\r\n */\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Handle left and up keyboard keys\r\n */\r\n private arrowLeftAndUp(event: KeyboardEvent): void {\r\n if (this.Editor.Caret.navigatePrevious()) {\r\n /**\r\n * Default behaviour moves cursor by 1 character, we need to prevent it\r\n */\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n /**\r\n * Default keydown handler\r\n */\r\n private defaultHandler(): void {}\r\n\r\n /**\r\n * Cases when we need to close Toolbar\r\n */\r\n private needToolbarClosing(event) {\r\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\r\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\r\n\r\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\r\n }\r\n\r\n}\r\n","/**\r\n * @class BlockManager\r\n * @classdesc Manage editor`s blocks storage and appearance\r\n *\r\n * @module BlockManager\r\n *\r\n * @version 2.0.0\r\n */\r\n\r\nimport Block from '../block';\r\n\r\n/**\r\n * @typedef {BlockManager} BlockManager\r\n * @property {Number} currentBlockIndex - Index of current working block\r\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\r\n */\r\nexport default class BlockManager extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n /**\r\n * Proxy for Blocks instance {@link Blocks}\r\n *\r\n * @type {Proxy}\r\n * @private\r\n */\r\n this._blocks = null;\r\n\r\n /**\r\n * Index of current working block\r\n *\r\n * @type {number}\r\n * @private\r\n */\r\n this.currentBlockIndex = -1;\r\n }\r\n\r\n /**\r\n * Should be called after Editor.UI preparation\r\n * Define this._blocks property\r\n *\r\n * @returns {Promise}\r\n */\r\n prepare() {\r\n return new Promise(resolve => {\r\n let blocks = new Blocks(this.Editor.UI.nodes.redactor);\r\n\r\n /**\r\n * We need to use Proxy to overload set/get [] operator.\r\n * So we can use array-like syntax to access blocks\r\n *\r\n * @example\r\n * this._blocks[0] = new Block(...);\r\n *\r\n * block = this._blocks[0];\r\n *\r\n * @todo proxy the enumerate method\r\n *\r\n * @type {Proxy}\r\n * @private\r\n */\r\n this._blocks = new Proxy(blocks, {\r\n set: Blocks.set,\r\n get: Blocks.get\r\n });\r\n\r\n resolve();\r\n });\r\n }\r\n\r\n /**\r\n * Creates Block instance by tool name\r\n *\r\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\r\n * @param {Object} data - constructor params\r\n * @param {Object} settings - block settings\r\n *\r\n * @return {Block}\r\n */\r\n composeBlock(toolName, data, settings) {\r\n let toolInstance = this.Editor.Tools.construct(toolName, data),\r\n toolClass = this.Editor.Tools.available[toolName],\r\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\r\n\r\n this.bindEvents(block);\r\n /**\r\n * Apply callback before inserting html\r\n */\r\n block.call('appendCallback', {});\r\n\r\n return block;\r\n }\r\n\r\n /**\r\n * Bind Events\r\n * @param {Object} block\r\n */\r\n bindEvents(block) {\r\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\r\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\r\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\r\n this.Editor.Listeners.on(block.holder, 'dragover', (event) => this.Editor.BlockEvents.dragOver(event));\r\n this.Editor.Listeners.on(block.holder, 'dragleave', (event) => this.Editor.BlockEvents.dragLeave(event));\r\n }\r\n\r\n /**\r\n * Insert new block into _blocks\r\n *\r\n * @param {String} toolName — plugin name, by default method inserts initial block type\r\n * @param {Object} data — plugin data\r\n * @param {Object} settings - default settings\r\n *\r\n * @return {Block}\r\n */\r\n insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\r\n // Increment index before construct,\r\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\r\n let newIndex = ++this.currentBlockIndex;\r\n let block = this.composeBlock(toolName, data, settings);\r\n\r\n this._blocks[newIndex] = block;\r\n return block;\r\n }\r\n\r\n /**\r\n * Always inserts at the end\r\n * @return {Block}\r\n */\r\n insertAtEnd() {\r\n /**\r\n * Define new value for current block index\r\n */\r\n this.currentBlockIndex = this.blocks.length - 1;\r\n\r\n /**\r\n * Insert initial typed block\r\n */\r\n return this.insert();\r\n }\r\n\r\n /**\r\n * Merge two blocks\r\n * @param {Block} targetBlock - previous block will be append to this block\r\n * @param {Block} blockToMerge - block that will be merged with target block\r\n *\r\n * @return {Promise} - the sequence that can be continued\r\n */\r\n mergeBlocks(targetBlock, blockToMerge) {\r\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\r\n\r\n return Promise.resolve()\r\n .then( () => {\r\n if (blockToMerge.isEmpty) {\r\n return;\r\n }\r\n\r\n return blockToMerge.data\r\n .then((blockToMergeInfo) => {\r\n targetBlock.mergeWith(blockToMergeInfo.data);\r\n });\r\n })\r\n .then( () => {\r\n this.removeBlock(blockToMergeIndex);\r\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\r\n });\r\n }\r\n\r\n /**\r\n * Remove block with passed index or remove last\r\n * @param {Number|null} index\r\n */\r\n removeBlock(index) {\r\n if (!index) {\r\n index = this.currentBlockIndex;\r\n }\r\n this._blocks.remove(index);\r\n\r\n /**\r\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\r\n */\r\n if (!this.blocks.length) {\r\n this.currentBlockIndex = -1;\r\n this.insert();\r\n this.currentBlock.firstInput.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Split current Block\r\n * 1. Extract content from Caret position to the Block`s end\r\n * 2. Insert a new Block below current one with extracted content\r\n *\r\n * @return {Block}\r\n */\r\n split() {\r\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\r\n wrapper = $.make('div');\r\n\r\n wrapper.append(extractedFragment);\r\n\r\n /**\r\n * @todo make object in accordance with Tool\r\n */\r\n let data = {\r\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\r\n };\r\n\r\n /**\r\n * Renew current Block\r\n * @type {Block}\r\n */\r\n return this.insert(this.config.initialBlock, data);\r\n }\r\n\r\n /**\r\n * Replace current working block\r\n *\r\n * @param {String} toolName — plugin name\r\n * @param {Object} data — plugin data\r\n *\r\n * @return {Block}\r\n */\r\n replace(toolName, data = {}) {\r\n let block = this.composeBlock(toolName, data);\r\n\r\n this._blocks.insert(this.currentBlockIndex, block, true);\r\n\r\n return block;\r\n }\r\n\r\n /**\r\n * returns last Block\r\n * @return {Block}\r\n */\r\n get lastBlock() {\r\n return this._blocks[this._blocks.length - 1];\r\n }\r\n\r\n /**\r\n * Returns Block by passed index\r\n * @param {Number} index\r\n * @return {Block}\r\n */\r\n getBlockByIndex(index) {\r\n return this._blocks[index];\r\n }\r\n\r\n /**\r\n * Get Block instance by html element\r\n * @param {Node} element\r\n * @returns {Block}\r\n */\r\n getBlock(element) {\r\n if (!$.isElement(element)) {\r\n element = element.parentNode;\r\n }\r\n\r\n let nodes = this._blocks.nodes,\r\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\r\n index = nodes.indexOf(firstLevelBlock);\r\n\r\n if (index >= 0) {\r\n return this._blocks[index];\r\n }\r\n }\r\n\r\n /**\r\n * Get current Block instance\r\n *\r\n * @return {Block}\r\n */\r\n get currentBlock() {\r\n return this._blocks[this.currentBlockIndex];\r\n }\r\n\r\n /**\r\n * Returns next Block instance\r\n * @return {Block|null}\r\n */\r\n get nextBlock() {\r\n let isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\r\n\r\n if (isLastBlock) {\r\n return null;\r\n }\r\n\r\n return this._blocks[this.currentBlockIndex + 1];\r\n }\r\n\r\n /**\r\n * Return first Block with inputs after current Block\r\n *\r\n * @returns {Block | undefined}\r\n */\r\n get nextContentfulBlock() {\r\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\r\n\r\n return nextBlocks.find(block => !!block.inputs.length);\r\n }\r\n\r\n /**\r\n * Return first Block with inputs before current Block\r\n *\r\n * @returns {Block | undefined}\r\n */\r\n get previousContentfulBlock() {\r\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\r\n\r\n return previousBlocks.find(block => !!block.inputs.length);\r\n }\r\n\r\n /**\r\n * Returns previous Block instance\r\n * @return {Block|null}\r\n */\r\n get previousBlock() {\r\n let isFirstBlock = this.currentBlockIndex === 0;\r\n\r\n if (isFirstBlock) {\r\n return null;\r\n }\r\n\r\n return this._blocks[this.currentBlockIndex - 1];\r\n }\r\n\r\n /**\r\n * Remove selection from all Blocks then highlight only Current Block\r\n */\r\n highlightCurrentNode() {\r\n /**\r\n * Remove previous selected Block's state\r\n */\r\n this.clearHighlightings();\r\n\r\n /**\r\n * Mark current Block as selected\r\n * @type {boolean}\r\n */\r\n this.currentBlock.selected = true;\r\n }\r\n\r\n /**\r\n * Remove selection from all Blocks\r\n */\r\n clearHighlightings() {\r\n this.blocks.forEach( block => block.selected = false);\r\n }\r\n\r\n /**\r\n * Get array of Block instances\r\n *\r\n * @returns {Block[]} {@link Blocks#array}\r\n */\r\n get blocks() {\r\n return this._blocks.array;\r\n }\r\n\r\n /**\r\n * 1) Find first-level Block from passed child Node\r\n * 2) Mark it as current\r\n *\r\n * @param {Element|Text} childNode - look ahead from this node.\r\n * @param {string} caretPosition - position where to set caret\r\n * @throws Error - when passed Node is not included at the Block\r\n */\r\n setCurrentBlockByChildNode(childNode, caretPosition = 'default') {\r\n /**\r\n * If node is Text TextNode\r\n */\r\n if (!$.isElement(childNode)) {\r\n childNode = childNode.parentNode;\r\n }\r\n\r\n const parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\r\n\r\n if (parentFirstLevelBlock) {\r\n /**\r\n * Update current Block's index\r\n * @type {number}\r\n */\r\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock);\r\n\r\n this.Editor.Caret.setToInput(childNode, caretPosition);\r\n } else {\r\n throw new Error('Can not find a Block from this child Node');\r\n }\r\n }\r\n\r\n /**\r\n * Return block which contents passed node\r\n *\r\n * @param {Node} childNode\r\n * @return {Block}\r\n */\r\n getBlockByChildNode(childNode) {\r\n /**\r\n * If node is Text TextNode\r\n */\r\n if (!$.isElement(childNode)) {\r\n childNode = childNode.parentNode;\r\n }\r\n\r\n const firstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\r\n\r\n return this.blocks.find(block => block.holder === firstLevelBlock);\r\n }\r\n\r\n /**\r\n * Swap Blocks Position\r\n * @param {Number} fromIndex\r\n * @param {Number} toIndex\r\n */\r\n swap(fromIndex, toIndex) {\r\n /** Move up current Block */\r\n this._blocks.swap(fromIndex, toIndex);\r\n\r\n /** Now actual block moved up so that current block index decreased */\r\n this.currentBlockIndex = toIndex;\r\n }\r\n\r\n /**\r\n * Sets current Block Index -1 which means unknown\r\n * and clear highlightings\r\n */\r\n dropPointer() {\r\n this.currentBlockIndex = -1;\r\n this.clearHighlightings();\r\n }\r\n\r\n /**\r\n * Clears Editor\r\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\r\n * we don't need to add empty initial block\r\n * 2) in api.blocks.clear we should add empty block\r\n */\r\n clear(needAddInitialBlock = false) {\r\n this._blocks.removeAll();\r\n this.dropPointer();\r\n\r\n if (needAddInitialBlock) {\r\n this.insert(this.config.initialBlock);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * @class Blocks\r\n * @classdesc Class to work with Block instances array\r\n *\r\n * @private\r\n *\r\n * @property {HTMLElement} workingArea — editor`s working node\r\n *\r\n */\r\nclass Blocks {\r\n /**\r\n * @constructor\r\n *\r\n * @param {HTMLElement} workingArea — editor`s working node\r\n */\r\n constructor(workingArea) {\r\n this.blocks = [];\r\n this.workingArea = workingArea;\r\n }\r\n\r\n /**\r\n * Push back new Block\r\n *\r\n * @param {Block} block\r\n */\r\n push(block) {\r\n this.blocks.push(block);\r\n this.workingArea.appendChild(block.holder);\r\n }\r\n\r\n /**\r\n * Swaps blocks with indexes first and second\r\n * @param {Number} first - first block index\r\n * @param {Number} second - second block index\r\n */\r\n swap(first, second) {\r\n let secondBlock = this.blocks[second];\r\n\r\n /**\r\n * Change in DOM\r\n */\r\n $.swap(this.blocks[first].holder, secondBlock.holder);\r\n\r\n /**\r\n * Change in array\r\n */\r\n this.blocks[second] = this.blocks[first];\r\n this.blocks[first] = secondBlock;\r\n }\r\n\r\n /**\r\n * Insert new Block at passed index\r\n *\r\n * @param {Number} index — index to insert Block\r\n * @param {Block} block — Block to insert\r\n * @param {Boolean} replace — it true, replace block on given index\r\n */\r\n insert(index, block, replace = false) {\r\n if (!this.length) {\r\n this.push(block);\r\n return;\r\n }\r\n\r\n if (index > this.length) {\r\n index = this.length;\r\n }\r\n\r\n if (replace) {\r\n this.blocks[index].holder.remove();\r\n }\r\n\r\n let deleteCount = replace ? 1 : 0;\r\n\r\n this.blocks.splice(index, deleteCount, block);\r\n\r\n if (index > 0) {\r\n let previousBlock = this.blocks[index - 1];\r\n\r\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\r\n } else {\r\n let nextBlock = this.blocks[index + 1];\r\n\r\n if (nextBlock) {\r\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\r\n } else {\r\n this.workingArea.appendChild(block.holder);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Remove block\r\n * @param {Number|null} index\r\n */\r\n remove(index) {\r\n if (isNaN(index)) {\r\n index = this.length - 1;\r\n }\r\n\r\n this.blocks[index].holder.remove();\r\n this.blocks.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Remove all blocks\r\n */\r\n removeAll() {\r\n this.workingArea.innerHTML = '';\r\n this.blocks.length = 0;\r\n }\r\n\r\n /**\r\n * Insert Block after passed target\r\n *\r\n * @todo decide if this method is necessary\r\n *\r\n * @param {Block} targetBlock — target after wich Block should be inserted\r\n * @param {Block} newBlock — Block to insert\r\n */\r\n insertAfter(targetBlock, newBlock) {\r\n let index = this.blocks.indexOf(targetBlock);\r\n\r\n this.insert(index + 1, newBlock);\r\n }\r\n\r\n /**\r\n * Get Block by index\r\n *\r\n * @param {Number} index — Block index\r\n * @returns {Block}\r\n */\r\n get(index) {\r\n return this.blocks[index];\r\n }\r\n\r\n /**\r\n * Return index of passed Block\r\n *\r\n * @param {Block} block\r\n * @returns {Number}\r\n */\r\n indexOf(block) {\r\n return this.blocks.indexOf(block);\r\n }\r\n\r\n /**\r\n * Get length of Block instances array\r\n *\r\n * @returns {Number}\r\n */\r\n get length() {\r\n return this.blocks.length;\r\n }\r\n\r\n /**\r\n * Get Block instances array\r\n *\r\n * @returns {Block[]}\r\n */\r\n get array() {\r\n return this.blocks;\r\n }\r\n\r\n /**\r\n * Get blocks html elements array\r\n *\r\n * @returns {HTMLElement[]}\r\n */\r\n get nodes() {\r\n return _.array(this.workingArea.children);\r\n }\r\n\r\n /**\r\n * Proxy trap to implement array-like setter\r\n *\r\n * @example\r\n * blocks[0] = new Block(...)\r\n *\r\n * @param {Blocks} instance — Blocks instance\r\n * @param {Number|String} index — block index\r\n * @param {Block} block — Block to set\r\n * @returns {Boolean}\r\n */\r\n static set(instance, index, block) {\r\n if (isNaN(Number(index))) {\r\n return false;\r\n }\r\n\r\n instance.insert(index, block);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Proxy trap to implement array-like getter\r\n *\r\n * @param {Blocks} instance — Blocks instance\r\n * @param {Number|String} index — Block index\r\n * @returns {Block|*}\r\n */\r\n static get(instance, index) {\r\n if (isNaN(Number(index))) {\r\n return instance[index];\r\n }\r\n\r\n return instance.get(index);\r\n }\r\n}\r\n","/**\r\n * @class Caret\r\n * @classdesc Contains methods for working Caret\r\n *\r\n * Uses Range methods to manipulate with caret\r\n *\r\n * @module Caret\r\n *\r\n * @version 2.0.0\r\n */\r\n\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @typedef {Caret} Caret\r\n */\r\nexport default class Caret extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Elements styles that can be useful for Caret Module\r\n */\r\n static get CSS() {\r\n return {\r\n shadowCaret: 'cdx-shadow-caret'\r\n };\r\n };\r\n\r\n /**\r\n * Allowed caret positions in input\r\n *\r\n * @static\r\n * @returns {{START: string, END: string, DEFAULT: string}}\r\n */\r\n static get positions() {\r\n return {\r\n START: 'start',\r\n END: 'end',\r\n DEFAULT: 'default'\r\n };\r\n }\r\n\r\n /**\r\n * Method gets Block instance and puts caret to the text node with offset\r\n * There two ways that method applies caret position:\r\n * - first found text node: sets at the beginning, but you can pass an offset\r\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\r\n *\r\n * @param {Block} block - Block class\r\n * @param {String} position - position where to set caret. If default - leave default behaviour and apply offset if it's passed\r\n * @param {Number} offset - caret offset regarding to the text node\r\n */\r\n setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\r\n const {BlockManager} = this.Editor;\r\n let element;\r\n\r\n switch(position) {\r\n case Caret.positions.START:\r\n element = block.firstInput;\r\n break;\r\n case Caret.positions.END:\r\n element = block.lastInput;\r\n break;\r\n default:\r\n element = block.currentInput;\r\n }\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\r\n const contentLength = $.getContentLength(nodeToSet);\r\n\r\n switch (true) {\r\n case position === Caret.positions.START:\r\n offset = 0;\r\n break;\r\n case position === Caret.positions.END:\r\n case offset > contentLength:\r\n offset = contentLength;\r\n break;\r\n }\r\n\r\n /**\r\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\r\n */\r\n _.delay( () => {\r\n this.set(nodeToSet, offset);\r\n }, 20)();\r\n\r\n BlockManager.setCurrentBlockByChildNode(block.holder);\r\n BlockManager.currentBlock.currentInput = element;\r\n }\r\n\r\n /**\r\n * Set caret to the current input of current Block.\r\n *\r\n * @param {HTMLElement} input - input where caret should be set\r\n * @param {String} position - position of the caret. If default - leave default behaviour and apply offset if it's passed\r\n * @param {number} offset - caret offset regarding to the text node\r\n */\r\n setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\r\n const {currentBlock} = this.Editor.BlockManager;\r\n const nodeToSet = $.getDeepestNode(input);\r\n\r\n switch (position) {\r\n case Caret.positions.START:\r\n this.set(nodeToSet, 0);\r\n break;\r\n\r\n case Caret.positions.END:\r\n const contentLength = $.getContentLength(nodeToSet);\r\n\r\n this.set(nodeToSet, contentLength);\r\n break;\r\n\r\n default:\r\n if (offset) {\r\n this.set(nodeToSet, offset);\r\n }\r\n }\r\n\r\n currentBlock.currentInput = input;\r\n }\r\n\r\n /**\r\n * Creates Document Range and sets caret to the element with offset\r\n * @param {Element} element - target node.\r\n * @param {Number} offset - offset\r\n */\r\n set( element, offset = 0) {\r\n const range = document.createRange(),\r\n selection = Selection.get();\r\n\r\n /** if found deepest node is native input */\r\n if ($.isNativeInput(element)) {\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = offset;\r\n return;\r\n }\r\n\r\n range.setStart(element, offset);\r\n range.setEnd(element, offset);\r\n\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n\r\n\r\n /** If new cursor position is not visible, scroll to it */\r\n const {top, bottom} = range.getBoundingClientRect();\r\n const {innerHeight} = window;\r\n\r\n if (top < 0) window.scrollBy(0, top);\r\n if (bottom > innerHeight) window.scrollBy(0, bottom - innerHeight);\r\n };\r\n\r\n /**\r\n * Set Caret to the last Block\r\n * If last block is not empty, append another empty block\r\n */\r\n setToTheLastBlock() {\r\n let lastBlock = this.Editor.BlockManager.lastBlock;\r\n\r\n if (!lastBlock) return;\r\n\r\n /**\r\n * If last block is empty and it is an initialBlock, set to that.\r\n * Otherwise, append new empty block and set to that\r\n */\r\n if (lastBlock.isEmpty) {\r\n this.setToBlock(lastBlock);\r\n } else {\r\n const newBlock = this.Editor.BlockManager.insertAtEnd();\r\n\r\n this.setToBlock(newBlock);\r\n }\r\n }\r\n\r\n /**\r\n * Extract content fragment of current Block from Caret position to the end of the Block\r\n */\r\n extractFragmentFromCaretPosition() {\r\n let selection = Selection.get();\r\n\r\n if (selection.rangeCount) {\r\n const selectRange = selection.getRangeAt(0);\r\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\r\n\r\n\r\n selectRange.deleteContents();\r\n\r\n if (currentBlockInput) {\r\n let range = selectRange.cloneRange(true);\r\n\r\n range.selectNodeContents(currentBlockInput);\r\n range.setStart(selectRange.endContainer, selectRange.endOffset);\r\n return range.extractContents();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\r\n * Then you can check it for emptiness\r\n *\r\n * @example\r\n *

    \r\n *\r\n * @return {Element[]}\r\n */\r\n getHigherLevelSiblings(from, direction ) {\r\n let current = from,\r\n siblings = [];\r\n\r\n /**\r\n * Find passed node's firs-level parent (in example - blockquote)\r\n */\r\n while (current.parentNode && current.parentNode.contentEditable !== 'true') {\r\n current = current.parentNode;\r\n }\r\n\r\n let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling';\r\n\r\n /**\r\n * Find all left/right siblings\r\n */\r\n while (current[sibling]) {\r\n current = current[sibling];\r\n siblings.push(current);\r\n }\r\n\r\n return siblings;\r\n }\r\n\r\n /**\r\n * Set's caret to the next Block or Tool`s input\r\n * Before moving caret, we should check if caret position is at the end of Plugins node\r\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\r\n *\r\n * @param {Boolean} force - force navigation even if caret is not at the end\r\n *\r\n * @return {Boolean}\r\n */\r\n navigateNext(force = false) {\r\n const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager;\r\n const {nextInput} = currentBlock;\r\n\r\n if (!nextContentfulBlock && !nextInput) {\r\n return false;\r\n }\r\n\r\n if (force) {\r\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\r\n return true;\r\n }\r\n\r\n if (this.isAtEnd) {\r\n /** If next Tool`s input exists, focus on it. Otherwise set caret to the next Block */\r\n if (!nextInput) {\r\n this.setToBlock(nextContentfulBlock, Caret.positions.START);\r\n } else {\r\n this.setToInput(nextInput, Caret.positions.START);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Set's caret to the previous Tool`s input or Block\r\n * Before moving caret, we should check if caret position is start of the Plugins node\r\n * Using {@link Dom#getDeepestNode} to get a last node and match with current selection\r\n *\r\n * @param {Boolean} force - force navigation even if caret is not at the start\r\n *\r\n * @return {Boolean}\r\n */\r\n navigatePrevious(force = false) {\r\n const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager;\r\n const {previousInput} = currentBlock || {};\r\n\r\n if (!previousContentfulBlock && !previousInput) {\r\n return false;\r\n }\r\n\r\n if (force) {\r\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\r\n }\r\n\r\n if (this.isAtStart) {\r\n /** If previous Tool`s input exists, focus on it. Otherwise set caret to the previous Block */\r\n if (!previousInput) {\r\n this.setToBlock( previousContentfulBlock, Caret.positions.END );\r\n } else {\r\n this.setToInput(previousInput, Caret.positions.END);\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Get's deepest first node and checks if offset is zero\r\n * @return {boolean}\r\n */\r\n get isAtStart() {\r\n /**\r\n * Don't handle ranges\r\n */\r\n if (!Selection.isCollapsed) {\r\n return false;\r\n }\r\n\r\n let selection = Selection.get(),\r\n anchorNode = selection.anchorNode,\r\n firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);\r\n\r\n /** In case lastNode is native input */\r\n if ($.isNativeInput(firstNode)) {\r\n return firstNode.selectionEnd === 0;\r\n }\r\n\r\n /**\r\n * Workaround case when caret in the text like \" |Hello!\"\r\n * selection.anchorOffset is 1, but real caret visible position is 0\r\n * @type {number}\r\n */\r\n let firstLetterPosition = anchorNode.textContent.search(/\\S/);\r\n\r\n if (firstLetterPosition === -1) { // empty text\r\n firstLetterPosition = 0;\r\n }\r\n\r\n /**\r\n * In case of\r\n *
    \r\n *

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

    <-- first (and deepest) node is \r\n *
    \r\n */\r\n if ($.isEmpty(lastNode)) {\r\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'right'),\r\n nothingAtRight = leftSiblings.every( node => $.isEmpty(node) );\r\n\r\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Workaround case:\r\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\r\n * Why not regular .trim():\r\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\r\n */\r\n let rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\r\n\r\n /**\r\n * We use >= comparison for case:\r\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\r\n */\r\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\r\n }\r\n\r\n /**\r\n * Inserts shadow element after passed element where caret can be placed\r\n * @param {Node} element\r\n */\r\n createShadow(element) {\r\n let shadowCaret = document.createElement('span');\r\n\r\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\r\n element.insertAdjacentElement('beforeEnd', shadowCaret);\r\n }\r\n\r\n /**\r\n * Restores caret position\r\n * @param {Node} element\r\n */\r\n restoreCaret(element) {\r\n let shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\r\n\r\n if (!shadowCaret) {\r\n return;\r\n }\r\n\r\n /**\r\n * After we set the caret to the required place\r\n * we need to clear shadow caret\r\n *\r\n * - make new range\r\n * - select shadowed span\r\n * - use extractContent to remove it from DOM\r\n */\r\n let sel = new Selection();\r\n\r\n sel.expandToTag(shadowCaret);\r\n\r\n setTimeout(() => {\r\n let newRange = document.createRange();\r\n\r\n newRange.selectNode(shadowCaret);\r\n newRange.extractContents();\r\n }, 50);\r\n }\r\n}\r\n","import SelectionUtils from '../selection';\r\n\r\ndeclare var Module: any;\r\n\r\nexport default class DragNDrop extends Module {\r\n\r\n /**\r\n * If drag has been started at editor, we save it\r\n *\r\n * @type Boolean\r\n * @private\r\n */\r\n private isStartedAtEditor = false;\r\n\r\n /**\r\n * Bind events\r\n *\r\n * @private\r\n */\r\n public prepare(): void {\r\n this.bindEvents();\r\n }\r\n\r\n /**\r\n * Add drag events listeners to editor zone\r\n * @private\r\n */\r\n private bindEvents(): void {\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\r\n\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\r\n\r\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\r\n this.isStartedAtEditor = true;\r\n }\r\n\r\n this.Editor.InlineToolbar.close();\r\n });\r\n\r\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\r\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\r\n }\r\n\r\n /**\r\n * Handle drop event\r\n *\r\n * @param {DragEvent} dropEvent\r\n */\r\n private processDrop = async (dropEvent: DragEvent): Promise => {\r\n const {\r\n BlockManager,\r\n Paste,\r\n } = this.Editor;\r\n\r\n dropEvent.preventDefault();\r\n\r\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\r\n\r\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\r\n document.execCommand('delete');\r\n }\r\n\r\n this.isStartedAtEditor = false;\r\n\r\n /**\r\n * Try to set current block by drop target.\r\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\r\n */\r\n try {\r\n BlockManager.setCurrentBlockByChildNode(dropEvent.target, 'end');\r\n } catch (e) {\r\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, 'end');\r\n }\r\n\r\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\r\n }\r\n}\r\n","/**\r\n * @module eventDispatcher\r\n *\r\n * Has two important methods:\r\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\r\n * - {Function} emit - fires all subscribers with data\r\n * - {Function off - unsubsribes callback\r\n *\r\n * @version 1.0.0\r\n *\r\n * @typedef {Events} Events\r\n * @property {Object} subscribers - all subscribers grouped by event name\r\n */\r\nexport default class Events extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.subscribers = {};\r\n }\r\n\r\n /**\r\n * Subscribe any event on callback\r\n *\r\n * @param {String} eventName - event name\r\n * @param {Function} callback - subscriber\r\n */\r\n on(eventName, callback) {\r\n if (!(eventName in this.subscribers)) {\r\n this.subscribers[eventName] = [];\r\n }\r\n\r\n // group by events\r\n this.subscribers[eventName].push(callback);\r\n }\r\n\r\n /**\r\n * Emit callbacks with passed data\r\n *\r\n * @param {String} eventName - event name\r\n * @param {Object} data - subscribers get this data when they were fired\r\n */\r\n emit(eventName, data) {\r\n if (!this.subscribers[eventName]) {\r\n return;\r\n }\r\n\r\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\r\n let newData = currentHandler(previousData);\r\n\r\n return newData ? newData : previousData;\r\n }, data);\r\n }\r\n\r\n /**\r\n * Unsubsribe callback from event\r\n *\r\n * @param eventName\r\n * @param callback\r\n */\r\n off(eventName, callback) {\r\n for(let i = 0; i < this.subscribers[eventName].length; i++) {\r\n if (this.subscribers[eventName][i] === callback) {\r\n delete this.subscribers[eventName][i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Destroyer\r\n * clears subsribers list\r\n */\r\n destroy() {\r\n this.subscribers = null;\r\n }\r\n}\r\n","/**\r\n * Codex Editor Listeners module\r\n *\r\n * @module Listeners\r\n *\r\n * Module-decorator for event listeners assignment\r\n *\r\n * @author Codex Team\r\n * @version 2.0.0\r\n */\r\n\r\n/**\r\n * @typedef {Listeners} Listeners\r\n * @property {Array} allListeners\r\n */\r\nexport default class Listeners extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.allListeners = [];\r\n }\r\n\r\n /**\r\n * Assigns event listener on element\r\n *\r\n * @param {Element} element - DOM element that needs to be listened\r\n * @param {String} eventType - event type\r\n * @param {Function} handler - method that will be fired on event\r\n * @param {Boolean} useCapture - use event bubbling\r\n */\r\n on(element, eventType, handler, useCapture = false) {\r\n let assignedEventData = {\r\n element,\r\n eventType,\r\n handler,\r\n useCapture\r\n };\r\n\r\n let alreadyExist = this.findOne(element, eventType, handler);\r\n\r\n if (alreadyExist) return;\r\n\r\n this.allListeners.push(assignedEventData);\r\n element.addEventListener(eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Removes event listener from element\r\n *\r\n * @param {Element} element - DOM element that we removing listener\r\n * @param {String} eventType - event type\r\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\r\n * @param {Boolean} useCapture - use event bubbling\r\n */\r\n off(element, eventType, handler, useCapture = false) {\r\n let existingListeners = this.findAll(element, eventType, handler);\r\n\r\n for (let i = 0; i < existingListeners.length; i++) {\r\n let index = this.allListeners.indexOf(existingListeners[i]);\r\n\r\n if (index > 0) {\r\n this.allListeners.splice(index, 1);\r\n }\r\n }\r\n\r\n element.removeEventListener(eventType, handler, useCapture);\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed element\r\n * @param {Element} element - searching element\r\n * @returns {Array} listeners that found on element\r\n */\r\n findByElement(element) {\r\n let listenersOnElement = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.element === element) {\r\n listenersOnElement.push(listener);\r\n }\r\n }\r\n\r\n return listenersOnElement;\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed event type\r\n * @param {String} eventType\r\n * @return {Array} listeners that found on element\r\n */\r\n findByType(eventType) {\r\n let listenersWithType = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.type === eventType) {\r\n listenersWithType.push(listener);\r\n }\r\n }\r\n\r\n return listenersWithType;\r\n }\r\n\r\n /**\r\n * Search method: looks for listener by passed handler\r\n * @param {Function} handler\r\n * @return {Array} listeners that found on element\r\n */\r\n findByHandler(handler) {\r\n let listenersWithHandler = [];\r\n\r\n for (let i = 0; i < this.allListeners.length; i++) {\r\n let listener = this.allListeners[i];\r\n\r\n if (listener.handler === handler) {\r\n listenersWithHandler.push(listener);\r\n }\r\n }\r\n\r\n return listenersWithHandler;\r\n }\r\n\r\n /**\r\n * @param {Element} element\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n * @return {Element|null}\r\n */\r\n findOne(element, eventType, handler) {\r\n let foundListeners = this.findAll(element, eventType, handler);\r\n\r\n return foundListeners.length > 0 ? foundListeners[0] : null;\r\n }\r\n\r\n /**\r\n * @param {Element} element\r\n * @param {String} eventType\r\n * @param {Function} handler\r\n * @return {Array}\r\n */\r\n findAll(element, eventType, handler) {\r\n let found,\r\n foundByElements = element ? this.findByElement(element) : [];\r\n // foundByEventType = eventType ? this.findByType(eventType) : [],\r\n // foundByHandler = handler ? this.findByHandler(handler) : [];\r\n\r\n if (element && eventType && handler) {\r\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\r\n } else if (element && eventType) {\r\n found = foundByElements.filter( event => event.eventType === eventType);\r\n } else {\r\n found = foundByElements;\r\n }\r\n\r\n return found;\r\n }\r\n\r\n /**\r\n * Removes all listeners\r\n */\r\n removeAll() {\r\n this.allListeners.map( (current) => {\r\n current.element.removeEventListener(current.eventType, current.handler);\r\n });\r\n\r\n this.allListeners = [];\r\n }\r\n}\r\n","/**\r\n * @module ModificationsObserver\r\n *\r\n * Handles any mutations\r\n * and gives opportunity to handle outside\r\n */\r\n\r\nimport IEditorConfig from '../interfaces/editor-config';\r\n\r\ndeclare const Module: any;\r\ndeclare const _: any;\r\n\r\nexport default class ModificationsObserver extends Module {\r\n\r\n /**\r\n * Debounce Timer\r\n * @type {number}\r\n */\r\n public static readonly DebounceTimer = 450;\r\n\r\n /**\r\n * Used to prevent several mutation callback execution\r\n * @type {Function}\r\n */\r\n private mutationDebouncer = _.debounce( () => {\r\n this.config.onChange.call();\r\n }, ModificationsObserver.DebounceTimer);\r\n\r\n /**\r\n * Constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Clear timeout and set null to mutationDebouncer property\r\n */\r\n public destroy() {\r\n this.mutationDebouncer = null;\r\n }\r\n\r\n /**\r\n * Preparation method\r\n * @return {Promise}\r\n */\r\n public async prepare(): Promise {\r\n /**\r\n * wait till Browser render Editor's Blocks\r\n */\r\n window.setTimeout( () => {\r\n this.setObserver();\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * setObserver\r\n *\r\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\r\n * so that User can handle outside from API\r\n */\r\n private setObserver(): void {\r\n const {Listeners, UI} = this.Editor;\r\n\r\n /**\r\n * Set Listener to the Editor
    element that holds only Blocks\r\n */\r\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\r\n this.mutationDebouncer();\r\n }, false);\r\n }\r\n}\r\n","import IBlockToolData from '../interfaces/tools/block-tool';\nimport IEditorConfig from '../interfaces/editor-config';\nimport CaretClass from './caret';\nimport SelectionUtils from '../selection';\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 * Files` types substitutions object.\n *\n * @param {string[]} extensions - array of extenstions Tool can handle\n * @param {string[]} mimeTypes - array of MIME types Tool can handle\n * @param {Function} handler - callback to handle pasted File\n */\ninterface IFilesSubstitution {\n extensions: string[];\n mimeTypes: string[];\n handler: (file: File) => IBlockToolData;\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/**\n * Tool onPaste configuration object\n */\ninterface IPasteConfig {\n tags?: string[];\n handler?: (element: HTMLElement) => IBlockToolData;\n patterns?: {[key: string]: RegExp};\n patternHandler?: (text: string, key: string) => IBlockToolData;\n files?: {extensions?: string[], mimeTypes?: string[]};\n fileHandler?: (file: File) => IBlockToolData;\n}\n\n/**\n * @class Paste\n * @classdesc Contains methods to handle paste on editor\n *\n * @module Paste\n *\n * @version 2.0.0\n */\nexport default class Paste extends Module {\n\n /** If string`s length is greater than this number we don't check paste patterns */\n public static readonly PATTERN_PROCESSING_MAX_LENGTH = 450;\n\n /**\n * Tags` substitutions parameters\n */\n private toolsTags: {[tag: string]: ITagSubstitute} = {};\n\n /**\n * Store tags to substitute by tool name\n */\n private tagsByTool: {[tools: string]: string[]} = {};\n\n /** Patterns` substitutions parameters */\n private toolsPatterns: IPatternSubstitute[] = [];\n\n /** Files` substitutions parameters */\n private toolsFiles: {\n [tool: string]: IFilesSubstitution,\n } = {};\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Set onPaste callback and collect tools` paste configurations\n *\n * @public\n */\n public async prepare(): Promise {\n this.setCallback();\n this.processTools();\n }\n\n /**\n * Handle pasted or dropped data transfer object\n *\n * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object\n */\n public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise {\n const { Sanitizer } = this.Editor;\n\n if (dataTransfer.types.includes('Files')) {\n await this.processFiles(dataTransfer.items);\n return;\n }\n\n const plainData = dataTransfer.getData('text/plain');\n let htmlData = dataTransfer.getData('text/html');\n\n /**\n * If text was drag'n'dropped, wrap content with P tag to insert it as the new Block\n */\n if (isDragNDrop && plainData.trim() && htmlData.trim()) {\n htmlData = '

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

    ';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.defaultConfig.tags);\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (this.config.initialBlock === name && !toolPasteConfig.handler) {\n _.log(\n `«${name}» Tool must provide a paste handler.`,\n 'warn',\n );\n }\n\n if (!toolPasteConfig.handler) {\n return;\n }\n\n if (typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n\n this.tagsByTool[name] = tags.map((t) => t.toUpperCase());\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: IPasteConfig): void {\n\n const {fileHandler, files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!fileHandler || (!extensions && !mimeTypes)) {\n return;\n }\n\n if (typeof fileHandler !== 'function') {\n _.log(`Drop handler for «${name}» Tool should be a function.`);\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n handler: fileHandler,\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: IPasteConfig): void {\n if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n if (typeof toolPasteConfig.patternHandler !== 'function') {\n _.log(\n `Pattern parser for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n handler: toolPasteConfig.patternHandler,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise => {\n const {\n Editor: {Sanitizer, BlockManager, Tools, Caret},\n } = this;\n\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {DataTransferItemList} items - pasted or dropped items\n */\n private async processFiles(items: DataTransferItemList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, data: IBlockToolData}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.replace(data.type, data.data);\n return;\n }\n\n BlockManager.insert(data.type, data.data);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {DataTransferItem} item\n */\n private async processFile(item: DataTransferItem) {\n if (item.kind === 'string') {\n return;\n }\n\n const file = item.getAsFile();\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool, {handler}] = foundConfig;\n return {\n data: await handler(file),\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n /**\n * If caret not at the end of of the Block and there is no selection,\n * we split the Block and insert content at the middle.\n */\n if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) {\n this.splitBlock();\n }\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {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 = 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) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {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\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n return {content, tool, isBlock: false, handler};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {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 insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n /** 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 * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n const {tool = ''} = this.toolsTags[element.tagName] || {};\n const toolTags = this.tagsByTool[tool] || [];\n\n const isSubstitutable = tags.includes(element.tagName);\n const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase());\n const containsAnotherToolTags = Array\n .from(element.children)\n .some(\n ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName),\n );\n\n const containsBlockElements = Array.from(element.children).some(\n ({tagName}) => $.blockElements.includes(tagName.toLowerCase()),\n );\n\n /** Append inline elements to previous fragment */\n if (!isBlockElement && !isSubstitutable) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (\n (isSubstitutable && !containsAnotherToolTags) ||\n (isBlockElement && !containsBlockElements && !containsAnotherToolTags )\n ) {\n return [...nodes, destNode, element];\n }\n break;\n\n /**\n * If node is text node, wrap it with DocumentFragment\n */\n case Node.TEXT_NODE:\n destNode.appendChild(node);\n return [...nodes, destNode];\n\n default:\n return [...nodes, destNode];\n }\n\n return [...nodes, ...Array.from(node.childNodes).reduce(reducer, [])];\n };\n\n return children.reduce(reducer, []);\n }\n}\n","/**\r\n * Codex Editor Renderer Module\r\n *\r\n * @module Renderer\r\n * @author CodeX Team\r\n *\r\n * @version 2.0.0\r\n */\r\nexport default class Renderer extends Module {\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * @typedef {Object} RendererBlocks\r\n * @property {String} type - tool name\r\n * @property {Object} data - tool data\r\n */\r\n\r\n /**\r\n * @example\r\n *\r\n * blocks: [\r\n * {\r\n * type : 'paragraph',\r\n * data : {\r\n * text : 'Hello from Codex!'\r\n * }\r\n * },\r\n * {\r\n * type : 'paragraph',\r\n * data : {\r\n * text : 'Leave feedback if you like it!'\r\n * }\r\n * },\r\n * ]\r\n *\r\n */\r\n\r\n /**\r\n * Make plugin blocks from array of plugin`s data\r\n * @param {RendererBlocks[]} blocks\r\n */\r\n render(blocks) {\r\n let chainData = [];\r\n\r\n for (let i = 0; i < blocks.length; i++) {\r\n chainData.push({\r\n function: () => this.insertBlock(blocks[i])\r\n });\r\n }\r\n\r\n return _.sequence(chainData);\r\n }\r\n\r\n /**\r\n * Get plugin instance\r\n * Add plugin instance to BlockManager\r\n * Insert block to working zone\r\n *\r\n * @param {Object} item\r\n * @returns {Promise.}\r\n * @private\r\n */\r\n insertBlock(item) {\r\n let tool = item.type,\r\n data = item.data,\r\n settings = item.settings;\r\n\r\n if (tool in this.Editor.Tools.available) {\r\n try {\r\n this.Editor.BlockManager.insert(tool, data, settings);\r\n } catch (error) {\r\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\r\n Promise.reject(error);\r\n }\r\n } else {\r\n /**\r\n * @todo show warning notification message\r\n *\r\n * `${tool} blocks was skipped.`\r\n */\r\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n}\r\n","/**\r\n * CodeX Sanitizer\r\n *\r\n * @module Sanitizer\r\n * Clears HTML from taint tags\r\n *\r\n * @version 2.0.0\r\n *\r\n * @example\r\n * Module can be used within two ways:\r\n * 1) When you have an instance\r\n * - this.Editor.Sanitizer.clean(yourTaintString);\r\n * 2) As static method\r\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\r\n *\r\n * {@link SanitizerConfig}\r\n */\r\n\r\n\r\n/**\r\n * @typedef {Object} SanitizerConfig\r\n * @property {Object} tags - define tags restrictions\r\n *\r\n * @example\r\n *\r\n * tags : {\r\n * p: true,\r\n * a: {\r\n * href: true,\r\n * rel: \"nofollow\",\r\n * target: \"_blank\"\r\n * }\r\n * }\r\n */\r\nexport default class Sanitizer extends Module {\r\n /**\r\n * Initializes Sanitizer module\r\n * Sets default configuration if custom not exists\r\n *\r\n * @property {SanitizerConfig} this.defaultConfig\r\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\r\n *\r\n * @param {SanitizerConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this._sanitizerInstance = null;\r\n\r\n /** Custom configuration */\r\n this.sanitizerConfig = config.settings ? config.settings.sanitizer : null;\r\n\r\n /** HTML Janitor library */\r\n this.sanitizerInstance = require('html-janitor');\r\n }\r\n\r\n /**\r\n * If developer uses editor's API, then he can customize sanitize restrictions.\r\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\r\n * At least, if there is no config overrides, that API uses Default configuration\r\n *\r\n * @uses https://www.npmjs.com/package/html-janitor\r\n *\r\n * @param {HTMLJanitor} library - sanitizer extension\r\n */\r\n set sanitizerInstance(library) {\r\n if (this.sanitizerConfig) {\r\n this._sanitizerInstance = new library(this.sanitizerConfig);\r\n }\r\n\r\n return this._sanitizerInstance;\r\n }\r\n\r\n /**\r\n * Sets sanitizer configuration. Uses default config if user didn't pass the restriction\r\n */\r\n get defaultConfig() {\r\n return {\r\n tags: {\r\n p: {},\r\n a: {\r\n href: true,\r\n target: '_blank',\r\n rel: 'nofollow'\r\n },\r\n b: {},\r\n i: {}\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Return sanitizer instance\r\n * @return {null|library}\r\n */\r\n get sanitizerInstance() {\r\n return this._sanitizerInstance;\r\n }\r\n\r\n /**\r\n * Cleans string from unwanted tags\r\n * @param {String} taintString - HTML string\r\n * @param {Object} customConfig - custom sanitizer configuration. Method uses default if param is empty\r\n * @return {String} clean HTML\r\n */\r\n clean(taintString, customConfig) {\r\n if (customConfig && typeof customConfig === 'object') {\r\n /**\r\n * API client can use custom config to manage sanitize process\r\n */\r\n let newConfig = {\r\n tags: customConfig\r\n };\r\n\r\n return Sanitizer.clean(taintString, newConfig);\r\n } else {\r\n /**\r\n * Ignore sanitizing when nothing passed in config\r\n */\r\n if (!this.sanitizerInstance) {\r\n return taintString;\r\n } else {\r\n return this.sanitizerInstance.clean(taintString);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Cleans string from unwanted tags\r\n * @static\r\n *\r\n * Method allows to use default config\r\n *\r\n * @param {String} taintString - taint string\r\n * @param {SanitizerConfig} customConfig - allowed tags\r\n *\r\n * @return {String} clean HTML\r\n */\r\n static clean(taintString, customConfig) {\r\n let newInstance = new Sanitizer({\r\n config: {\r\n settings: {\r\n sanitizer: customConfig\r\n }\r\n }\r\n });\r\n\r\n return newInstance.clean(taintString);\r\n }\r\n}\r\n","/**\r\n * Codex Editor Saver\r\n *\r\n * @module Saver\r\n * @author Codex Team\r\n * @version 2.0.0\r\n */\r\n\r\n/**\r\n * @typedef {Object} SavedData\r\n * @property {Date} time - saving proccess time\r\n * @property {Object} items - extracted data\r\n * @property {String} version - CodexEditor version\r\n */\r\n\r\n/**\r\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\r\n *\r\n * @typedef {Saver} Saver\r\n * @property {Element} html - Editor HTML content\r\n * @property {String} json - Editor JSON output\r\n */\r\nexport default class Saver extends Module {\r\n /**\r\n * @constructor\r\n * @param config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.output = null;\r\n this.blocksData = [];\r\n }\r\n\r\n /**\r\n * Composes new chain of Promises to fire them alternatelly\r\n * @return {SavedData}\r\n */\r\n save() {\r\n let blocks = this.Editor.BlockManager.blocks,\r\n chainData = [];\r\n\r\n blocks.forEach((block) => {\r\n chainData.push(block.data);\r\n });\r\n\r\n return Promise.all(chainData)\r\n .then((allExtractedData) => this.makeOutput(allExtractedData))\r\n .then((outputData) => {\r\n return outputData;\r\n });\r\n }\r\n\r\n /**\r\n * Creates output object with saved data, time and version of editor\r\n * @param {Object} allExtractedData\r\n * @return {SavedData}\r\n */\r\n makeOutput(allExtractedData) {\r\n let blocks = [],\r\n totalTime = 0;\r\n\r\n console.groupCollapsed('[CodexEditor saving]:');\r\n\r\n allExtractedData.forEach((extraction) => {\r\n /** Group process info */\r\n console.log(`«${extraction.tool}» saving info`, extraction);\r\n totalTime += extraction.time;\r\n blocks.push({\r\n type: extraction.tool,\r\n data: extraction.data\r\n });\r\n });\r\n\r\n console.log('Total', totalTime);\r\n console.groupEnd();\r\n\r\n return {\r\n time: +new Date(),\r\n blocks: blocks,\r\n version: VERSION,\r\n };\r\n }\r\n}\r\n\r\n// module.exports = (function (saver) {\r\n//\r\n// let editor = codex.editor;\r\n//\r\n// /**\r\n// * @public\r\n// * Save blocks\r\n// */\r\n// saver.save = function () {\r\n//\r\n// /** Save html content of redactor to memory */\r\n// editor.state.html = editor.nodes.redactor.innerHTML;\r\n//\r\n// /** Clean jsonOutput state */\r\n// editor.state.jsonOutput = [];\r\n//\r\n// return saveBlocks(editor.nodes.redactor.childNodes);\r\n//\r\n// };\r\n//\r\n// /**\r\n// * @private\r\n// * Save each block data\r\n// *\r\n// * @param blocks\r\n// * @returns {Promise.}\r\n// */\r\n// let saveBlocks = function (blocks) {\r\n//\r\n// let data = [];\r\n//\r\n// for(let index = 0; index < blocks.length; index++) {\r\n//\r\n// data.push(getBlockData(blocks[index]));\r\n//\r\n// }\r\n//\r\n// return Promise.all(data)\r\n// .then(makeOutput)\r\n// .catch(editor.core.log);\r\n//\r\n// };\r\n//\r\n// /** Save and validate block data */\r\n// let getBlockData = function (block) {\r\n//\r\n// return saveBlockData(block)\r\n// .then(validateBlockData)\r\n// .catch(editor.core.log);\r\n//\r\n// };\r\n//\r\n// /**\r\n// * @private\r\n// * Call block`s plugin save method and return saved data\r\n// *\r\n// * @param block\r\n// * @returns {Object}\r\n// */\r\n// let saveBlockData = function (block) {\r\n//\r\n// let pluginName = block.dataset.tool;\r\n//\r\n// /** Check for plugin existence */\r\n// if (!editor.tools[pluginName]) {\r\n//\r\n// editor.core.log(`Plugin «${pluginName}» not found`, 'error');\r\n// return {data: null, pluginName: null};\r\n//\r\n// }\r\n//\r\n// /** Check for plugin having save method */\r\n// if (typeof editor.tools[pluginName].save !== 'function') {\r\n//\r\n// editor.core.log(`Plugin «${pluginName}» must have save method`, 'error');\r\n// return {data: null, pluginName: null};\r\n//\r\n// }\r\n//\r\n// /** Result saver */\r\n// let blockContent = block.childNodes[0],\r\n// pluginsContent = blockContent.childNodes[0],\r\n// position = pluginsContent.dataset.inputPosition;\r\n//\r\n// /** If plugin wasn't available then return data from cache */\r\n// if ( editor.tools[pluginName].available === false ) {\r\n//\r\n// return Promise.resolve({data: codex.editor.state.blocks.items[position].data, pluginName});\r\n//\r\n// }\r\n//\r\n// return Promise.resolve(pluginsContent)\r\n// .then(editor.tools[pluginName].save)\r\n// .then(data => Object({data, pluginName}));\r\n//\r\n// };\r\n//\r\n// /**\r\n// * Call plugin`s validate method. Return false if validation failed\r\n// *\r\n// * @param data\r\n// * @param pluginName\r\n// * @returns {Object|Boolean}\r\n// */\r\n// let validateBlockData = function ({data, pluginName}) {\r\n//\r\n// if (!data || !pluginName) {\r\n//\r\n// return false;\r\n//\r\n// }\r\n//\r\n// if (editor.tools[pluginName].validate) {\r\n//\r\n// let result = editor.tools[pluginName].validate(data);\r\n//\r\n// /**\r\n// * Do not allow invalid data\r\n// */\r\n// if (!result) {\r\n//\r\n// return false;\r\n//\r\n// }\r\n//\r\n// }\r\n//\r\n// return {data, pluginName};\r\n//\r\n//\r\n// };\r\n//\r\n// /**\r\n// * Compile article output\r\n// *\r\n// * @param savedData\r\n// * @returns {{time: number, version, items: (*|Array)}}\r\n// */\r\n// let makeOutput = function (savedData) {\r\n//\r\n// savedData = savedData.filter(blockData => blockData);\r\n//\r\n// let items = savedData.map(blockData => Object({type: blockData.pluginName, data: blockData.data}));\r\n//\r\n// editor.state.jsonOutput = items;\r\n//\r\n// return {\r\n// id: editor.state.blocks.id || null,\r\n// time: +new Date(),\r\n// version: editor.version,\r\n// items\r\n// };\r\n//\r\n// };\r\n//\r\n// return saver;\r\n//\r\n// })({});\r\n","\r\nimport Shortcut from '@codexteam/shortcuts';\r\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\r\nimport IEditorConfig from '../interfaces/editor-config';\r\n\r\n/**\r\n * Contains keyboard and mouse events binded on each Block by Block Manager\r\n */\r\ndeclare var Module: any;\r\n\r\n/**\r\n * @class Shortcut\r\n * @classdesc Allows to register new shortcut\r\n *\r\n * Internal Shortcuts Module\r\n */\r\nexport default class Shortcuts extends Module implements IShortcuts {\r\n /**\r\n * All registered shortcuts\r\n * @type {IShortcut[]}\r\n */\r\n private registeredShortcuts: IShortcut[];\r\n\r\n /**\r\n * @constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n this.registeredShortcuts = [];\r\n }\r\n\r\n /**\r\n * Register shortcut\r\n * @param {IShortcut} shortcut\r\n */\r\n public add(shortcut: IShortcut): void {\r\n const newShortcut = new Shortcut({\r\n name: shortcut.name,\r\n on: document,\r\n callback: shortcut.handler,\r\n });\r\n\r\n this.registeredShortcuts.push(newShortcut);\r\n }\r\n\r\n /**\r\n * Remove shortcut\r\n * @param {IShortcut} shortcut\r\n */\r\n public remove(shortcut: string): void {\r\n // Remove\r\n }\r\n}\r\n","/**\r\n * Block Settings\r\n *\r\n * ____ Settings Panel ____\r\n * | ...................... |\r\n * | . Tool Settings . |\r\n * | ...................... |\r\n * | . Default Settings . |\r\n * | ...................... |\r\n * |________________________|\r\n */\r\nexport default class BlockSettings extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n wrapper: null,\r\n toolSettings: null,\r\n defaultSettings: null\r\n };\r\n }\r\n\r\n /**\r\n * Module Events\r\n * @return {{opened: string, closed: string}}\r\n */\r\n get events() {\r\n return {\r\n opened: 'block-settings-opened',\r\n closed: 'block-settings-closed',\r\n };\r\n }\r\n\r\n /**\r\n * Block Settings CSS\r\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\r\n */\r\n static get CSS() {\r\n return {\r\n // Settings Panel\r\n wrapper: 'ce-settings',\r\n wrapperOpened: 'ce-settings--opened',\r\n toolSettings: 'ce-settings__plugin-zone',\r\n defaultSettings: 'ce-settings__default-zone',\r\n\r\n button: 'ce-settings__button'\r\n };\r\n }\r\n\r\n /**\r\n * Panel with block settings with 2 sections:\r\n * - Tool's Settings\r\n * - Default Settings [Move, Remove, etc]\r\n *\r\n * @return {Element}\r\n */\r\n make() {\r\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\r\n\r\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\r\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\r\n\r\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\r\n }\r\n\r\n /**\r\n * Add Tool's settings\r\n */\r\n addToolSettings() {\r\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\r\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\r\n }\r\n }\r\n\r\n /**\r\n * Add default settings\r\n */\r\n addDefaultSettings() {\r\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\r\n }\r\n\r\n /**\r\n * Is Block Settings opened or not\r\n * @returns {boolean}\r\n */\r\n get opened() {\r\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\r\n }\r\n\r\n /**\r\n * Open Block Settings pane\r\n */\r\n open() {\r\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\r\n\r\n /**\r\n * Fill Tool's settings\r\n */\r\n this.addToolSettings();\r\n\r\n /**\r\n * Add default settings that presents for all Blocks\r\n */\r\n this.addDefaultSettings();\r\n\r\n /** Tell to subscribers that block settings is opened */\r\n this.Editor.Events.emit(this.events.opened);\r\n }\r\n\r\n /**\r\n * Close Block Settings pane\r\n */\r\n close() {\r\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\r\n\r\n /** Clear settings */\r\n this.nodes.toolSettings.innerHTML = '';\r\n this.nodes.defaultSettings.innerHTML = '';\r\n\r\n /** Tell to subscribers that block settings is closed */\r\n this.Editor.Events.emit(this.events.closed);\r\n }\r\n}\r\n","declare var Module: any;\r\ndeclare var $: any;\r\n\r\nimport BoldInlineTool from '../inline-tools/inline-tool-bold';\r\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\r\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\r\nimport EditorConfig from '../interfaces/editor-config';\r\nimport InlineTool from '../interfaces/tools/inline-tool';\r\nimport SelectionUtils from '../selection';\r\nimport _ from '../utils';\r\n\r\n/**\r\n * Inline toolbar with actions that modifies selected text fragment\r\n *\r\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\r\n * | B i [link] [mark] |\r\n * |________________________|\r\n */\r\nexport default class InlineToolbar extends Module {\r\n\r\n /**\r\n * CSS styles\r\n */\r\n public CSS = {\r\n inlineToolbar: 'ce-inline-toolbar',\r\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\r\n buttonsWrapper: 'ce-inline-toolbar__buttons',\r\n actionsWrapper: 'ce-inline-toolbar__actions',\r\n inlineToolButton: 'ce-inline-tool',\r\n inlineToolButtonLast: 'ce-inline-tool--last',\r\n };\r\n\r\n /**\r\n * Inline Toolbar elements\r\n */\r\n private nodes = {\r\n wrapper: null,\r\n buttons: null,\r\n /**\r\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\r\n * For example, input for the 'link' tool or textarea for the 'comment' tool\r\n */\r\n actions: null,\r\n };\r\n\r\n /**\r\n * Margin above/below the Toolbar\r\n */\r\n private readonly toolbarVerticalMargin: number = 20;\r\n\r\n /**\r\n * Tools instances\r\n */\r\n private toolsInstances: Map;\r\n\r\n /**\r\n * @constructor\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n }\r\n\r\n /**\r\n * Inline Toolbar Tools\r\n * includes internal and external tools\r\n *\r\n * @returns Map\r\n */\r\n get tools(): Map {\r\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\r\n const allTools = {...this.internalTools, ...this.externalTools};\r\n\r\n this.toolsInstances = new Map();\r\n for (const tool in allTools) {\r\n if (allTools.hasOwnProperty(tool)) {\r\n this.toolsInstances.set(tool, allTools[tool]);\r\n }\r\n }\r\n }\r\n\r\n return this.toolsInstances;\r\n }\r\n\r\n /**\r\n * Making DOM\r\n */\r\n public make() {\r\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\r\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\r\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\r\n\r\n /**\r\n * Append Inline Toolbar to the Editor\r\n */\r\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\r\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\r\n\r\n /**\r\n * Append Inline Toolbar Tools\r\n */\r\n this.addTools();\r\n\r\n }\r\n\r\n /**\r\n * Moving / appearance\r\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n */\r\n\r\n /**\r\n * Shows Inline Toolbar by keyup/mouseup\r\n * @param {KeyboardEvent|MouseEvent} event\r\n */\r\n public handleShowingEvent(event): void {\r\n if (!this.allowedToShow(event)) {\r\n this.close();\r\n return;\r\n }\r\n\r\n this.move();\r\n this.open();\r\n\r\n /** Check Tools state for selected fragment */\r\n this.checkToolsState();\r\n }\r\n\r\n /**\r\n * Move Toolbar to the selected text\r\n */\r\n public move(): void {\r\n const selectionRect = SelectionUtils.rect as DOMRect;\r\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\r\n const newCoords = {\r\n x: selectionRect.x - wrapperOffset.left,\r\n y: selectionRect.y\r\n + selectionRect.height\r\n // + window.scrollY\r\n - wrapperOffset.top\r\n + this.toolbarVerticalMargin,\r\n };\r\n\r\n /**\r\n * If we know selections width, place InlineToolbar to center\r\n */\r\n if (selectionRect.width) {\r\n newCoords.x += Math.floor(selectionRect.width / 2);\r\n }\r\n\r\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\r\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\r\n }\r\n\r\n /**\r\n * Shows Inline Toolbar\r\n */\r\n private open() {\r\n /**\r\n * Filter inline-tools and show only allowed by Block's Tool\r\n */\r\n this.filterTools();\r\n\r\n /**\r\n * Show Inline Toolbar\r\n */\r\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\r\n\r\n /**\r\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\r\n */\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n if (typeof toolInstance.clear === 'function') {\r\n toolInstance.clear();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Hides Inline Toolbar\r\n */\r\n private close() {\r\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n if (typeof toolInstance.clear === 'function') {\r\n toolInstance.clear();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Need to show Inline Toolbar or not\r\n * @param {KeyboardEvent|MouseEvent} event\r\n */\r\n private allowedToShow(event): boolean {\r\n /**\r\n * Tags conflicts with window.selection function.\r\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\r\n */\r\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\r\n\r\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\r\n return false;\r\n }\r\n\r\n const currentSelection = SelectionUtils.get(),\r\n selectedText = SelectionUtils.text;\r\n\r\n // old browsers\r\n if (!currentSelection || !currentSelection.anchorNode) {\r\n return false;\r\n }\r\n\r\n // empty selection\r\n if (currentSelection.isCollapsed || selectedText.length < 1) {\r\n return false;\r\n }\r\n\r\n // is enabled by current Block's Tool\r\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\r\n\r\n if (!currentBlock) {\r\n return false;\r\n }\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\r\n\r\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\r\n }\r\n\r\n /**\r\n * Show only allowed Tools\r\n */\r\n private filterTools(): void {\r\n const currentSelection = SelectionUtils.get(),\r\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\r\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\r\n\r\n /**\r\n * All Inline Toolbar buttons\r\n * @type {HTMLElement[]}\r\n */\r\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\r\n\r\n /**\r\n * Show previously hided\r\n */\r\n buttons.forEach((button) => {\r\n button.hidden = false;\r\n button.classList.remove(this.CSS.inlineToolButtonLast);\r\n });\r\n\r\n /**\r\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\r\n */\r\n if (Array.isArray(inlineToolbarSettings)) {\r\n buttons.forEach((button) => {\r\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\r\n });\r\n }\r\n\r\n /**\r\n * Tick for removing right-margin from last visible button.\r\n * Current generation of CSS does not allow to filter :visible elements\r\n */\r\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\r\n\r\n if (lastVisibleButton) {\r\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\r\n }\r\n }\r\n\r\n /**\r\n * Working with Tools\r\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n */\r\n\r\n /**\r\n * Fill Inline Toolbar with Tools\r\n */\r\n private addTools(): void {\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n this.addTool(toolName, toolInstance);\r\n });\r\n }\r\n\r\n /**\r\n * Add tool button and activate clicks\r\n */\r\n private addTool(toolName: string, tool: InlineTool): void {\r\n const button = tool.render();\r\n\r\n if (!button) {\r\n _.log('Render method must return an instance of Node', 'warn', toolName);\r\n return;\r\n }\r\n\r\n button.dataset.tool = toolName;\r\n this.nodes.buttons.appendChild(button);\r\n\r\n if (typeof tool.renderActions === 'function') {\r\n const actions = tool.renderActions();\r\n this.nodes.actions.appendChild(actions);\r\n }\r\n\r\n this.Editor.Listeners.on(button, 'click', (event) => {\r\n this.toolClicked(tool);\r\n event.preventDefault();\r\n });\r\n\r\n /**\r\n * Enable shortcuts\r\n * Ignore tool that doesn't have shortcut or empty string\r\n */\r\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\r\n\r\n let shortcut = null;\r\n\r\n /**\r\n * 1) For internal tools, check public getter 'shortcut'\r\n * 2) For external tools, check tool's settings\r\n */\r\n if (this.internalTools[toolName]) {\r\n shortcut = this.internalTools[toolName].shortcut;\r\n } else if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\r\n shortcut = toolSettings[this.Editor.Tools.apiSettings.SHORTCUT];\r\n }\r\n\r\n if (shortcut) {\r\n this.enableShortcuts(tool, shortcut);\r\n }\r\n }\r\n\r\n /**\r\n * Enable Tool shortcut with Editor Shortcuts Module\r\n * @param {InlineTool} tool - Tool instance\r\n * @param {string} shortcut - shortcut according to the Shortcut Module format\r\n */\r\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\r\n this.Editor.Shortcuts.add({\r\n name: shortcut,\r\n handler: (event) => {\r\n const {currentBlock} = this.Editor.BlockManager;\r\n\r\n /**\r\n * Editor is not focused\r\n */\r\n if (!currentBlock) {\r\n return;\r\n }\r\n\r\n /**\r\n * We allow to fire shortcut with empty selection (isCollapsed=true)\r\n * it can be used by tools like «Mention» that works without selection:\r\n * Example: by SHIFT+@ show dropdown and insert selected username\r\n */\r\n // if (SelectionUtils.isCollapsed) return;\r\n\r\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\r\n\r\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.toolClicked(tool);\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * Inline Tool button clicks\r\n * @param {InlineTool} tool - Tool's instance\r\n */\r\n private toolClicked(tool: InlineTool): void {\r\n const range = SelectionUtils.range;\r\n\r\n tool.surround(range);\r\n this.checkToolsState();\r\n }\r\n\r\n /**\r\n * Check Tools` state by selection\r\n */\r\n private checkToolsState(): void {\r\n this.tools.forEach( (toolInstance, toolName) => {\r\n toolInstance.checkState(SelectionUtils.get());\r\n });\r\n }\r\n\r\n /**\r\n * Returns internal inline tools\r\n * Includes Bold, Italic, Link\r\n */\r\n private get internalTools(): {[name: string]: InlineTool} {\r\n return {\r\n bold: this.Editor.Tools.constructInline(BoldInlineTool),\r\n italic: this.Editor.Tools.constructInline(ItalicInlineTool),\r\n link: this.Editor.Tools.constructInline(LinkInlineTool),\r\n };\r\n }\r\n\r\n /**\r\n * Get external tools\r\n * Tools that has isInline is true\r\n */\r\n private get externalTools(): {[name: string]: InlineTool} {\r\n const result = {};\r\n\r\n for (const tool in this.Editor.Tools.inline) {\r\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\r\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","import IEditorConfig from '../interfaces/editor-config';\r\n\r\n/**\r\n * @class Toolbox\r\n * @classdesc Holder for Tools\r\n *\r\n * @typedef {Toolbox} Toolbox\r\n * @property {Boolean} opened - opening state\r\n * @property {Object} nodes - Toolbox nodes\r\n * @property {Object} CSS - CSS class names\r\n *\r\n */\r\nexport default class Toolbox extends Module {\r\n /**\r\n * @constructor\r\n * @param {IEditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n toolbox: null,\r\n buttons: []\r\n };\r\n\r\n /**\r\n * Opening state\r\n * @type {boolean}\r\n */\r\n this.opened = false;\r\n\r\n /**\r\n * Active button index\r\n * -1 equals no chosen Tool\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = -1;\r\n\r\n /**\r\n * How many tools displayed in Toolbox\r\n * @type {number}\r\n */\r\n this.displayedToolsCount = 0;\r\n }\r\n\r\n /**\r\n * CSS styles\r\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\r\n */\r\n static get CSS() {\r\n return {\r\n toolbox: 'ce-toolbox',\r\n toolboxButton: 'ce-toolbox__button',\r\n toolboxButtonActive : 'ce-toolbox__button--active',\r\n toolboxOpened: 'ce-toolbox--opened',\r\n };\r\n }\r\n\r\n /**\r\n * Makes the Toolbox\r\n */\r\n make() {\r\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\r\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\r\n\r\n this.addTools();\r\n }\r\n\r\n /**\r\n * Iterates available tools and appends them to the Toolbox\r\n */\r\n addTools() {\r\n let tools = this.Editor.Tools.toolsAvailable;\r\n\r\n for (let toolName in tools) {\r\n this.addTool(toolName, tools[toolName]);\r\n }\r\n }\r\n\r\n /**\r\n * Append Tool to the Toolbox\r\n *\r\n * @param {string} toolName - tool name\r\n * @param {IBlockTool} tool - tool class\r\n */\r\n addTool(toolName, tool) {\r\n const api = this.Editor.Tools.apiSettings;\r\n\r\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\r\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\r\n return;\r\n }\r\n\r\n /**\r\n * @todo Add checkup for the render method\r\n */\r\n // if (typeof tool.render !== 'function') {\r\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\r\n // return;\r\n // }\r\n\r\n /**\r\n * Skip tools that pass 'displayInToolbox=false'\r\n */\r\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\r\n return;\r\n }\r\n\r\n let button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\r\n title: toolName\r\n });\r\n\r\n button.innerHTML = tool.toolboxIcon;\r\n\r\n $.append(this.nodes.toolbox, button);\r\n\r\n this.nodes.toolbox.appendChild(button);\r\n this.nodes.buttons.push(button);\r\n\r\n /**\r\n * Add click listener\r\n */\r\n this.Editor.Listeners.on(button, 'click', (event) => {\r\n this.toolButtonActivate(event, toolName);\r\n });\r\n\r\n /**\r\n * Enable shortcut\r\n */\r\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\r\n\r\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\r\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\r\n }\r\n\r\n /** Increment Tools count */\r\n this.displayedToolsCount++;\r\n }\r\n\r\n /**\r\n * Enable shortcut Block Tool implemented shortcut\r\n * @param {IBlockTool} tool - Tool class\r\n * @param {String} toolName - Tool name\r\n * @param {String} shortcut - shortcut according to the Shortcut Module format\r\n */\r\n enableShortcut(tool, toolName, shortcut) {\r\n this.Editor.Shortcuts.add({\r\n name: shortcut,\r\n handler: (event) => {\r\n event.preventDefault();\r\n this.insertNewBlock(tool, toolName);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Inserts new block\r\n * Can be called when button clicked on Toolbox or by Shortcut\r\n *\r\n * @param {IBlockTool} tool - Tool Class\r\n * @param {String} toolName - Tool name\r\n */\r\n insertNewBlock(tool, toolName) {\r\n /**\r\n * @type {Block}\r\n */\r\n const currentBlock = this.Editor.BlockManager.currentBlock;\r\n\r\n /**\r\n * We do replace if:\r\n * - block is empty\r\n * - block is not irreplaceable\r\n * @type {Array}\r\n */\r\n let newBlock;\r\n\r\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\r\n newBlock = this.Editor.BlockManager.replace(toolName);\r\n } else {\r\n newBlock = this.Editor.BlockManager.insert(toolName);\r\n }\r\n\r\n this.Editor.Caret.setToBlock(newBlock);\r\n\r\n /**\r\n * close toolbar when node is changed\r\n */\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n /**\r\n * Toolbox Tool's button click handler\r\n *\r\n * @param {MouseEvent|KeyboardEvent} event\r\n * @param {string} toolName\r\n */\r\n toolButtonActivate(event, toolName) {\r\n const tool = this.Editor.Tools.toolsClasses[toolName];\r\n\r\n this.insertNewBlock(tool, toolName);\r\n }\r\n\r\n /**\r\n * Open Toolbox with Tools\r\n */\r\n open() {\r\n if (this.isEmpty) {\r\n return;\r\n }\r\n\r\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\r\n this.opened = true;\r\n }\r\n\r\n /**\r\n * Close Toolbox\r\n */\r\n close() {\r\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\r\n this.opened = false;\r\n\r\n /** remove active item pointer */\r\n this.activeButtonIndex = -1;\r\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\r\n\r\n if (activeButton) {\r\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n }\r\n\r\n /**\r\n * Close Toolbox\r\n */\r\n toggle() {\r\n if (!this.opened) {\r\n this.open();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n /**\r\n * Leaf\r\n * flip through the toolbox items\r\n * @param {String} direction - leaf direction, right is default\r\n */\r\n leaf(direction = 'right') {\r\n const childNodes = this.nodes.toolbox.childNodes;\r\n\r\n /**\r\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\r\n */\r\n if (this.activeButtonIndex === -1) {\r\n /**\r\n * Normalize \"previous\" Tool index depending on direction.\r\n * We need to do this to highlight \"first\" Tool correctly\r\n *\r\n * Order of Tools: [0] [1] ... [n - 1]\r\n * [0 = n] because of: n % n = 0 % n\r\n *\r\n * Direction 'right': for [0] the [n - 1] is a previous index\r\n * [n - 1] -> [0]\r\n *\r\n * Direction 'left': for [n - 1] the [0] is a previous index\r\n * [n - 1] <- [0]\r\n *\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = direction === 'right' ? -1 : 0;\r\n } else {\r\n /**\r\n * If we have chosen Tool then remove highlighting\r\n */\r\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n\r\n /**\r\n * Count index for next Tool\r\n */\r\n if (direction === 'right') {\r\n /**\r\n * If we go right then choose next (+1) Tool\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\r\n } else {\r\n /**\r\n * If we go left then choose previous (-1) Tool\r\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\r\n * @type {number}\r\n */\r\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\r\n }\r\n\r\n /**\r\n * Highlight new chosen Tool\r\n */\r\n childNodes[this.activeButtonIndex].classList.add(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n\r\n /**\r\n * get tool name when it is selected\r\n * In case when nothing selection returns null\r\n *\r\n * @return {String|null}\r\n */\r\n get getActiveTool() {\r\n const childNodes = this.nodes.toolbox.childNodes;\r\n\r\n if (this.activeButtonIndex === -1) {\r\n return null;\r\n }\r\n\r\n return childNodes[this.activeButtonIndex].title;\r\n }\r\n\r\n /**\r\n * Returns True if Toolbox is Empty and nothing to show\r\n * @return {boolean}\r\n */\r\n get isEmpty() {\r\n return this.displayedToolsCount === 0;\r\n }\r\n}\r\n","/**\r\n *\r\n * «Toolbar» is the node that moves up/down over current block\r\n *\r\n * ______________________________________ Toolbar ____________________________________________\r\n * | |\r\n * | ..................... Content .................... ......... Block Actions .......... |\r\n * | . . . . |\r\n * | . . . [Open Settings] . |\r\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\r\n * | . . . [Settings Panel] . |\r\n * | .................................................. .................................. |\r\n * | |\r\n * |___________________________________________________________________________________________|\r\n *\r\n *\r\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\r\n *\r\n * _______________ Toolbox _______________\r\n * | |\r\n * | [Header] [Image] [List] [Quote] ... |\r\n * |_______________________________________|\r\n *\r\n *\r\n * Settings Panel — is an Element with block settings:\r\n *\r\n * ____ Settings Panel ____\r\n * | ...................... |\r\n * | . Tool Settings . |\r\n * | ...................... |\r\n * | . Default Settings . |\r\n * | ...................... |\r\n * |________________________|\r\n *\r\n *\r\n * @class\r\n * @classdesc Toolbar module\r\n *\r\n * @typedef {Toolbar} Toolbar\r\n * @property {Object} nodes\r\n * @property {Element} nodes.wrapper - Toolbar main element\r\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\r\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\r\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\r\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\r\n * @property {Element} nodes.toolbox - Container for tools\r\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\r\n * @property {Element} nodes.settings - Settings Panel\r\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\r\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\r\n */\r\nexport default class Toolbar extends Module {\r\n /**\r\n * @constructor\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n wrapper : null,\r\n content : null,\r\n actions : null,\r\n\r\n // Content Zone\r\n plusButton : null,\r\n\r\n // Actions Zone\r\n blockActionsButtons: null,\r\n settingsToggler : null,\r\n };\r\n }\r\n\r\n /**\r\n * CSS styles\r\n * @return {Object}\r\n * @constructor\r\n */\r\n static get CSS() {\r\n return {\r\n toolbar: 'ce-toolbar',\r\n content: 'ce-toolbar__content',\r\n actions: 'ce-toolbar__actions',\r\n\r\n toolbarOpened: 'ce-toolbar--opened',\r\n\r\n // Content Zone\r\n plusButton: 'ce-toolbar__plus',\r\n plusButtonHidden: 'ce-toolbar__plus--hidden',\r\n\r\n // Actions Zone\r\n blockActionsButtons: 'ce-toolbar__actions-buttons',\r\n settingsToggler: 'ce-toolbar__settings-btn',\r\n };\r\n }\r\n\r\n /**\r\n * Makes toolbar\r\n */\r\n make() {\r\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\r\n\r\n /**\r\n * Make Content Zone and Actions Zone\r\n */\r\n ['content', 'actions'].forEach( el => {\r\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\r\n $.append(this.nodes.wrapper, this.nodes[el]);\r\n });\r\n\r\n\r\n /**\r\n * Fill Content Zone:\r\n * - Plus Button\r\n * - Toolbox\r\n */\r\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\r\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\r\n $.append(this.nodes.content, this.nodes.plusButton);\r\n this.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\r\n\r\n\r\n /**\r\n * Make a Toolbox\r\n */\r\n this.Editor.Toolbox.make();\r\n\r\n /**\r\n * Fill Actions Zone:\r\n * - Settings Toggler\r\n * - Remove Block Button\r\n * - Settings Panel\r\n */\r\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\r\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\r\n const settingsIcon = $.svg('dots', 18, 4);\r\n\r\n $.append(this.nodes.settingsToggler, settingsIcon);\r\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\r\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\r\n\r\n /**\r\n * Make and append Settings Panel\r\n */\r\n this.Editor.BlockSettings.make();\r\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\r\n\r\n /**\r\n * Append toolbar to the Editor\r\n */\r\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\r\n\r\n /**\r\n * Bind events on the Toolbar elements\r\n */\r\n this.bindEvents();\r\n }\r\n\r\n /**\r\n * Move Toolbar to the Current Block\r\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\r\n */\r\n move(forceClose = true) {\r\n if (forceClose) {\r\n /** Close Toolbox when we move toolbar */\r\n this.Editor.Toolbox.close();\r\n this.Editor.BlockSettings.close();\r\n }\r\n\r\n let currentBlock = this.Editor.BlockManager.currentBlock.holder;\r\n\r\n /**\r\n * If no one Block selected as a Current\r\n */\r\n if (!currentBlock) {\r\n return;\r\n }\r\n\r\n /**\r\n * Set Toolbar Min Height as Block's height\r\n * Plus Button and Toolbox positioned at the center of the Toolbar\r\n */\r\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\r\n\r\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\r\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\r\n /**\r\n * Move Toolbar to the Top coordinate of Block\r\n */\r\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\r\n }\r\n\r\n /**\r\n * Open Toolbar with Plus Button\r\n */\r\n open() {\r\n /**\r\n * Wait Block rendering for correct height computing\r\n */\r\n setTimeout(() => {\r\n this.move();\r\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\r\n }, 50);\r\n }\r\n\r\n /**\r\n * returns toolbar opened state\r\n * @return {Boolean}\r\n */\r\n get opened() {\r\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\r\n }\r\n\r\n /**\r\n * Close the Toolbar\r\n */\r\n close() {\r\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\r\n\r\n /** Close components */\r\n this.Editor.Toolbox.close();\r\n this.Editor.BlockSettings.close();\r\n }\r\n\r\n /**\r\n * Plus Button public methods\r\n * @return {{hide: function(): void, show: function(): void}}\r\n */\r\n get plusButton() {\r\n return {\r\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\r\n show: () => {\r\n if (this.Editor.Toolbox.isEmpty) {\r\n return;\r\n }\r\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Handler for Plus Button\r\n * @param {MouseEvent} event\r\n */\r\n plusButtonClicked() {\r\n this.Editor.Toolbox.toggle();\r\n }\r\n\r\n /**\r\n * Bind events on the Toolbar Elements:\r\n * - Block Settings\r\n */\r\n bindEvents() {\r\n /**\r\n * Settings toggler\r\n */\r\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\r\n this.settingsTogglerClicked(event);\r\n });\r\n }\r\n\r\n /**\r\n * Clicks on the Block Settings toggler\r\n */\r\n settingsTogglerClicked() {\r\n if (this.Editor.BlockSettings.opened) {\r\n this.Editor.BlockSettings.close();\r\n } else {\r\n this.Editor.BlockSettings.open();\r\n }\r\n }\r\n}\r\n","const Paragraph = require('../tools/paragraph/dist/bundle');\r\n\r\n/**\r\n * @module Codex Editor Tools Submodule\r\n *\r\n * Creates Instances from Plugins and binds external config to the instances\r\n */\r\n\r\n/**\r\n * Each Tool must contain the following important objects:\r\n *\r\n * @typedef {Object} ToolConfig {@link docs/tools.md}\r\n * @property {String} iconClassname - this a icon in toolbar\r\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\r\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\r\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\r\n * @property render @todo add description\r\n * @property save @todo add description\r\n * @property settings @todo add description\r\n * @property validate - method that validates output data before saving\r\n */\r\n\r\n/**\r\n * @typedef {Function} Tool {@link docs/tools.md}\r\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\r\n * @property {String} iconClassName - CSS class name for the Toolbox button\r\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\r\n * @property render\r\n * @property save\r\n * @property settings\r\n * @property validate\r\n *\r\n * @todo update according to current API\r\n * @todo describe Tool in the {@link docs/tools.md}\r\n */\r\n\r\n/**\r\n * Class properties:\r\n *\r\n * @typedef {Tools} Tools\r\n * @property {Tools[]} toolsAvailable - available Tools\r\n * @property {Tools[]} toolsUnavailable - unavailable Tools\r\n * @property {object} toolsClasses - all classes\r\n * @property {object} toolsSettings - Tools settings\r\n * @property {EditorConfig} config - Editor config\r\n */\r\nexport default class Tools extends Module {\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n /**\r\n * Map {name: Class, ...} where:\r\n * name — block type name in JSON. Got from EditorConfig.tools keys\r\n * @type {Object}\r\n */\r\n this.toolsClasses = {};\r\n\r\n /**\r\n * Tools settings in a map {name: settings, ...}\r\n * @type {Object}\r\n */\r\n this.toolsSettings = {};\r\n\r\n /**\r\n * Available tools list\r\n * {name: Class, ...}\r\n * @type {Object}\r\n */\r\n this.toolsAvailable = {};\r\n\r\n /**\r\n * Tools that rejected a prepare method\r\n * {name: Class, ... }\r\n * @type {Object}\r\n */\r\n this.toolsUnavailable = {};\r\n\r\n /**\r\n * Cache for the prepared inline tools\r\n * @type {null|object}\r\n * @private\r\n */\r\n this._inlineTools = null;\r\n }\r\n\r\n /**\r\n * Returns available Tools\r\n * @return {Tool[]}\r\n */\r\n get available() {\r\n return this.toolsAvailable;\r\n }\r\n\r\n /**\r\n * Returns unavailable Tools\r\n * @return {Tool[]}\r\n */\r\n get unavailable() {\r\n return this.toolsUnavailable;\r\n }\r\n\r\n /**\r\n * Return Tools for the Inline Toolbar\r\n * @return {Object} - object of Inline Tool's classes\r\n */\r\n get inline() {\r\n if (this._inlineTools) {\r\n return this._inlineTools;\r\n }\r\n\r\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\r\n if (!tool[this.apiSettings.IS_INLINE]) {\r\n return false;\r\n }\r\n\r\n /**\r\n * Some Tools validation\r\n */\r\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\r\n const notImplementedMethods = inlineToolRequiredMethods.filter( method => !this.constructInline(tool)[method]);\r\n\r\n if (notImplementedMethods.length) {\r\n _.log(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n /**\r\n * collected inline tools with key of tool name\r\n */\r\n const result = {};\r\n\r\n tools.forEach(([name, tool]) => result[name] = tool);\r\n\r\n /**\r\n * Cache prepared Tools\r\n */\r\n this._inlineTools = result;\r\n\r\n return this._inlineTools;\r\n }\r\n\r\n /**\r\n * Return editor block tools\r\n */\r\n get blockTools() {\r\n // eslint-disable-next-line no-unused-vars\r\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\r\n if (tool[this.apiSettings.IS_INLINE]) {\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n /**\r\n * collected block tools with key of tool name\r\n */\r\n const result = {};\r\n\r\n tools.forEach(([name, tool]) => result[name] = tool);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Constant for available Tools Settings\r\n * @return {object}\r\n */\r\n get apiSettings() {\r\n return {\r\n CONFIG: 'config',\r\n IS_CONTENTLESS: 'contentless',\r\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\r\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\r\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\r\n IS_INLINE: 'isInline',\r\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\r\n IS_PASTE_DISALLOWED: 'disallowPaste',\r\n SHORTCUT: 'shortcut',\r\n TOOLBAR_ICON: 'toolboxIcon',\r\n };\r\n }\r\n\r\n /**\r\n * Creates instances via passed or default configuration\r\n * @return {Promise}\r\n */\r\n prepare() {\r\n this.config.tools.paragraph = {\r\n class: Paragraph,\r\n inlineToolbar: true\r\n };\r\n\r\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\r\n return Promise.reject('Can\\'t start without tools');\r\n }\r\n\r\n /**\r\n * Save Tools settings to a map\r\n */\r\n for(let toolName in this.config.tools) {\r\n /**\r\n * If Tool is an object not a Tool's class then\r\n * save class and settings separately\r\n */\r\n if (typeof this.config.tools[toolName] === 'object') {\r\n /**\r\n * Save Tool's class from 'class' field\r\n * @type {ITool}\r\n */\r\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\r\n\r\n /**\r\n * Save Tool's settings\r\n * @type {IToolSettings}\r\n */\r\n this.toolsSettings[toolName] = this.config.tools[toolName];\r\n\r\n /**\r\n * Remove Tool's class from settings\r\n */\r\n delete this.toolsSettings[toolName].class;\r\n } else {\r\n /**\r\n * Save Tool's class\r\n * @type {ITool}\r\n */\r\n this.toolsClasses[toolName] = this.config.tools[toolName];\r\n\r\n /**\r\n * Set empty settings for Block by default\r\n * @type {{}}\r\n */\r\n this.toolsSettings[toolName] = {};\r\n }\r\n }\r\n\r\n /**\r\n * getting classes that has prepare method\r\n */\r\n let sequenceData = this.getListOfPrepareFunctions();\r\n\r\n /**\r\n * if sequence data contains nothing then resolve current chain and run other module prepare\r\n */\r\n if (sequenceData.length === 0) {\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * to see how it works {@link Util#sequence}\r\n */\r\n return _.sequence(sequenceData, (data) => {\r\n this.success(data);\r\n }, (data) => {\r\n this.fallback(data);\r\n });\r\n }\r\n\r\n /**\r\n * Binds prepare function of plugins with user or default config\r\n * @return {Array} list of functions that needs to be fired sequentially\r\n */\r\n getListOfPrepareFunctions() {\r\n let toolPreparationList = [];\r\n\r\n for(let toolName in this.toolsClasses) {\r\n let toolClass = this.toolsClasses[toolName];\r\n\r\n if (typeof toolClass.prepare === 'function') {\r\n toolPreparationList.push({\r\n function : toolClass.prepare,\r\n data : {\r\n toolName,\r\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG]\r\n }\r\n });\r\n } else {\r\n /**\r\n * If Tool hasn't a prepare method, mark it as available\r\n */\r\n this.toolsAvailable[toolName] = toolClass;\r\n }\r\n }\r\n\r\n return toolPreparationList;\r\n }\r\n\r\n /**\r\n * @param {ChainData.data} data - append tool to available list\r\n */\r\n success(data) {\r\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\r\n }\r\n\r\n /**\r\n * @param {ChainData.data} data - append tool to unavailable list\r\n */\r\n fallback(data) {\r\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\r\n }\r\n\r\n /**\r\n * Return Tool`s instance\r\n *\r\n * @param {String} tool — tool name\r\n * @param {IBlockToolData} data — initial data\r\n * @return {IBlockTool}\r\n */\r\n construct(tool, data) {\r\n const plugin = this.toolsClasses[tool];\r\n\r\n /**\r\n * Configuration to be passed to the Tool's constructor\r\n */\r\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\r\n\r\n /**\r\n * @type {{api: IAPI, config: ({}), data: IBlockToolData}}\r\n */\r\n const constructorOptions = {\r\n api: this.Editor.API.methods,\r\n config: config || {},\r\n data: data\r\n };\r\n\r\n return new plugin(constructorOptions);\r\n }\r\n\r\n /**\r\n * Return Inline Tool's instance\r\n *\r\n * @param {IInlineTool} tool\r\n * @return {IInlineTool} — instance\r\n */\r\n constructInline(tool) {\r\n /**\r\n * @type {{api: IAPI}}\r\n */\r\n const constructorOptions = {\r\n api: this.Editor.API.methods\r\n };\r\n\r\n return new tool(constructorOptions);\r\n }\r\n\r\n /**\r\n * Check if passed Tool is an instance of Initial Block Tool\r\n * @param {Tool} tool - Tool to check\r\n * @return {Boolean}\r\n */\r\n isInitial(tool) {\r\n return tool instanceof this.available[this.config.initialBlock];\r\n }\r\n\r\n /**\r\n * Return Tool's config by name\r\n * @param {string} toolName\r\n * @return {IToolSettings}\r\n */\r\n getToolSettings(toolName) {\r\n return this.toolsSettings[toolName];\r\n }\r\n}\r\n","/**\r\n * Module UI\r\n *\r\n * @type {UI}\r\n */\r\n\r\n/**\r\n * Prebuilded sprite of SVG icons\r\n */\r\nimport sprite from '../../../build/sprite.svg';\r\n\r\nimport Selection from '../selection';\r\n\r\n/**\r\n * @class\r\n *\r\n * @classdesc Makes CodeX Editor UI:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * @typedef {UI} UI\r\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\r\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\r\n * @property {Object} nodes -\r\n * @property {Element} nodes.holder - element where we need to append redactor\r\n * @property {Element} nodes.wrapper - \r\n * @property {Element} nodes.redactor - \r\n */\r\nexport default class UI extends Module {\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig} config\r\n */\r\n constructor({config}) {\r\n super({config});\r\n\r\n this.nodes = {\r\n holder: null,\r\n wrapper: null,\r\n redactor: null\r\n };\r\n }\r\n\r\n /**\r\n * Making main interface\r\n */\r\n async prepare() {\r\n await this.make();\r\n\r\n /**\r\n * Append SVG sprite\r\n */\r\n await this.appendSVGSprite();\r\n\r\n /**\r\n * Make toolbar\r\n */\r\n await this.Editor.Toolbar.make();\r\n\r\n /**\r\n * Make the Inline toolbar\r\n */\r\n await this.Editor.InlineToolbar.make();\r\n\r\n /**\r\n * Load and append CSS\r\n */\r\n await this.loadStyles();\r\n\r\n /**\r\n * Bind events for the UI elements\r\n */\r\n await this.bindEvents();\r\n }\r\n\r\n /**\r\n * CodeX Editor UI CSS class names\r\n * @return {{editorWrapper: string, editorZone: string, block: string}}\r\n */\r\n get CSS() {\r\n return {\r\n editorWrapper : 'codex-editor',\r\n editorZone : 'codex-editor__redactor',\r\n };\r\n }\r\n\r\n /**\r\n * Makes CodeX Editor interface\r\n * @return {Promise}\r\n */\r\n async make() {\r\n /**\r\n * Element where we need to append CodeX Editor\r\n * @type {Element}\r\n */\r\n this.nodes.holder = document.getElementById(this.config.holderId);\r\n\r\n if (!this.nodes.holder) {\r\n throw Error(\"Holder wasn't found by ID: #\" + this.config.holderId);\r\n }\r\n\r\n /**\r\n * Create and save main UI elements\r\n */\r\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\r\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\r\n\r\n this.nodes.wrapper.appendChild(this.nodes.redactor);\r\n this.nodes.holder.appendChild(this.nodes.wrapper);\r\n }\r\n\r\n /**\r\n * Appends CSS\r\n */\r\n loadStyles() {\r\n /**\r\n * Load CSS\r\n */\r\n let styles = require('../../styles/main.css');\r\n\r\n /**\r\n * Make tag\r\n */\r\n let tag = $.make('style', null, {\r\n textContent: styles.toString()\r\n });\r\n\r\n /**\r\n * Append styles at the top of HEAD tag\r\n */\r\n $.prepend(document.head, tag);\r\n }\r\n\r\n /**\r\n * Bind events on the CodeX Editor interface\r\n */\r\n bindEvents() {\r\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\r\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\r\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\r\n }\r\n\r\n /**\r\n * All keydowns on document\r\n * @param {Event} event\r\n */\r\n documentKeydown(event) {\r\n switch (event.keyCode) {\r\n case _.keyCodes.ENTER:\r\n this.enterPressed(event);\r\n break;\r\n default:\r\n this.defaultBehaviour(event);\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Ignore all other document's keydown events\r\n * @param {KeyboardEvent} event\r\n */\r\n defaultBehaviour(event) {\r\n const keyDownOnEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\r\n\r\n /**\r\n * Ignore keydowns on document\r\n * clear pointer and close toolbar\r\n */\r\n if (!keyDownOnEditor) {\r\n /**\r\n * Remove all highlights and remove caret\r\n */\r\n this.Editor.BlockManager.dropPointer();\r\n\r\n /**\r\n * Close Toolbar\r\n */\r\n this.Editor.Toolbar.close();\r\n }\r\n }\r\n\r\n /**\r\n * Enter pressed on document\r\n * @param event\r\n */\r\n enterPressed(event) {\r\n let hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\r\n\r\n /**\r\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\r\n * In our case it is document.body\r\n *\r\n * So, BlockManager points some Block and Enter press is on Body\r\n * We can create a new block\r\n */\r\n if (hasPointerToBlock && event.target.tagName === 'BODY') {\r\n /**\r\n * Insert initial typed Block\r\n */\r\n const newBlock = this.Editor.BlockManager.insert();\r\n\r\n this.Editor.Caret.setToBlock(newBlock);\r\n\r\n /**\r\n * And highlight\r\n */\r\n this.Editor.BlockManager.highlightCurrentNode();\r\n\r\n /**\r\n * Move toolbar and show plus button because new Block is empty\r\n */\r\n this.Editor.Toolbar.move();\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n }\r\n\r\n /**\r\n * All clicks on document\r\n * @param {MouseEvent} event - Click\r\n */\r\n documentClicked(event) {\r\n /**\r\n * Close Inline Toolbar when nothing selected\r\n * Do not fire check on clicks at the Inline Toolbar buttons\r\n */\r\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\r\n const clickedInsideofEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\r\n\r\n /** Clear highlightings and pointer on BlockManager */\r\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\r\n this.Editor.BlockManager.dropPointer();\r\n this.Editor.Toolbar.close();\r\n }\r\n\r\n if (!clickedOnInlineToolbarButton) {\r\n this.Editor.InlineToolbar.handleShowingEvent(event);\r\n }\r\n\r\n if (Selection.isAtEditor) {\r\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\r\n }\r\n }\r\n\r\n /**\r\n * All clicks on the redactor zone\r\n *\r\n * @param {MouseEvent} event\r\n *\r\n * @description\r\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\r\n * it uses for the following:\r\n * - add CSS modifier for the selected Block\r\n * - on Enter press, we make a new Block under that\r\n *\r\n * 2. Move and show the Toolbar\r\n *\r\n * 3. Set a Caret\r\n *\r\n * 4. By clicks on the Editor's bottom zone:\r\n * - if last Block is empty, set a Caret to this\r\n * - otherwise, add a new empty Block and set a Caret to that\r\n *\r\n * 5. Hide the Inline Toolbar\r\n *\r\n * @see selectClickedBlock\r\n *\r\n */\r\n redactorClicked(event) {\r\n const clickedNode = event.target;\r\n\r\n /**\r\n * Select clicked Block as Current\r\n */\r\n try {\r\n /**\r\n * Renew Current Block\r\n */\r\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\r\n\r\n /**\r\n * Highlight Current Node\r\n */\r\n this.Editor.BlockManager.highlightCurrentNode();\r\n } catch (e) {\r\n /**\r\n * If clicked outside first-level Blocks, set Caret to the last empty Block\r\n */\r\n this.Editor.Caret.setToTheLastBlock();\r\n }\r\n\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n\r\n /**\r\n * Move and open toolbar\r\n */\r\n this.Editor.Toolbar.open();\r\n\r\n /**\r\n * Hide the Plus Button\r\n */\r\n this.Editor.Toolbar.plusButton.hide();\r\n\r\n if (!this.Editor.BlockManager.currentBlock) {\r\n this.Editor.BlockManager.insert();\r\n }\r\n\r\n /**\r\n * Show the Plus Button if:\r\n * - Block is an initial-block (Text)\r\n * - Block is empty\r\n */\r\n let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\r\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\r\n\r\n if (isInitialBlock && isEmptyBlock) {\r\n this.Editor.Toolbar.plusButton.show();\r\n }\r\n }\r\n\r\n /**\r\n * Append prebuilded sprite with SVG icons\r\n */\r\n appendSVGSprite() {\r\n let spriteHolder = $.make('div');\r\n\r\n spriteHolder.hidden = true;\r\n spriteHolder.style.display = 'none';\r\n spriteHolder.innerHTML = sprite;\r\n\r\n $.append(this.nodes.wrapper, spriteHolder);\r\n }\r\n\r\n /**\r\n * Clean editor`s UI\r\n */\r\n destroy() {\r\n this.nodes.holder.innerHTML = '';\r\n }\r\n}\r\n","'use strict';\r\n\r\n/**\r\n * Extend Element interface to include prefixed and experimental properties\r\n */\r\ninterface Element {\r\n matchesSelector: (selector: string) => boolean;\r\n mozMatchesSelector: (selector: string) => boolean;\r\n oMatchesSelector: (selector: string) => boolean;\r\n\r\n prepend: (nodes: Node|Node[]|any) => void;\r\n}\r\n\r\n/**\r\n * The Element.matches() method returns true if the element\r\n * would be selected by the specified selector string;\r\n * otherwise, returns false.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\r\n */\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function(s) {\r\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\r\n let i = matches.length;\r\n\r\n while (--i >= 0 && matches.item(i) !== this) {\r\n }\r\n\r\n return i > -1;\r\n };\r\n}\r\n\r\n/**\r\n * The Element.closest() method returns the closest ancestor\r\n * of the current element (or the current element itself) which\r\n * matches the selectors given in parameter.\r\n * If there isn't such an ancestor, it returns null.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\r\n */\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n let el = this;\r\n\r\n if (!document.documentElement.contains(el)) {\r\n return null;\r\n }\r\n\r\n do {\r\n if (el.matches(s)) {\r\n return el;\r\n }\r\n\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null);\r\n\r\n return null;\r\n };\r\n}\r\n\r\n/**\r\n * The ParentNode.prepend method inserts a set of Node objects\r\n * or DOMString objects before the first child of the ParentNode.\r\n * DOMString objects are inserted as equivalent Text nodes.\r\n *\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\r\n */\r\nif (!Element.prototype.prepend) {\r\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\r\n const docFrag = document.createDocumentFragment();\r\n\r\n if (!Array.isArray(nodes)) {\r\n nodes = [ nodes ];\r\n }\r\n\r\n nodes.forEach((node: Node|any) => {\r\n const isNode = node instanceof Node;\r\n\r\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\r\n });\r\n\r\n this.insertBefore(docFrag, this.firstChild);\r\n };\r\n}\r\n","/**\r\n * TextRange interface fot IE9-\r\n */\r\nimport _ from './utils';\r\n\r\ninterface TextRange {\r\n boundingTop: number;\r\n boundingLeft: number;\r\n boundingBottom: number;\r\n boundingRight: number;\r\n boundingHeight: number;\r\n boundingWidth: number;\r\n}\r\n\r\n/**\r\n * Interface for object returned by document.selection in IE9-\r\n */\r\ninterface MSSelection {\r\n createRange: () => TextRange;\r\n type: string;\r\n}\r\n\r\n/**\r\n * Extends Document interface for IE9-\r\n */\r\ninterface Document {\r\n selection?: MSSelection;\r\n}\r\n\r\n/**\r\n * Working with selection\r\n * @typedef {Selection} Selection\r\n */\r\nexport default class SelectionUtils {\r\n\r\n /**\r\n * Editor styles\r\n * @return {{editorWrapper: string, editorZone: string}}\r\n * @constructor\r\n */\r\n static get CSS(): {editorWrapper: string, editorZone: string} {\r\n return {\r\n editorWrapper : 'codex-editor',\r\n editorZone : 'codex-editor__redactor',\r\n };\r\n }\r\n\r\n /**\r\n * Returns selected anchor\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\r\n * @return {Node|null}\r\n */\r\n static get anchorNode(): Node|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.anchorNode : null;\r\n }\r\n\r\n /**\r\n * Returns selection offset according to the anchor node\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\r\n * @return {Number|null}\r\n */\r\n static get anchorOffset(): number|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.anchorOffset : null;\r\n }\r\n\r\n /**\r\n * Is current selection range collapsed\r\n * @return {boolean|null}\r\n */\r\n static get isCollapsed(): boolean|null {\r\n const selection = window.getSelection();\r\n\r\n return selection ? selection.isCollapsed : null;\r\n }\r\n\r\n /**\r\n * Check current selection if it is at Editor's zone\r\n * @return {boolean}\r\n */\r\n static get isAtEditor(): boolean {\r\n const selection = SelectionUtils.get();\r\n\r\n /**\r\n * Something selected on document\r\n */\r\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\r\n\r\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\r\n selectedNode = selectedNode.parentNode as HTMLElement;\r\n }\r\n\r\n let editorZone = null;\r\n if (selectedNode) {\r\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\r\n }\r\n\r\n /**\r\n * SelectionUtils is not out of Editor because Editor's wrapper was found\r\n */\r\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\r\n }\r\n\r\n /**\r\n * Return first range\r\n * @return {Range|null}\r\n */\r\n static get range(): Range {\r\n const selection = window.getSelection();\r\n\r\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\r\n }\r\n\r\n /**\r\n * Calculates position and size of selected text\r\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\r\n */\r\n static get rect(): DOMRect|ClientRect {\r\n let sel: Selection|MSSelection = (document as Document).selection,\r\n range: TextRange|Range;\r\n\r\n let rect = {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0,\r\n } as DOMRect;\r\n\r\n if (sel && sel.type !== 'Control') {\r\n sel = sel as MSSelection;\r\n range = sel.createRange() as TextRange;\r\n rect.x = range.boundingLeft;\r\n rect.y = range.boundingTop;\r\n rect.width = range.boundingWidth;\r\n rect.height = range.boundingHeight;\r\n\r\n return rect;\r\n }\r\n\r\n if (!window.getSelection) {\r\n _.log('Method window.getSelection is not supported', 'warn');\r\n return rect;\r\n }\r\n\r\n sel = window.getSelection();\r\n\r\n if (!sel.rangeCount) {\r\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\r\n return rect;\r\n }\r\n\r\n range = sel.getRangeAt(0).cloneRange() as Range;\r\n\r\n if (range.getBoundingClientRect) {\r\n rect = range.getBoundingClientRect() as DOMRect;\r\n }\r\n // Fall back to inserting a temporary element\r\n if (rect.x === 0 && rect.y === 0) {\r\n const span = document.createElement('span');\r\n\r\n if (span.getBoundingClientRect) {\r\n // Ensure span has dimensions and position by\r\n // adding a zero-width space character\r\n span.appendChild( document.createTextNode('\\u200b') );\r\n range.insertNode(span);\r\n rect = span.getBoundingClientRect() as DOMRect;\r\n\r\n const spanParent = span.parentNode;\r\n\r\n spanParent.removeChild(span);\r\n\r\n // Glue any broken text nodes back together\r\n spanParent.normalize();\r\n }\r\n }\r\n\r\n return rect;\r\n }\r\n\r\n /**\r\n * Returns selected text as String\r\n * @returns {string}\r\n */\r\n static get text(): string {\r\n return window.getSelection ? window.getSelection().toString() : '';\r\n }\r\n\r\n /**\r\n * Returns window SelectionUtils\r\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\r\n * @return {Selection}\r\n */\r\n public static get(): Selection {\r\n return window.getSelection();\r\n }\r\n\r\n public instance: Selection = null;\r\n public selection: Selection = null;\r\n\r\n /**\r\n * This property can store SelectionUtils's range for restoring later\r\n * @type {Range|null}\r\n */\r\n public savedSelectionRange: Range = null;\r\n\r\n /**\r\n * Save SelectionUtils's range\r\n */\r\n public save(): void {\r\n this.savedSelectionRange = SelectionUtils.range;\r\n }\r\n\r\n /**\r\n * Restore saved SelectionUtils's range\r\n */\r\n public restore(): void {\r\n if (!this.savedSelectionRange) {\r\n return;\r\n }\r\n\r\n const sel = window.getSelection();\r\n\r\n sel.removeAllRanges();\r\n sel.addRange(this.savedSelectionRange);\r\n }\r\n\r\n /**\r\n * Clears saved selection\r\n */\r\n public clearSaved(): void {\r\n this.savedSelectionRange = null;\r\n }\r\n\r\n /**\r\n * Looks ahead to find passed tag from current selection\r\n *\r\n * @param {String} tagName - tag to found\r\n * @param {String} [className] - tag's class name\r\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\r\n * @return {HTMLElement|null}\r\n */\r\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\r\n const selection = window.getSelection();\r\n let parentTag = null;\r\n\r\n /**\r\n * If selection is missing or no anchorNode or focusNode were found then return null\r\n */\r\n if (!selection || !selection.anchorNode || !selection.focusNode) {\r\n return null;\r\n }\r\n\r\n /**\r\n * Define Nodes for start and end of selection\r\n */\r\n const boundNodes = [\r\n /** the Node in which the selection begins */\r\n selection.anchorNode as HTMLElement,\r\n /** the Node in which the selection ends */\r\n selection.focusNode as HTMLElement,\r\n ];\r\n\r\n /**\r\n * For each selection parent Nodes we try to find target tag [with target class name]\r\n * It would be saved in parentTag variable\r\n */\r\n boundNodes.forEach((parent) => {\r\n /** Reset tags limit */\r\n let searchDepthIterable = searchDepth;\r\n\r\n while (searchDepthIterable > 0 && parent.parentNode) {\r\n /**\r\n * Check tag's name\r\n */\r\n if (parent.tagName === tagName) {\r\n /**\r\n * Save the result\r\n */\r\n parentTag = parent;\r\n\r\n /**\r\n * Optional additional check for class-name mismatching\r\n */\r\n if (className && parent.classList && !parent.classList.contains(className)) {\r\n parentTag = null;\r\n }\r\n\r\n /**\r\n * If we have found required tag with class then go out from the cycle\r\n */\r\n if (parentTag) {\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Target tag was not found. Go up to the parent and check it\r\n */\r\n parent = parent.parentNode as HTMLElement;\r\n searchDepthIterable--;\r\n }\r\n });\r\n\r\n /**\r\n * Return found tag or null\r\n */\r\n return parentTag;\r\n }\r\n\r\n /**\r\n * Expands selection range to the passed parent node\r\n *\r\n * @param {HTMLElement} element\r\n */\r\n public expandToTag(element: HTMLElement): void {\r\n const selection = window.getSelection();\r\n\r\n selection.removeAllRanges();\r\n const range = document.createRange();\r\n\r\n range.selectNodeContents(element);\r\n selection.addRange(range);\r\n }\r\n}\r\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=c(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 f(n,e),function(t){for(var o=[],i=0;i any;\r\n}\r\n\r\n/**\r\n * Codex Editor Util\r\n */\r\nexport default class Util {\r\n /**\r\n * Custom logger\r\n *\r\n * @param {string} msg - message\r\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\r\n * @param {*} args - argument to log with a message\r\n */\r\n public static log(msg: string, type: string = 'log', args?: any): void {\r\n\r\n if (!args) {\r\n if (['time', 'timeEnd'].includes(type)) {\r\n msg = `[codex-editor]: ${msg}`;\r\n } else {\r\n args = msg || 'undefined';\r\n msg = '[codex-editor]: %o';\r\n }\r\n } else {\r\n msg = '[codex-editor]: ' + msg;\r\n }\r\n\r\n try {\r\n if ( 'console' in window && window.console[ type ] ) {\r\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\r\n }\r\n } catch (e) {\r\n // do nothing\r\n }\r\n }\r\n\r\n /**\r\n * Returns basic keycodes as constants\r\n * @return {{}}\r\n */\r\n static get keyCodes(): object {\r\n return {\r\n BACKSPACE: 8,\r\n TAB: 9,\r\n ENTER: 13,\r\n SHIFT: 16,\r\n CTRL: 17,\r\n ALT: 18,\r\n ESC: 27,\r\n SPACE: 32,\r\n LEFT: 37,\r\n UP: 38,\r\n DOWN: 40,\r\n RIGHT: 39,\r\n DELETE: 46,\r\n META: 91,\r\n };\r\n }\r\n\r\n /**\r\n * Fires a promise sequence asyncronically\r\n *\r\n * @param {ChainData[]} chains - list or ChainData's\r\n * @param {Function} success - success callback\r\n * @param {Function} fallback - callback that fires in case of errors\r\n *\r\n * @return {Promise}\r\n */\r\n public static async sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise {\r\n /**\r\n * Decorator\r\n *\r\n * @param {ChainData} chainData\r\n *\r\n * @param {Function} successCallback\r\n * @param {Function} fallbackCallback\r\n *\r\n * @return {Promise}\r\n */\r\n async function waitNextBlock(\r\n chainData: ChainData,\r\n successCallback: (data: any) => void,\r\n fallbackCallback: (data: any) => void,\r\n ): Promise {\r\n try {\r\n await chainData.function(chainData.data);\r\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\r\n } catch (e) {\r\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\r\n }\r\n }\r\n\r\n /**\r\n * pluck each element from queue\r\n * First, send resolved Promise as previous value\r\n * Each plugins \"prepare\" method returns a Promise, that's why\r\n * reduce current element will not be able to continue while can't get\r\n * a resolved Promise\r\n */\r\n return await chains.reduce(async (previousValue, currentValue) => {\r\n await previousValue;\r\n return waitNextBlock(currentValue, success, fallback);\r\n }, Promise.resolve());\r\n }\r\n\r\n /**\r\n * Make array from array-like collection\r\n *\r\n * @param {ArrayLike} collection\r\n *\r\n * @return {Array}\r\n */\r\n public static array(collection: ArrayLike): any[] {\r\n return Array.prototype.slice.call(collection);\r\n }\r\n\r\n /**\r\n * Check if passed variable is a function\r\n * @param {*} fn\r\n * @return {boolean}\r\n */\r\n public static isFunction(fn: any): boolean {\r\n return typeof fn === 'function';\r\n }\r\n\r\n /**\r\n * Check if passed function is a class\r\n * @param {function} fn\r\n * @return {boolean}\r\n */\r\n public static isClass(fn: any): boolean {\r\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\r\n }\r\n\r\n /**\r\n * Checks if object is empty\r\n *\r\n * @param {Object} object\r\n * @return {boolean}\r\n */\r\n public static isEmpty(object: object): boolean {\r\n return Object.keys(object).length === 0 && object.constructor === Object;\r\n }\r\n\r\n /**\r\n * Check if passed object is a Promise\r\n * @param {*} object - object to check\r\n * @return {Boolean}\r\n */\r\n public static isPromise(object: any): boolean {\r\n return Promise.resolve(object) === object;\r\n }\r\n\r\n /**\r\n * Check if passed element is contenteditable\r\n * @param {HTMLElement} element\r\n * @return {boolean}\r\n */\r\n public static isContentEditable(element: HTMLElement): boolean {\r\n return element.contentEditable === 'true';\r\n }\r\n\r\n /**\r\n * Delays method execution\r\n *\r\n * @param {Function} method\r\n * @param {Number} timeout\r\n */\r\n public static delay(method: (...args: any[]) => any, timeout: number) {\r\n return function() {\r\n const context = this,\r\n args = arguments;\r\n\r\n window.setTimeout(() => method.apply(context, args), timeout);\r\n };\r\n }\r\n\r\n /**\r\n * Get file extension\r\n *\r\n * @param {File} file\r\n * @return string\r\n */\r\n public static getFileExtension(file: File): string {\r\n return file.name.split('.').pop();\r\n }\r\n\r\n /**\r\n * Check if string is MIME type\r\n *\r\n * @param {string} type\r\n * @return boolean\r\n */\r\n public static isValidMimeType(type: string): boolean {\r\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\r\n }\r\n\r\n /**\r\n * Debouncing method\r\n * Call method after passed time\r\n *\r\n * Note that this method returns Function and declared variable need to be called\r\n *\r\n * @param {Function} func - function that we're throttling\r\n * @param {Number} wait - time in milliseconds\r\n * @param {Boolean} immediate - call now\r\n * @return {Function}\r\n */\r\n public static debounce(func: () => void, wait: number , immediate: boolean): () => void {\r\n let timeout;\r\n\r\n return () => {\r\n const context = this,\r\n args = arguments;\r\n\r\n const later = () => {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n window.clearTimeout(timeout);\r\n timeout = window.setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n }\r\n}\r\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 {\\r\\n /**\\r\\n * Selection color\\r\\n */\\r\\n --selectionColor: rgba(61,166,239,0.63);\\r\\n\\r\\n /**\\r\\n * Toolbar buttons\\r\\n */\\r\\n --bg-light: #eff2f5;\\r\\n\\r\\n /**\\r\\n * All gray texts: placeholders, settings\\r\\n */\\r\\n --grayText: #707684;\\r\\n\\r\\n /**\\r\\n * Blue icons\\r\\n */\\r\\n --color-active-icon: #388AE5;\\r\\n\\r\\n /**\\r\\n * Gray border, loaders\\r\\n */\\r\\n --color-gray-border: #E8E8EB;\\r\\n\\r\\n /**\\r\\n * Block content width\\r\\n */\\r\\n --content-width: 650px;\\r\\n\\r\\n /**\\r\\n * Toolbar buttons height and width\\r\\n */\\r\\n --toolbar-buttons-size: 34px;\\r\\n\\r\\n /**\\r\\n * Toolbar Plus Button and Toolbox buttons height and width\\r\\n */\\r\\n --toolbox-buttons-size: 24px;\\r\\n\\r\\n /**\\r\\n * Confirm deletion bg\\r\\n */\\r\\n --color-confirm: #E24A4A;\\r\\n}\\r\\n/**\\r\\n* Editor wrapper\\r\\n*/\\r\\n.codex-editor {\\r\\n position: relative;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n.codex-editor .hide {\\r\\n display: none;\\r\\n }\\r\\n.codex-editor__redactor {\\r\\n padding-bottom: 300px;\\r\\n }\\r\\n.codex-editor svg {\\r\\n fill: currentColor;\\r\\n vertical-align: middle;\\r\\n max-height: 100%;\\r\\n }\\r\\n/**\\r\\n * Set color for native selection\\r\\n */\\r\\n::-moz-selection{\\r\\n background-color: rgba(61,166,239,0.63);\\r\\n background-color: var(--selectionColor);\\r\\n}\\r\\n::selection{\\r\\n background-color: rgba(61,166,239,0.63);\\r\\n background-color: var(--selectionColor);\\r\\n}\\r\\n/**\\r\\n * Add placeholder to content editable elements with data attribute\\r\\n * data-placeholder=\\\"Hello world!\\\"\\r\\n */\\r\\n[contentEditable=true][data-placeholder]:empty::before{\\r\\n content: attr(data-placeholder);\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n font-weight: normal;\\r\\n}\\r\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\r\\n opacity: 0.3;\\r\\n}\\r\\n.ce-toolbar {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n right: 0;\\r\\n top: 0;\\r\\n /*opacity: 0;*/\\r\\n /*visibility: hidden;*/\\r\\n -webkit-transition: opacity 100ms ease;\\r\\n transition: opacity 100ms ease;\\r\\n will-change: opacity, transform;\\r\\n display: none;\\r\\n}\\r\\n.ce-toolbar--opened {\\r\\n display: block;\\r\\n /*opacity: 1;*/\\r\\n /*visibility: visible;*/\\r\\n }\\r\\n.ce-toolbar__content {\\r\\n max-width: 650px;\\r\\n max-width: var(--content-width);\\r\\n margin: 0 auto;\\r\\n position: relative;\\r\\n }\\r\\n.ce-toolbar__plus {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n width: 24px;\\r\\n width: var(--toolbox-buttons-size);\\r\\n height: 24px;\\r\\n height: var(--toolbox-buttons-size);\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center\\r\\n }\\r\\n.ce-toolbar__plus:not(:last-of-type){\\r\\n margin-right: 10px;\\r\\n }\\r\\n.ce-toolbar__plus {\\r\\n\\r\\n position: absolute;\\r\\n left: calc(calc(24px + 10px) * -1);\\r\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\r\\n }\\r\\n.ce-toolbar__plus:hover,\\r\\n .ce-toolbar__plus--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-toolbar__plus--active{\\r\\n -webkit-animation: bounceIn 0.75s 1;\\r\\n animation: bounceIn 0.75s 1;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n }\\r\\n.ce-toolbar__plus--hidden {\\r\\n display: none;\\r\\n }\\r\\n.ce-toolbar__plus,\\r\\n .ce-toolbar .ce-toolbox {\\r\\n top: 50%;\\r\\n -webkit-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n }\\r\\n/**\\r\\n * Block actions Zone\\r\\n * -------------------------\\r\\n */\\r\\n.ce-toolbar__actions {\\r\\n position: absolute;\\r\\n right: 0;\\r\\n top: 10px;\\r\\n padding-right: 16px;\\r\\n }\\r\\n.ce-toolbar__actions-buttons {\\r\\n text-align: right;\\r\\n }\\r\\n.ce-toolbar__settings-btn {\\r\\n display: inline-block;\\r\\n width: 24px;\\r\\n height: 24px;\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n }\\r\\n.ce-toolbox {\\r\\n position: absolute;\\r\\n visibility: hidden;\\r\\n -webkit-transition: opacity 100ms ease;\\r\\n transition: opacity 100ms ease;\\r\\n will-change: opacity;\\r\\n display: -webkit-box;\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -webkit-box-orient: horizontal;\\r\\n -webkit-box-direction: normal;\\r\\n -ms-flex-direction: row;\\r\\n flex-direction: row;\\r\\n}\\r\\n.ce-toolbox--opened {\\r\\n opacity: 1;\\r\\n visibility: visible;\\r\\n }\\r\\n.ce-toolbox__button {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n cursor: pointer;\\r\\n width: 24px;\\r\\n width: var(--toolbox-buttons-size);\\r\\n height: 24px;\\r\\n height: var(--toolbox-buttons-size);\\r\\n display: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\r\\n -webkit-box-pack: center;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n -webkit-box-align: center;\\r\\n -ms-flex-align: center;\\r\\n align-items: center;\\r\\n }\\r\\n.ce-toolbox__button:not(:last-of-type){\\r\\n margin-right: 10px;\\r\\n }\\r\\n.ce-toolbox__button:hover,\\r\\n .ce-toolbox__button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-toolbox__button--active{\\r\\n -webkit-animation: bounceIn 0.75s 1;\\r\\n animation: bounceIn 0.75s 1;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n }\\r\\n.ce-inline-toolbar {\\r\\n position: absolute;\\r\\n background-color: #FFFFFF;\\r\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n border-radius: 4px;\\r\\n z-index: 2\\r\\n}\\r\\n.ce-inline-toolbar::before {\\r\\n content: '';\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n position: absolute;\\r\\n top: -7px;\\r\\n left: 50%;\\r\\n margin-left: -7px;\\r\\n -webkit-transform: rotate(-45deg);\\r\\n transform: rotate(-45deg);\\r\\n background-color: #fff;\\r\\n z-index: -1;\\r\\n }\\r\\n.ce-inline-toolbar {\\r\\n padding: 6px;\\r\\n -webkit-transform: translateX(-50%);\\r\\n transform: translateX(-50%);\\r\\n display: none;\\r\\n -webkit-box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\r\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\r\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\r\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\r\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\r\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\r\\n}\\r\\n.ce-inline-toolbar--showed {\\r\\n display: block;\\r\\n }\\r\\n.ce-inline-toolbar [hidden] {\\r\\n display: none !important;\\r\\n }\\r\\n.ce-inline-tool {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n}\\r\\n.ce-inline-tool:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.ce-inline-tool:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.ce-inline-tool {\\r\\n line-height: normal;\\r\\n}\\r\\n.ce-inline-tool--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-inline-tool--last {\\r\\n margin-right: 0 !important;\\r\\n }\\r\\n.ce-inline-tool--link .icon {\\r\\n margin-top: -2px;\\r\\n }\\r\\n.ce-inline-tool--link .icon--unlink {\\r\\n display: none;\\r\\n }\\r\\n.ce-inline-tool--unlink .icon--link {\\r\\n display: none;\\r\\n }\\r\\n.ce-inline-tool--unlink .icon--unlink {\\r\\n display: inline-block;\\r\\n }\\r\\n.ce-inline-tool-input {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n outline: none;\\r\\n border: 0;\\r\\n border-radius: 3px;\\r\\n margin: 6px 0 0;\\r\\n font-size: 13px;\\r\\n padding: 8px;\\r\\n width: 100%;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n display: none\\r\\n }\\r\\n.ce-inline-tool-input::-webkit-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input:-ms-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input::-ms-input-placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input::placeholder {\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n }\\r\\n.ce-inline-tool-input--showed {\\r\\n display: block;\\r\\n }\\r\\n.ce-settings {\\r\\n position: absolute;\\r\\n background-color: #FFFFFF;\\r\\n -webkit-box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\r\\n border-radius: 4px;\\r\\n z-index: 2\\r\\n}\\r\\n.ce-settings::before {\\r\\n content: '';\\r\\n width: 15px;\\r\\n height: 15px;\\r\\n position: absolute;\\r\\n top: -7px;\\r\\n left: 50%;\\r\\n margin-left: -7px;\\r\\n -webkit-transform: rotate(-45deg);\\r\\n transform: rotate(-45deg);\\r\\n background-color: #fff;\\r\\n z-index: -1;\\r\\n }\\r\\n.ce-settings {\\r\\n right: 5px;\\r\\n top: 35px;\\r\\n min-width: 124px\\r\\n}\\r\\n.ce-settings::before{\\r\\n left: auto;\\r\\n right: 12px;\\r\\n }\\r\\n.ce-settings {\\r\\n\\r\\n display: none;\\r\\n}\\r\\n.ce-settings--opened {\\r\\n display: block;\\r\\n }\\r\\n.ce-settings__plugin-zone:not(:empty){\\r\\n padding: 6px 6px 0;\\r\\n }\\r\\n.ce-settings__default-zone:not(:empty){\\r\\n padding: 6px;\\r\\n }\\r\\n.ce-settings__button {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n }\\r\\n.ce-settings__button:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.ce-settings__button:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.ce-settings__button {\\r\\n line-height: 32px;\\r\\n }\\r\\n.ce-settings__button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-settings__button--disabled {\\r\\n cursor: not-allowed !important;\\r\\n opacity: .3;\\r\\n }\\r\\n.ce-settings__button--selected {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.ce-settings__button--delete {\\r\\n -webkit-transition: background-color 300ms ease;\\r\\n transition: background-color 300ms ease;\\r\\n will-change: background-color;\\r\\n }\\r\\n.ce-settings__button--delete .icon {\\r\\n -webkit-transition: -webkit-transform 200ms ease-out;\\r\\n transition: -webkit-transform 200ms ease-out;\\r\\n transition: transform 200ms ease-out;\\r\\n transition: transform 200ms ease-out, -webkit-transform 200ms ease-out;\\r\\n will-change: transform;\\r\\n }\\r\\n.ce-settings__button--confirm {\\r\\n background-color: #E24A4A;\\r\\n background-color: var(--color-confirm);\\r\\n color: #fff\\r\\n }\\r\\n.ce-settings__button--confirm:hover {\\r\\n background-color: rgb(213, 74, 74) !important;\\r\\n background-color: rgb(213, 74, 74) !important;\\r\\n }\\r\\n.ce-settings__button--confirm .icon {\\r\\n -webkit-transform: rotate(90deg);\\r\\n transform: rotate(90deg);\\r\\n }\\r\\n.ce-block:first-of-type {\\r\\n margin-top: 0;\\r\\n }\\r\\n.ce-block--selected {\\r\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\r\\n border-radius: 3px;\\r\\n }\\r\\n.ce-block--stretched .ce-block__content {\\r\\n max-width: none;\\r\\n }\\r\\n.ce-block__content {\\r\\n position: relative;\\r\\n max-width: 650px;\\r\\n max-width: var(--content-width);\\r\\n margin: 0 auto;\\r\\n }\\r\\n.ce-block--drop-target .ce-block__content:before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n left: -20px;\\r\\n margin-top: -1px;\\r\\n height: 8px;\\r\\n width: 8px;\\r\\n border: solid #388AE5;\\r\\n border: solid var(--color-active-icon);\\r\\n border-width: 1px 1px 0 0;\\r\\n -webkit-transform-origin: right;\\r\\n transform-origin: right;\\r\\n -webkit-transform: rotate(45deg);\\r\\n transform: rotate(45deg);\\r\\n }\\r\\n.ce-block--drop-target .ce-block__content:after {\\r\\n content: '';\\r\\n position: absolute;\\r\\n top: 100%;\\r\\n height: 1px;\\r\\n width: 100%;\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n background: repeating-linear-gradient(\\r\\n 90deg,\\r\\n #388AE5,\\r\\n #388AE5 1px,\\r\\n #fff 1px,\\r\\n #fff 6px\\r\\n );\\r\\n background: repeating-linear-gradient(\\r\\n 90deg,\\r\\n var(--color-active-icon),\\r\\n var(--color-active-icon) 1px,\\r\\n #fff 1px,\\r\\n #fff 6px\\r\\n );\\r\\n }\\r\\n.wobble {\\r\\n -webkit-animation-name: wobble;\\r\\n animation-name: wobble;\\r\\n -webkit-animation-duration: 400ms;\\r\\n animation-duration: 400ms;\\r\\n}\\r\\n/**\\r\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\r\\n */\\r\\n@-webkit-keyframes wobble {\\r\\n from {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n}\\r\\n@keyframes wobble {\\r\\n from {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n\\r\\n 15% {\\r\\n -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\r\\n }\\r\\n\\r\\n 30% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\r\\n }\\r\\n\\r\\n 45% {\\r\\n -webkit-transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\r\\n }\\r\\n\\r\\n 75% {\\r\\n -webkit-transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: translate3d(0, 0, 0);\\r\\n transform: translate3d(0, 0, 0);\\r\\n }\\r\\n}\\r\\n@-webkit-keyframes bounceIn {\\r\\n from,\\r\\n 20%,\\r\\n 40%,\\r\\n 60%,\\r\\n 80%,\\r\\n to {\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 0% {\\r\\n -webkit-transform: scale3d(0.86, 0.86, 0.86);\\r\\n transform: scale3d(0.86, 0.86, 0.86);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\r\\n transform: scale3d(1.1, 1.1, 1.1);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\r\\n transform: scale3d(1.03, 1.03, 1.03);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\r\\n transform: scale3d(0.97, 0.97, 0.97);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n@keyframes bounceIn {\\r\\n from,\\r\\n 20%,\\r\\n 40%,\\r\\n 60%,\\r\\n 80%,\\r\\n to {\\r\\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\r\\n }\\r\\n\\r\\n 0% {\\r\\n -webkit-transform: scale3d(0.86, 0.86, 0.86);\\r\\n transform: scale3d(0.86, 0.86, 0.86);\\r\\n }\\r\\n\\r\\n 20% {\\r\\n -webkit-transform: scale3d(1.1, 1.1, 1.1);\\r\\n transform: scale3d(1.1, 1.1, 1.1);\\r\\n }\\r\\n\\r\\n 40% {\\r\\n -webkit-transform: scale3d(0.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 60% {\\r\\n -webkit-transform: scale3d(1.03, 1.03, 1.03);\\r\\n transform: scale3d(1.03, 1.03, 1.03);\\r\\n }\\r\\n\\r\\n 80% {\\r\\n -webkit-transform: scale3d(0.97, 0.97, 0.97);\\r\\n transform: scale3d(0.97, 0.97, 0.97);\\r\\n }\\r\\n\\r\\n to {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n/**\\r\\n * Block Tool wrapper\\r\\n */\\r\\n.cdx-block {\\r\\n padding: 0.7em 0;\\r\\n}\\r\\n/**\\r\\n * Input\\r\\n */\\r\\n.cdx-input {\\r\\n border: 1px solid #E8E8EB;\\r\\n border: 1px solid var(--color-gray-border);\\r\\n -webkit-box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\r\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\r\\n border-radius: 3px;\\r\\n padding: 10px 12px;\\r\\n outline: none;\\r\\n width: 100%;\\r\\n -webkit-box-sizing: border-box;\\r\\n box-sizing: border-box;\\r\\n}\\r\\n/**\\r\\n * Settings\\r\\n */\\r\\n.cdx-settings-button {\\r\\n display: inline-block;\\r\\n width: 34px;\\r\\n height: 34px;\\r\\n line-height: 34px;\\r\\n text-align: center;\\r\\n border-radius: 3px;\\r\\n cursor: pointer;\\r\\n border: 0;\\r\\n outline: none;\\r\\n background-color: transparent;\\r\\n vertical-align: bottom;\\r\\n color: #707684;\\r\\n color: var(--grayText)\\r\\n}\\r\\n.cdx-settings-button:not(:last-of-type){\\r\\n margin-right: 5px;\\r\\n }\\r\\n.cdx-settings-button:hover {\\r\\n background-color: #eff2f5;\\r\\n background-color: var(--bg-light);\\r\\n }\\r\\n.cdx-settings-button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n.cdx-settings-button--active {\\r\\n color: #388AE5;\\r\\n color: var(--color-active-icon);\\r\\n }\\r\\n/**\\r\\n * Loader\\r\\n */\\r\\n.cdx-loader {\\r\\n position: relative;\\r\\n border: 1px solid #E8E8EB;\\r\\n border: 1px solid var(--color-gray-border)\\r\\n}\\r\\n.cdx-loader::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 50%;\\r\\n top: 50%;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n margin: -11px 0 0 -11px;\\r\\n border: 2px solid #E8E8EB;\\r\\n border: 2px solid var(--color-gray-border);\\r\\n border-left-color: #388AE5;\\r\\n border-left-color: var(--color-active-icon);\\r\\n border-radius: 50%;\\r\\n -webkit-animation: cdxRotation 1.2s infinite linear;\\r\\n animation: cdxRotation 1.2s infinite linear;\\r\\n }\\r\\n@-webkit-keyframes cdxRotation {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n@keyframes cdxRotation {\\r\\n 0% {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index fa626c02..13634a7c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codex.editor", - "version": "2.1.2", + "version": "2.1.3", "description": "Codex Editor. Native JS, based on API and Open Source", "main": "build/codex-editor.js", "scripts": { diff --git a/src/components/modules/paste.ts b/src/components/modules/paste.ts index 867346da..ecdfeae1 100644 --- a/src/components/modules/paste.ts +++ b/src/components/modules/paste.ts @@ -91,6 +91,11 @@ export default class Paste extends Module { */ private toolsTags: {[tag: string]: ITagSubstitute} = {}; + /** + * Store tags to substitute by tool name + */ + private tagsByTool: {[tools: string]: string[]} = {}; + /** Patterns` substitutions parameters */ private toolsPatterns: IPatternSubstitute[] = []; @@ -242,6 +247,8 @@ export default class Paste extends Module { tool: name, }; }); + + this.tagsByTool[name] = tags.map((t) => t.toUpperCase()); } /** @@ -687,23 +694,32 @@ export default class Paste extends Module { case Node.ELEMENT_NODE: const element = node as HTMLElement; + const {tool = ''} = this.toolsTags[element.tagName] || {}; + const toolTags = this.tagsByTool[tool] || []; + + const isSubstitutable = tags.includes(element.tagName); + const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase()); + const containsAnotherToolTags = Array + .from(element.children) + .some( + ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName), + ); + + const containsBlockElements = Array.from(element.children).some( + ({tagName}) => $.blockElements.includes(tagName.toLowerCase()), + ); + /** Append inline elements to previous fragment */ - if ( - !$.blockElements.includes(element.tagName.toLowerCase()) && - !tags.includes(element.tagName) - ) { + if (!isBlockElement && !isSubstitutable) { destNode.appendChild(element); return [...nodes, destNode]; } - if (tags.includes(element.tagName) || ( - $.blockElements.includes(element.tagName.toLowerCase()) && - Array.from(element.children).every( - ({tagName}) => !$.blockElements.includes(tagName.toLowerCase()), - ) - ) + if ( + (isSubstitutable && !containsAnotherToolTags) || + (isBlockElement && !containsBlockElements && !containsAnotherToolTags ) ) { - return [...nodes, element]; + return [...nodes, destNode, element]; } break;