From bcdfcdadbc444921aee62b38516329cda3c96a70 Mon Sep 17 00:00:00 2001 From: George Berezhnoy Date: Fri, 23 Nov 2018 19:11:50 +0300 Subject: [PATCH] Move to typescript (#474) * Move all modules to ts * It works * Update README.md Co-Authored-By: gohabereg * Interfaces * Interfaces * Move depending interfaces to external types * Update README.md * update tools * add some docs * Add some fixes * Add desctiprion for Block declaration and Core properties * Fixes due comments : * Remove Block from external types * Bump version * Update src/components/modules/tools.ts Co-Authored-By: gohabereg * Update src/components/core.ts Co-Authored-By: gohabereg * Rename gteBlockHTMLByIndex to getBlockByIndex * Remove unnecessary constructors * Clean up bindEvents method * Add InlineToolConstructable interface * Delete legacy notifications class * Fix zero-configuration bugs * Update inline tools and block tunes constructors --- .babelrc | 5 +- .eslintrc | 2 + .gitignore | 1 + README.md | 32 +- build/codex-editor.js | 282 +- build/codex-editor.js.map | 2 +- docs/installation.md | 2 +- docs/tools.md | 2 +- example/tools/table | 2 +- package-lock.json | 12536 ---------------- package.json | 9 +- src/{codex.js => codex.ts} | 35 +- src/components/__module.ts | 24 +- .../block-tunes/block-tune-delete.ts | 16 +- .../block-tunes/block-tune-move-down.ts | 22 +- .../block-tunes/block-tune-move-up.ts | 23 +- src/components/block.ts | 94 +- src/components/blocks.ts | 223 + src/components/{core.js => core.ts} | 270 +- src/components/dom.ts | 6 +- .../inline-tools/inline-tool-bold.ts | 18 +- .../inline-tools/inline-tool-italic.ts | 18 +- .../inline-tools/inline-tool-link.ts | 28 +- src/components/interfaces/api.ts | 230 - src/components/interfaces/block-tune.ts | 29 - src/components/interfaces/editor-config.ts | 57 - src/components/interfaces/editor.ts | 62 - .../interfaces/input-output-data.ts | 23 - src/components/interfaces/module-config.ts | 12 - src/components/interfaces/shortcuts.ts | 40 - .../interfaces/tools/block-tool-data.ts | 4 - src/components/interfaces/tools/tool.ts | 10 - src/components/modules/_notifications.js | 187 - src/components/modules/api-caret.ts | 26 - src/components/modules/api-sanitizer.ts | 33 - src/components/modules/api-saver.ts | 36 - src/components/modules/api-selection.ts | 49 - src/components/modules/api-toolbar.ts | 44 - .../modules/{api-blocks.ts => api/blocks.ts} | 46 +- src/components/modules/api/caret.ts | 17 + .../modules/{api-events.ts => api/events.ts} | 20 +- .../modules/{api.ts => api/index.ts} | 22 +- .../{api-listener.ts => api/listeners.ts} | 24 +- .../{api-notifier.ts => api/notifier.ts} | 5 +- src/components/modules/api/sanitizer.ts | 23 + src/components/modules/api/saver.ts | 26 + src/components/modules/api/selection.ts | 39 + .../modules/{api-styles.ts => api/styles.ts} | 17 +- src/components/modules/api/toolbar.ts | 34 + .../{block-events.ts => blockEvents.ts} | 22 +- src/components/modules/blockManager.js | 652 - src/components/modules/blockManager.ts | 437 + src/components/modules/blockSelection.ts | 6 +- src/components/modules/{caret.js => caret.ts} | 406 +- src/components/modules/dragNDrop.ts | 7 +- .../modules/{events.js => events.ts} | 25 +- src/components/modules/listeners.js | 174 - src/components/modules/listeners.ts | 192 + .../modules/modificationsObserver.ts | 16 +- src/components/modules/paste.ts | 186 +- .../modules/{renderer.js => renderer.ts} | 38 +- src/components/modules/sanitizer.ts | 86 +- src/components/modules/saver.ts | 51 +- src/components/modules/shortcuts.ts | 51 +- .../blockSettings.ts} | 84 +- .../modules/{toolbar.js => toolbar/index.ts} | 64 +- .../{toolbar-inline.ts => toolbar/inline.ts} | 100 +- .../toolbox.ts} | 367 +- src/components/modules/{tools.js => tools.ts} | 260 +- src/components/modules/{ui.js => ui.ts} | 123 +- src/components/polyfills.ts | 1 + src/components/selection.ts | 3 +- src/components/utils.ts | 14 +- src/types-internal/editor-modules.d.ts | 65 + src/types-internal/html-janitor.d.ts | 22 + src/types-internal/module-config.d.ts | 8 + src/types-internal/svg.d.ts | 7 + tslint.json | 12 +- types/api/blocks.d.ts | 61 + types/api/caret.d.ts | 6 + types/api/events.d.ts | 28 + types/api/index.d.ts | 10 + types/api/listeners.d.ts | 24 + types/api/notifier.d.ts | 14 + types/api/sanitizer.d.ts | 14 + types/api/saver.d.ts | 13 + types/api/selection.d.ts | 18 + types/api/styles.d.ts | 44 + types/api/toolbar.d.ts | 14 + types/block-tunes/block-tune.d.ts | 20 + types/block-tunes/index.d.ts | 1 + types/configs/editor-config.d.ts | 53 + types/configs/index.d.ts | 3 + types/configs/paste-config.d.ts | 50 + .../configs/sanitizer-config.d.ts | 3 +- types/data-formats/output-data.d.ts | 21 + types/index.d.ts | 69 + types/tools/block-tool-data.d.ts | 5 + .../tools/block-tool.d.ts | 91 +- types/tools/index.d.ts | 6 + .../tools/inline-tool.d.ts | 21 +- types/tools/tool-config.d.ts | 4 + .../tools/tool-settings.d.ts | 23 +- types/tools/tool.d.ts | 43 + webpack.config.js | 80 +- yarn.lock | 1433 +- 106 files changed, 4536 insertions(+), 15882 deletions(-) delete mode 100644 package-lock.json rename src/{codex.js => codex.ts} (67%) create mode 100644 src/components/blocks.ts rename src/components/{core.js => core.ts} (55%) delete mode 100644 src/components/interfaces/api.ts delete mode 100644 src/components/interfaces/block-tune.ts delete mode 100644 src/components/interfaces/editor-config.ts delete mode 100644 src/components/interfaces/editor.ts delete mode 100644 src/components/interfaces/input-output-data.ts delete mode 100644 src/components/interfaces/module-config.ts delete mode 100644 src/components/interfaces/shortcuts.ts delete mode 100644 src/components/interfaces/tools/block-tool-data.ts delete mode 100644 src/components/interfaces/tools/tool.ts delete mode 100644 src/components/modules/_notifications.js delete mode 100644 src/components/modules/api-caret.ts delete mode 100644 src/components/modules/api-sanitizer.ts delete mode 100644 src/components/modules/api-saver.ts delete mode 100644 src/components/modules/api-selection.ts delete mode 100644 src/components/modules/api-toolbar.ts rename src/components/modules/{api-blocks.ts => api/blocks.ts} (71%) create mode 100644 src/components/modules/api/caret.ts rename src/components/modules/{api-events.ts => api/events.ts} (70%) rename src/components/modules/{api.ts => api/index.ts} (65%) rename src/components/modules/{api-listener.ts => api/listeners.ts} (59%) rename src/components/modules/{api-notifier.ts => api/notifier.ts} (80%) create mode 100644 src/components/modules/api/sanitizer.ts create mode 100644 src/components/modules/api/saver.ts create mode 100644 src/components/modules/api/selection.ts rename src/components/modules/{api-styles.ts => api/styles.ts} (64%) create mode 100644 src/components/modules/api/toolbar.ts rename src/components/modules/{block-events.ts => blockEvents.ts} (96%) delete mode 100644 src/components/modules/blockManager.js create mode 100644 src/components/modules/blockManager.ts rename src/components/modules/{caret.js => caret.ts} (74%) rename src/components/modules/{events.js => events.ts} (69%) delete mode 100644 src/components/modules/listeners.js create mode 100644 src/components/modules/listeners.ts rename src/components/modules/{renderer.js => renderer.ts} (72%) rename src/components/modules/{toolbar-blockSettings.js => toolbar/blockSettings.ts} (83%) rename src/components/modules/{toolbar.js => toolbar/index.ts} (87%) rename src/components/modules/{toolbar-inline.ts => toolbar/inline.ts} (84%) rename src/components/modules/{toolbar-toolbox.js => toolbar/toolbox.ts} (71%) rename src/components/modules/{tools.js => tools.ts} (66%) rename src/components/modules/{ui.js => ui.ts} (74%) create mode 100644 src/types-internal/editor-modules.d.ts create mode 100644 src/types-internal/html-janitor.d.ts create mode 100644 src/types-internal/module-config.d.ts create mode 100644 src/types-internal/svg.d.ts create mode 100644 types/api/blocks.d.ts create mode 100644 types/api/caret.d.ts create mode 100644 types/api/events.d.ts create mode 100644 types/api/index.d.ts create mode 100644 types/api/listeners.d.ts create mode 100644 types/api/notifier.d.ts create mode 100644 types/api/sanitizer.d.ts create mode 100644 types/api/saver.d.ts create mode 100644 types/api/selection.d.ts create mode 100644 types/api/styles.d.ts create mode 100644 types/api/toolbar.d.ts create mode 100644 types/block-tunes/block-tune.d.ts create mode 100644 types/block-tunes/index.d.ts create mode 100644 types/configs/editor-config.d.ts create mode 100644 types/configs/index.d.ts create mode 100644 types/configs/paste-config.d.ts rename src/components/interfaces/sanitizer-config.ts => types/configs/sanitizer-config.d.ts (95%) create mode 100644 types/data-formats/output-data.d.ts create mode 100644 types/index.d.ts create mode 100644 types/tools/block-tool-data.d.ts rename src/components/interfaces/tools/block-tool.ts => types/tools/block-tool.d.ts (51%) create mode 100644 types/tools/index.d.ts rename src/components/interfaces/tools/inline-tool.ts => types/tools/inline-tool.d.ts (67%) create mode 100644 types/tools/tool-config.d.ts rename src/components/interfaces/tools/tool-settings.ts => types/tools/tool-settings.d.ts (57%) create mode 100644 types/tools/tool.d.ts diff --git a/.babelrc b/.babelrc index 3906e7a5..93be4658 100644 --- a/.babelrc +++ b/.babelrc @@ -1,7 +1,8 @@ { - "presets": [ + "presets": [ ["@babel/preset-env", { - "modules": "umd" + "modules": "umd", + "useBuiltIns": "entry" }] ], "plugins": [ diff --git a/.eslintrc b/.eslintrc index b159306a..2f369b0c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -85,6 +85,8 @@ "$": true, "_": true, "setTimeout": true, + "process": true, + "__dirname": true, "Map": true } } diff --git a/.gitignore b/.gitignore index 3c8ec3b7..72938961 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ Thumbs.db node_modules/* npm-debug.log +yarn-error.log diff --git a/README.md b/README.md index e5a92255..5aeeec37 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,10 @@ Welcome to testing stage. Please, join a [public Telegram-chat](//t.me/codex_edi - `New` Added `onChange`-callback, fired after any modifications at the Editor. See [documentation](https://github.com/codex-team/codex.editor/blob/master/docs/installation.md#features). - `New` New Inline Tool example — [Marker](https://github.com/codex-editor/marker) - `New` New Inline Tool example — [Code](https://github.com/codex-editor/code) -- `New` New [CodeX Editor PHP](http://github.com/codex-team/codex.editor.backend) — example of server-side implementation with HTML purifying and data validation. -- `Improvements` - Improvements of Toolbar's position calculation. +- `New` New [CodeX Editor PHP](http://github.com/codex-team/codex.editor.backend) — example of server-side implementation with HTML purifying and data validation. +- `Improvements` - Improvements of Toolbar's position calculation. - `Improvements` — Improved zero-configuration initialization. -- and many little improvements. +- and many little improvements. ## Documentation @@ -28,7 +28,7 @@ While we develop the new Documentation Site with all stuff, you can check some a - [How to use](docs/usage.md) - [How to create a Block Tool Plugin](docs/tools.md) - [How to create an Inline Tool Plugin](docs/tools-inline.md) -- [API for Tools](src/components/interfaces/api.ts) +- [API for Tools](docs/api.md) Sorry if we missed something. You can join a [Telegram-chat](//t.me/codex_editor) and ask a question. @@ -38,8 +38,8 @@ Sorry if we missed something. You can join a [Telegram-chat](//t.me/codex_editor ## Basics -CodeX Editor is a Block-Styled editor. Blocks is a structural units, of which the Entry is composed. -For example, `Paragraph`, `Heading`, `Image`, `Video`, `List` are Blocks. Each Block is represented by a Plugin. +CodeX Editor is a Block-Styled editor. Blocks are structural units, of which the Entry is composed. +For example, `Paragraph`, `Heading`, `Image`, `Video`, `List` are Blocks. Each Block is represented by Plugin. We have [many](http://github.com/codex-editor) ready-to-use Plugins and the [simple API](docs/tools.md) for creation new ones. So how to use the Editor after [Installation](docs/installation.md). @@ -50,21 +50,21 @@ So how to use the Editor after [Installation](docs/installation.md). ![](https://github.com/codex-editor/list/raw/master/assets/example.gif) - + - Select text fragment and apply a style or insert a link from the Inline Toolbar ![](https://capella.pics/7ccbcfcd-1c49-4674-bea7-71021468a1bd.jpg) -- Use «three-dots» button on the right to open Block Settings. From here, you can move and delete a Block +- Use «three-dots» button on the right to open Block Settings. From here, you can move and delete a Block or apply Tool's settings, if it provided. For example, set a Heading level or List style. -![](https://capella.pics/01a55381-46cd-47c7-b92e-34765434f2ca.jpg) +![](https://capella.pics/01a55381-46cd-47c7-b92e-34765434f2ca.jpg) ## Shortcuts -We really appreciate shortcuts. So there are few presets. +We really appreciate shortcuts. So there are few presets. -Action | Shortcut | Restrictions +Shortcut | Action | Restrictions -- | -- | -- `TAB` | Show/leaf a Toolbox. | On empty block `SHIFT+TAB` | Leaf back a Toolbox. | While Toolbox is opened @@ -72,7 +72,7 @@ Action | Shortcut | Restrictions `CMD+B` | Bold style | On selection `CMD+I` | Italic style | On selection `CMD+K` | Insert a link | On selection - + Also we support shortcuts on the all type of Tools. Specify a shortcut with the Tools configuration. For example: ```js @@ -104,7 +104,7 @@ There are few steps to run CodeX Editor on your site. ## Load Editor's core -Firstly you need to get CodeX Editor itself. It is a [minified script](build/codex-editor.js) with minimal available +Firstly you need to get CodeX Editor itself. It is a [minified script](build/codex-editor.js) with Editor's core and some default must-have tools. Choose the most usable method of getting Editor for you. @@ -120,7 +120,7 @@ Install the package via NPM or Yarn npm i codex.editor --save-dev ``` -Include module at your application +Include module in your application ```javascript const CodexEditor = require('codex.editor'); @@ -164,7 +164,7 @@ Check [CodeX Editor's community](https://github.com/codex-editor) to see more re ## Create Editor instance -Create an instance of CodeX Editor and pass [Configuration Object](src/components/interfaces/editor-config.ts) with `holderId` and tools list. +Create an instance of CodeX Editor and pass [Configuration Object](types/configs/editor-config.d.ts) with `holderId` and tools list. ```html
@@ -217,7 +217,7 @@ editor.saver.save() .then((savedData) => { console.log(savedData); }); -``` +``` ## Example diff --git a/build/codex-editor.js b/build/codex-editor.js index 6c898389..527cf7a6 100644 --- a/build/codex-editor.js +++ b/build/codex-editor.js @@ -2,11 +2,15 @@ /*!**************************!*\ !*** ./build/sprite.svg ***! \**************************/ -/*! no static exports found */function(e,o){e.exports='\n\n\n \n\n\n\n \n\n\n\n \n\n\n\n \n\n\n\n \n \n \n \n \n\n\n\n \n\n\n\n \n\n\n\n \n\n\n\n \n\n'},"./node_modules/@babel/polyfill/lib/index.js": -/*!***************************************************!*\ - !*** ./node_modules/@babel/polyfill/lib/index.js ***! - \***************************************************/ -/*! no static exports found */function(e,o,t){"use strict";(function(e){t(/*! core-js/es6 */"./node_modules/core-js/es6/index.js"),t(/*! core-js/fn/array/includes */"./node_modules/core-js/fn/array/includes.js"),t(/*! core-js/fn/string/pad-start */"./node_modules/core-js/fn/string/pad-start.js"),t(/*! core-js/fn/string/pad-end */"./node_modules/core-js/fn/string/pad-end.js"),t(/*! core-js/fn/symbol/async-iterator */"./node_modules/core-js/fn/symbol/async-iterator.js"),t(/*! core-js/fn/object/get-own-property-descriptors */"./node_modules/core-js/fn/object/get-own-property-descriptors.js"),t(/*! core-js/fn/object/values */"./node_modules/core-js/fn/object/values.js"),t(/*! core-js/fn/object/entries */"./node_modules/core-js/fn/object/entries.js"),t(/*! core-js/fn/promise/finally */"./node_modules/core-js/fn/promise/finally.js"),t(/*! core-js/web */"./node_modules/core-js/web/index.js"),t(/*! regenerator-runtime/runtime */"./node_modules/regenerator-runtime/runtime.js"),e._babelPolyfill&&"undefined"!=typeof console&&console.warn&&console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended and may have consequences if different versions of the polyfills are applied sequentially. If you do need to load the polyfill more than once, use @babel/polyfill/noConflict instead to bypass the warning."),e._babelPolyfill=!0}).call(this,t(/*! ./../../../webpack/buildin/global.js */"./node_modules/webpack/buildin/global.js"))},"./node_modules/@babel/register/lib/browser.js": +/*! no static exports found */function(e,o){e.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'},"./node_modules/@babel/polyfill/lib/noConflict.js": +/*!********************************************************!*\ + !*** ./node_modules/@babel/polyfill/lib/noConflict.js ***! + \********************************************************/ +/*! no static exports found */function(e,o,t){"use strict";t(/*! core-js/es6 */"./node_modules/core-js/es6/index.js"),t(/*! core-js/fn/array/includes */"./node_modules/core-js/fn/array/includes.js"),t(/*! core-js/fn/string/pad-start */"./node_modules/core-js/fn/string/pad-start.js"),t(/*! core-js/fn/string/pad-end */"./node_modules/core-js/fn/string/pad-end.js"),t(/*! core-js/fn/symbol/async-iterator */"./node_modules/core-js/fn/symbol/async-iterator.js"),t(/*! core-js/fn/object/get-own-property-descriptors */"./node_modules/core-js/fn/object/get-own-property-descriptors.js"),t(/*! core-js/fn/object/values */"./node_modules/core-js/fn/object/values.js"),t(/*! core-js/fn/object/entries */"./node_modules/core-js/fn/object/entries.js"),t(/*! core-js/fn/promise/finally */"./node_modules/core-js/fn/promise/finally.js"),t(/*! core-js/web */"./node_modules/core-js/web/index.js"),t(/*! regenerator-runtime/runtime */"./node_modules/regenerator-runtime/runtime.js")},"./node_modules/@babel/polyfill/noConflict.js": +/*!****************************************************!*\ + !*** ./node_modules/@babel/polyfill/noConflict.js ***! + \****************************************************/ +/*! no static exports found */function(e,o,t){t(/*! ./lib/noConflict */"./node_modules/@babel/polyfill/lib/noConflict.js")},"./node_modules/@babel/register/lib/browser.js": /*!*****************************************************!*\ !*** ./node_modules/@babel/register/lib/browser.js ***! \*****************************************************/ @@ -94,7 +98,7 @@ /*!*********************************************************************************!*\ !*** ./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js ***! \*********************************************************************************/ -/*! no static exports found */function(e,o){!function(o){"use strict";var t,n=Object.prototype,s=n.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",l=r.asyncIterator||"@@asyncIterator",u=r.toStringTag||"@@toStringTag",d="object"==typeof e,c=o.regeneratorRuntime;if(c)d&&(e.exports=c);else{(c=o.regeneratorRuntime=d?e.exports:{}).wrap=g;var a="suspendedStart",f="suspendedYield",m="executing",p="completed",h={},j={};j[i]=function(){return this};var _=Object.getPrototypeOf,v=_&&_(_(N([])));v&&v!==n&&s.call(v,i)&&(j=v);var b=w.prototype=k.prototype=Object.create(j);x.prototype=b.constructor=w,w.constructor=x,w[u]=x.displayName="GeneratorFunction",c.isGeneratorFunction=function(e){var o="function"==typeof e&&e.constructor;return!!o&&(o===x||"GeneratorFunction"===(o.displayName||o.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,u in e||(e[u]="GeneratorFunction")),e.prototype=Object.create(b),e},c.awrap=function(e){return{__await:e}},E(S.prototype),S.prototype[l]=function(){return this},c.AsyncIterator=S,c.async=function(e,o,t,n){var s=new S(g(e,o,t,n));return c.isGeneratorFunction(o)?s:s.next().then(function(e){return e.done?e.value:s.next()})},E(b),b[u]="Generator",b[i]=function(){return this},b.toString=function(){return"[object Generator]"},c.keys=function(e){var o=[];for(var t in e)o.push(t);return o.reverse(),function t(){for(;o.length;){var n=o.pop();if(n in e)return t.value=n,t.done=!1,t}return t.done=!0,t}},c.values=N,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(B),!e)for(var o in this)"t"===o.charAt(0)&&s.call(this,o)&&!isNaN(+o.slice(1))&&(this[o]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var o=this;function n(n,s){return l.type="throw",l.arg=e,o.next=n,s&&(o.method="next",o.arg=t),!!s}for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:N(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=a;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return I()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===a)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},function(e){return o("throw",e,r,i)})}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function N(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),O(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;O(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new B(n||[]);return r._invoke=function(e,o,t){var n=c;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===c)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},function(e){return o("throw",e,r,i)})}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function O(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function B(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=v.bind(null,t,u,!1),s=v.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=a(e,o);return c(t,o),function(e){for(var s=[],r=0;r=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=b.bind(null,t,u,!1),s=b.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=c(e,o);return a(t,o),function(e){for(var s=[],r=0;r2?arguments[2]:void 0,c=Math.min((void 0===d?i:s(d,i))-u,i-l),a=1;for(u0;)u in t?t[l]=t[u]:delete t[l],l+=a,u+=a;return t}},"./node_modules/core-js/modules/_array-fill.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),s=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),r=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=[].copyWithin||function(e,o){var t=n(this),i=r(t.length),l=s(e,i),u=s(o,i),d=arguments.length>2?arguments[2]:void 0,a=Math.min((void 0===d?i:s(d,i))-u,i-l),c=1;for(u0;)u in t?t[l]=t[u]:delete t[l],l+=c,u+=c;return t}},"./node_modules/core-js/modules/_array-fill.js": /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_array-fill.js ***! \*****************************************************/ @@ -187,15 +191,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/_array-includes.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),s=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),r=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js");e.exports=function(e){return function(o,t,i){var l,u=n(o),d=s(u.length),c=r(i,d);if(e&&t!=t){for(;d>c;)if((l=u[c++])!=l)return!0}else for(;d>c;c++)if((e||c in u)&&u[c]===t)return e||c||0;return!e&&-1}}},"./node_modules/core-js/modules/_array-methods.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),s=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),r=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js");e.exports=function(e){return function(o,t,i){var l,u=n(o),d=s(u.length),a=r(i,d);if(e&&t!=t){for(;d>a;)if((l=u[a++])!=l)return!0}else for(;d>a;a++)if((e||a in u)&&u[a]===t)return e||a||0;return!e&&-1}}},"./node_modules/core-js/modules/_array-methods.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_array-methods.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),l=t(/*! ./_array-species-create */"./node_modules/core-js/modules/_array-species-create.js");e.exports=function(e,o){var t=1==e,u=2==e,d=3==e,c=4==e,a=6==e,f=5==e||a,m=o||l;return function(o,l,p){for(var h,j,_=r(o),v=s(_),b=n(l,p,3),g=i(v.length),y=0,k=t?m(o,g):u?m(o,0):void 0;g>y;y++)if((f||y in v)&&(j=b(h=v[y],y,_),e))if(t)k[y]=j;else if(j)switch(e){case 3:return!0;case 5:return h;case 6:return y;case 2:k.push(h)}else if(c)return!1;return a?-1:d||c?c:k}}},"./node_modules/core-js/modules/_array-reduce.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),l=t(/*! ./_array-species-create */"./node_modules/core-js/modules/_array-species-create.js");e.exports=function(e,o){var t=1==e,u=2==e,d=3==e,a=4==e,c=6==e,f=5==e||c,m=o||l;return function(o,l,p){for(var h,j,_=r(o),b=s(_),v=n(l,p,3),g=i(b.length),y=0,k=t?m(o,g):u?m(o,0):void 0;g>y;y++)if((f||y in b)&&(j=v(h=b[y],y,_),e))if(t)k[y]=j;else if(j)switch(e){case 3:return!0;case 5:return h;case 6:return y;case 2:k.push(h)}else if(a)return!1;return c?-1:d||a?a:k}}},"./node_modules/core-js/modules/_array-reduce.js": /*!*******************************************************!*\ !*** ./node_modules/core-js/modules/_array-reduce.js ***! \*******************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),s=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),r=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=function(e,o,t,l,u){n(o);var d=s(e),c=r(d),a=i(d.length),f=u?a-1:0,m=u?-1:1;if(t<2)for(;;){if(f in c){l=c[f],f+=m;break}if(f+=m,u?f<0:a<=f)throw TypeError("Reduce of empty array with no initial value")}for(;u?f>=0:a>f;f+=m)f in c&&(l=o(l,c[f],f,d));return l}},"./node_modules/core-js/modules/_array-species-constructor.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),s=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),r=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),i=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js");e.exports=function(e,o,t,l,u){n(o);var d=s(e),a=r(d),c=i(d.length),f=u?c-1:0,m=u?-1:1;if(t<2)for(;;){if(f in a){l=a[f],f+=m;break}if(f+=m,u?f<0:c<=f)throw TypeError("Reduce of empty array with no initial value")}for(;u?f>=0:c>f;f+=m)f in a&&(l=o(l,a[f],f,d));return l}},"./node_modules/core-js/modules/_array-species-constructor.js": /*!********************************************************************!*\ !*** ./node_modules/core-js/modules/_array-species-constructor.js ***! \********************************************************************/ @@ -219,15 +223,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!************************************************************!*\ !*** ./node_modules/core-js/modules/_collection-strong.js ***! \************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_iter-define */"./node_modules/core-js/modules/_iter-define.js"),c=t(/*! ./_iter-step */"./node_modules/core-js/modules/_iter-step.js"),a=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),f=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),m=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").fastKey,p=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),h=f?"_s":"size",j=function(e,o){var t,n=m(o);if("F"!==n)return e._i[n];for(t=e._f;t;t=t.n)if(t.k==o)return t};e.exports={getConstructor:function(e,o,t,d){var c=e(function(e,n){l(e,c,o,"_i"),e._t=o,e._i=s(null),e._f=void 0,e._l=void 0,e[h]=0,void 0!=n&&u(n,t,e[d],e)});return r(c.prototype,{clear:function(){for(var e=p(this,o),t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[h]=0},delete:function(e){var t=p(this,o),n=j(t,e);if(n){var s=n.n,r=n.p;delete t._i[n.i],n.r=!0,r&&(r.n=s),s&&(s.p=r),t._f==n&&(t._f=s),t._l==n&&(t._l=r),t[h]--}return!!n},forEach:function(e){p(this,o);for(var t,n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!j(p(this,o),e)}}),f&&n(c.prototype,"size",{get:function(){return p(this,o)[h]}}),c},def:function(e,o,t){var n,s,r=j(e,o);return r?r.v=t:(e._l=r={i:s=m(o,!0),k:o,v:t,p:n=e._l,n:void 0,r:!1},e._f||(e._f=r),n&&(n.n=r),e[h]++,"F"!==s&&(e._i[s]=r)),e},getEntry:j,setStrong:function(e,o,t){d(e,o,function(e,t){this._t=p(e,o),this._k=t,this._l=void 0},function(){for(var e=this._k,o=this._l;o&&o.r;)o=o.p;return this._t&&(this._l=o=o?o.n:this._t._f)?c(0,"keys"==e?o.k:"values"==e?o.v:[o.k,o.v]):(this._t=void 0,c(1))},t?"entries":"values",!t,!0),a(o)}}},"./node_modules/core-js/modules/_collection-weak.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_iter-define */"./node_modules/core-js/modules/_iter-define.js"),a=t(/*! ./_iter-step */"./node_modules/core-js/modules/_iter-step.js"),c=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),f=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),m=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").fastKey,p=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),h=f?"_s":"size",j=function(e,o){var t,n=m(o);if("F"!==n)return e._i[n];for(t=e._f;t;t=t.n)if(t.k==o)return t};e.exports={getConstructor:function(e,o,t,d){var a=e(function(e,n){l(e,a,o,"_i"),e._t=o,e._i=s(null),e._f=void 0,e._l=void 0,e[h]=0,void 0!=n&&u(n,t,e[d],e)});return r(a.prototype,{clear:function(){for(var e=p(this,o),t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[h]=0},delete:function(e){var t=p(this,o),n=j(t,e);if(n){var s=n.n,r=n.p;delete t._i[n.i],n.r=!0,r&&(r.n=s),s&&(s.p=r),t._f==n&&(t._f=s),t._l==n&&(t._l=r),t[h]--}return!!n},forEach:function(e){p(this,o);for(var t,n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!j(p(this,o),e)}}),f&&n(a.prototype,"size",{get:function(){return p(this,o)[h]}}),a},def:function(e,o,t){var n,s,r=j(e,o);return r?r.v=t:(e._l=r={i:s=m(o,!0),k:o,v:t,p:n=e._l,n:void 0,r:!1},e._f||(e._f=r),n&&(n.n=r),e[h]++,"F"!==s&&(e._i[s]=r)),e},getEntry:j,setStrong:function(e,o,t){d(e,o,function(e,t){this._t=p(e,o),this._k=t,this._l=void 0},function(){for(var e=this._k,o=this._l;o&&o.r;)o=o.p;return this._t&&(this._l=o=o?o.n:this._t._f)?a(0,"keys"==e?o.k:"values"==e?o.v:[o.k,o.v]):(this._t=void 0,a(1))},t?"entries":"values",!t,!0),c(o)}}},"./node_modules/core-js/modules/_collection-weak.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_collection-weak.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),s=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").getWeak,r=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),i=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),c=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),a=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=d(5),m=d(6),p=0,h=function(e){return e._l||(e._l=new j)},j=function(){this.a=[]},_=function(e,o){return f(e.a,function(e){return e[0]===o})};j.prototype={get:function(e){var o=_(this,e);if(o)return o[1]},has:function(e){return!!_(this,e)},set:function(e,o){var t=_(this,e);t?t[1]=o:this.a.push([e,o])},delete:function(e){var o=m(this.a,function(o){return o[0]===e});return~o&&this.a.splice(o,1),!!~o}},e.exports={getConstructor:function(e,o,t,r){var d=e(function(e,n){l(e,d,o,"_i"),e._t=o,e._i=p++,e._l=void 0,void 0!=n&&u(n,t,e[r],e)});return n(d.prototype,{delete:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(a(this,o)).delete(e):t&&c(t,this._i)&&delete t[this._i]},has:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(a(this,o)).has(e):t&&c(t,this._i)}}),d},def:function(e,o,t){var n=s(r(o),!0);return!0===n?h(e).set(o,t):n[e._i]=t,e},ufstore:h}},"./node_modules/core-js/modules/_collection.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),s=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").getWeak,r=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),i=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),l=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),a=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),c=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=d(5),m=d(6),p=0,h=function(e){return e._l||(e._l=new j)},j=function(){this.a=[]},_=function(e,o){return f(e.a,function(e){return e[0]===o})};j.prototype={get:function(e){var o=_(this,e);if(o)return o[1]},has:function(e){return!!_(this,e)},set:function(e,o){var t=_(this,e);t?t[1]=o:this.a.push([e,o])},delete:function(e){var o=m(this.a,function(o){return o[0]===e});return~o&&this.a.splice(o,1),!!~o}},e.exports={getConstructor:function(e,o,t,r){var d=e(function(e,n){l(e,d,o,"_i"),e._t=o,e._i=p++,e._l=void 0,void 0!=n&&u(n,t,e[r],e)});return n(d.prototype,{delete:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(c(this,o)).delete(e):t&&a(t,this._i)&&delete t[this._i]},has:function(e){if(!i(e))return!1;var t=s(e);return!0===t?h(c(this,o)).has(e):t&&a(t,this._i)}}),d},def:function(e,o,t){var n=s(r(o),!0);return!0===n?h(e).set(o,t):n[e._i]=t,e},ufstore:h}},"./node_modules/core-js/modules/_collection.js": /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_collection.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),l=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),c=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),a=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),f=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),m=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),p=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js");e.exports=function(e,o,t,h,j,_){var v=n[e],b=v,g=j?"set":"add",y=b&&b.prototype,k={},x=function(e){var o=y[e];r(y,e,"delete"==e?function(e){return!(_&&!c(e))&&o.call(this,0===e?0:e)}:"has"==e?function(e){return!(_&&!c(e))&&o.call(this,0===e?0:e)}:"get"==e?function(e){return _&&!c(e)?void 0:o.call(this,0===e?0:e)}:"add"==e?function(e){return o.call(this,0===e?0:e),this}:function(e,t){return o.call(this,0===e?0:e,t),this})};if("function"==typeof b&&(_||y.forEach&&!a(function(){(new b).entries().next()}))){var w=new b,E=w[g](_?{}:-0,1)!=w,S=a(function(){w.has(1)}),C=f(function(e){new b(e)}),T=!_&&a(function(){for(var e=new b,o=5;o--;)e[g](o,o);return!e.has(-0)});C||((b=o(function(o,t){d(o,b,e);var n=p(new v,o,b);return void 0!=t&&u(t,j,n[g],n),n})).prototype=y,y.constructor=b),(S||T)&&(x("delete"),x("has"),j&&x("get")),(T||E)&&x(g),_&&y.clear&&delete y.clear}else b=h.getConstructor(o,e,j,g),i(b.prototype,t),l.NEED=!0;return m(b,e),k[e]=b,s(s.G+s.W+s.F*(b!=v),k),_||h.setStrong(b,e,j),b}},"./node_modules/core-js/modules/_core.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),l=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),u=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),d=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),a=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),c=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),f=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),m=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),p=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js");e.exports=function(e,o,t,h,j,_){var b=n[e],v=b,g=j?"set":"add",y=v&&v.prototype,k={},x=function(e){var o=y[e];r(y,e,"delete"==e?function(e){return!(_&&!a(e))&&o.call(this,0===e?0:e)}:"has"==e?function(e){return!(_&&!a(e))&&o.call(this,0===e?0:e)}:"get"==e?function(e){return _&&!a(e)?void 0:o.call(this,0===e?0:e)}:"add"==e?function(e){return o.call(this,0===e?0:e),this}:function(e,t){return o.call(this,0===e?0:e,t),this})};if("function"==typeof v&&(_||y.forEach&&!c(function(){(new v).entries().next()}))){var w=new v,E=w[g](_?{}:-0,1)!=w,S=c(function(){w.has(1)}),C=f(function(e){new v(e)}),T=!_&&c(function(){for(var e=new v,o=5;o--;)e[g](o,o);return!e.has(-0)});C||((v=o(function(o,t){d(o,v,e);var n=p(new b,o,v);return void 0!=t&&u(t,j,n[g],n),n})).prototype=y,y.constructor=v),(S||T)&&(x("delete"),x("has"),j&&x("get")),(T||E)&&x(g),_&&y.clear&&delete y.clear}else v=h.getConstructor(o,e,j,g),i(v.prototype,t),l.NEED=!0;return m(v,e),k[e]=v,s(s.G+s.W+s.F*(v!=b),k),_||h.setStrong(v,e,j),v}},"./node_modules/core-js/modules/_core.js": /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_core.js ***! \***********************************************/ @@ -271,7 +275,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_export.js ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_core */"./node_modules/core-js/modules/_core.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),l=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),u=function(e,o,t){var d,c,a,f,m=e&u.F,p=e&u.G,h=e&u.S,j=e&u.P,_=e&u.B,v=p?n:h?n[o]||(n[o]={}):(n[o]||{}).prototype,b=p?s:s[o]||(s[o]={}),g=b.prototype||(b.prototype={});for(d in p&&(t=o),t)a=((c=!m&&v&&void 0!==v[d])?v:t)[d],f=_&&c?l(a,n):j&&"function"==typeof a?l(Function.call,a):a,v&&i(v,d,a,e&u.U),b[d]!=a&&r(b,d,f),j&&g[d]!=a&&(g[d]=a)};n.core=s,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},"./node_modules/core-js/modules/_fails-is-regexp.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_core */"./node_modules/core-js/modules/_core.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),l=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),u=function(e,o,t){var d,a,c,f,m=e&u.F,p=e&u.G,h=e&u.S,j=e&u.P,_=e&u.B,b=p?n:h?n[o]||(n[o]={}):(n[o]||{}).prototype,v=p?s:s[o]||(s[o]={}),g=v.prototype||(v.prototype={});for(d in p&&(t=o),t)c=((a=!m&&b&&void 0!==b[d])?b:t)[d],f=_&&a?l(c,n):j&&"function"==typeof c?l(Function.call,c):c,b&&i(b,d,c,e&u.U),v[d]!=c&&r(v,d,f),j&&g[d]!=c&&(g[d]=c)};n.core=s,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},"./node_modules/core-js/modules/_fails-is-regexp.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***! \**********************************************************/ @@ -283,7 +287,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_fix-re-wks.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),s=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),l=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js");e.exports=function(e,o,t){var u=l(e),d=t(i,u,""[e]),c=d[0],a=d[1];r(function(){var o={};return o[u]=function(){return 7},7!=""[e](o)})&&(s(String.prototype,e,c),n(RegExp.prototype,u,2==o?function(e,o){return a.call(e,this,o)}:function(e){return a.call(e,this)}))}},"./node_modules/core-js/modules/_flags.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),s=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),l=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js");e.exports=function(e,o,t){var u=l(e),d=t(i,u,""[e]),a=d[0],c=d[1];r(function(){var o={};return o[u]=function(){return 7},7!=""[e](o)})&&(s(String.prototype,e,a),n(RegExp.prototype,u,2==o?function(e,o){return c.call(e,this,o)}:function(e){return c.call(e,this)}))}},"./node_modules/core-js/modules/_flags.js": /*!************************************************!*\ !*** ./node_modules/core-js/modules/_flags.js ***! \************************************************/ @@ -291,7 +295,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_for-of.js ***! \*************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),r=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),d={},c={};(o=e.exports=function(e,o,t,a,f){var m,p,h,j,_=f?function(){return e}:u(e),v=n(t,a,o?2:1),b=0;if("function"!=typeof _)throw TypeError(e+" is not iterable!");if(r(_)){for(m=l(e.length);m>b;b++)if((j=o?v(i(p=e[b])[0],p[1]):v(e[b]))===d||j===c)return j}else for(h=_.call(e);!(p=h.next()).done;)if((j=s(h,v,p.value,o))===d||j===c)return j}).BREAK=d,o.RETURN=c},"./node_modules/core-js/modules/_global.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),r=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),d={},a={};(o=e.exports=function(e,o,t,c,f){var m,p,h,j,_=f?function(){return e}:u(e),b=n(t,c,o?2:1),v=0;if("function"!=typeof _)throw TypeError(e+" is not iterable!");if(r(_)){for(m=l(e.length);m>v;v++)if((j=o?b(i(p=e[v])[0],p[1]):b(e[v]))===d||j===a)return j}else for(h=_.call(e);!(p=h.next()).done;)if((j=s(h,b,p.value,o))===d||j===a)return j}).BREAK=d,o.RETURN=a},"./node_modules/core-js/modules/_global.js": /*!*************************************************!*\ !*** ./node_modules/core-js/modules/_global.js ***! \*************************************************/ @@ -355,7 +359,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_iter-define.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),l=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),u=t(/*! ./_iter-create */"./node_modules/core-js/modules/_iter-create.js"),d=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),c=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),a=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("iterator"),f=!([].keys&&"next"in[].keys()),m=function(){return this};e.exports=function(e,o,t,p,h,j,_){u(t,o,p);var v,b,g,y=function(e){if(!f&&e in E)return E[e];switch(e){case"keys":case"values":return function(){return new t(this,e)}}return function(){return new t(this,e)}},k=o+" Iterator",x="values"==h,w=!1,E=e.prototype,S=E[a]||E["@@iterator"]||h&&E[h],C=S||y(h),T=h?x?y("entries"):C:void 0,B="Array"==o&&E.entries||S;if(B&&(g=c(B.call(new e)))!==Object.prototype&&g.next&&(d(g,k,!0),n||"function"==typeof g[a]||i(g,a,m)),x&&S&&"values"!==S.name&&(w=!0,C=function(){return S.call(this)}),n&&!_||!f&&!w&&E[a]||i(E,a,C),l[o]=C,l[k]=m,h)if(v={values:x?C:y("values"),keys:j?C:y("keys"),entries:T},_)for(b in v)b in E||r(E,b,v[b]);else s(s.P+s.F*(f||w),o,v);return v}},"./node_modules/core-js/modules/_iter-detect.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),l=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),u=t(/*! ./_iter-create */"./node_modules/core-js/modules/_iter-create.js"),d=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),a=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),c=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("iterator"),f=!([].keys&&"next"in[].keys()),m=function(){return this};e.exports=function(e,o,t,p,h,j,_){u(t,o,p);var b,v,g,y=function(e){if(!f&&e in E)return E[e];switch(e){case"keys":case"values":return function(){return new t(this,e)}}return function(){return new t(this,e)}},k=o+" Iterator",x="values"==h,w=!1,E=e.prototype,S=E[c]||E["@@iterator"]||h&&E[h],C=S||y(h),T=h?x?y("entries"):C:void 0,O="Array"==o&&E.entries||S;if(O&&(g=a(O.call(new e)))!==Object.prototype&&g.next&&(d(g,k,!0),n||"function"==typeof g[c]||i(g,c,m)),x&&S&&"values"!==S.name&&(w=!0,C=function(){return S.call(this)}),n&&!_||!f&&!w&&E[c]||i(E,c,C),l[o]=C,l[k]=m,h)if(b={values:x?C:y("values"),keys:j?C:y("keys"),entries:T},_)for(v in b)v in E||r(E,v,b[v]);else s(s.P+s.F*(f||w),o,b);return b}},"./node_modules/core-js/modules/_iter-detect.js": /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_iter-detect.js ***! \******************************************************/ @@ -391,11 +395,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_meta.js ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js")("meta"),s=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,l=0,u=Object.isExtensible||function(){return!0},d=!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return u(Object.preventExtensions({}))}),c=function(e){i(e,n,{value:{i:"O"+ ++l,w:{}}})},a=e.exports={KEY:n,NEED:!1,fastKey:function(e,o){if(!s(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,n)){if(!u(e))return"F";if(!o)return"E";c(e)}return e[n].i},getWeak:function(e,o){if(!r(e,n)){if(!u(e))return!0;if(!o)return!1;c(e)}return e[n].w},onFreeze:function(e){return d&&a.NEED&&u(e)&&!r(e,n)&&c(e),e}}},"./node_modules/core-js/modules/_microtask.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js")("meta"),s=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,l=0,u=Object.isExtensible||function(){return!0},d=!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return u(Object.preventExtensions({}))}),a=function(e){i(e,n,{value:{i:"O"+ ++l,w:{}}})},c=e.exports={KEY:n,NEED:!1,fastKey:function(e,o){if(!s(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!r(e,n)){if(!u(e))return"F";if(!o)return"E";a(e)}return e[n].i},getWeak:function(e,o){if(!r(e,n)){if(!u(e))return!0;if(!o)return!1;a(e)}return e[n].w},onFreeze:function(e){return d&&c.NEED&&u(e)&&!r(e,n)&&a(e),e}}},"./node_modules/core-js/modules/_microtask.js": /*!****************************************************!*\ !*** ./node_modules/core-js/modules/_microtask.js ***! \****************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,r=n.MutationObserver||n.WebKitMutationObserver,i=n.process,l=n.Promise,u="process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(i);e.exports=function(){var e,o,t,d=function(){var n,s;for(u&&(n=i.domain)&&n.exit();e;){s=e.fn,e=e.next;try{s()}catch(n){throw e?t():o=void 0,n}}o=void 0,n&&n.enter()};if(u)t=function(){i.nextTick(d)};else if(!r||n.navigator&&n.navigator.standalone)if(l&&l.resolve){var c=l.resolve(void 0);t=function(){c.then(d)}}else t=function(){s.call(n,d)};else{var a=!0,f=document.createTextNode("");new r(d).observe(f,{characterData:!0}),t=function(){f.data=a=!a}}return function(n){var s={fn:n,next:void 0};o&&(o.next=s),e||(e=s,t()),o=s}}},"./node_modules/core-js/modules/_new-promise-capability.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,r=n.MutationObserver||n.WebKitMutationObserver,i=n.process,l=n.Promise,u="process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(i);e.exports=function(){var e,o,t,d=function(){var n,s;for(u&&(n=i.domain)&&n.exit();e;){s=e.fn,e=e.next;try{s()}catch(n){throw e?t():o=void 0,n}}o=void 0,n&&n.enter()};if(u)t=function(){i.nextTick(d)};else if(!r||n.navigator&&n.navigator.standalone)if(l&&l.resolve){var a=l.resolve(void 0);t=function(){a.then(d)}}else t=function(){s.call(n,d)};else{var c=!0,f=document.createTextNode("");new r(d).observe(f,{characterData:!0}),t=function(){f.data=c=!c}}return function(n){var s={fn:n,next:void 0};o&&(o.next=s),e||(e=s,t()),o=s}}},"./node_modules/core-js/modules/_new-promise-capability.js": /*!*****************************************************************!*\ !*** ./node_modules/core-js/modules/_new-promise-capability.js ***! \*****************************************************************/ @@ -403,7 +407,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_object-assign.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js"),i=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),l=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),u=Object.assign;e.exports=!u||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){var e={},o={},t=Symbol(),n="abcdefghijklmnopqrst";return e[t]=7,n.split("").forEach(function(e){o[e]=e}),7!=u({},e)[t]||Object.keys(u({},o)).join("")!=n})?function(e,o){for(var t=i(e),u=arguments.length,d=1,c=s.f,a=r.f;u>d;)for(var f,m=l(arguments[d++]),p=c?n(m).concat(c(m)):n(m),h=p.length,j=0;h>j;)a.call(m,f=p[j++])&&(t[f]=m[f]);return t}:u},"./node_modules/core-js/modules/_object-create.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js"),i=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),l=t(/*! ./_iobject */"./node_modules/core-js/modules/_iobject.js"),u=Object.assign;e.exports=!u||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){var e={},o={},t=Symbol(),n="abcdefghijklmnopqrst";return e[t]=7,n.split("").forEach(function(e){o[e]=e}),7!=u({},e)[t]||Object.keys(u({},o)).join("")!=n})?function(e,o){for(var t=i(e),u=arguments.length,d=1,a=s.f,c=r.f;u>d;)for(var f,m=l(arguments[d++]),p=a?n(m).concat(a(m)):n(m),h=p.length,j=0;h>j;)c.call(m,f=p[j++])&&(t[f]=m[f]);return t}:u},"./node_modules/core-js/modules/_object-create.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_object-create.js ***! \********************************************************/ @@ -455,7 +459,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/_object-to-array.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f;e.exports=function(e){return function(o){for(var t,i=s(o),l=n(i),u=l.length,d=0,c=[];u>d;)r.call(i,t=l[d++])&&c.push(e?[t,i[t]]:i[t]);return c}}},"./node_modules/core-js/modules/_own-keys.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),s=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),r=t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f;e.exports=function(e){return function(o){for(var t,i=s(o),l=n(i),u=l.length,d=0,a=[];u>d;)r.call(i,t=l[d++])&&a.push(e?[t,i[t]]:i[t]);return a}}},"./node_modules/core-js/modules/_own-keys.js": /*!***************************************************!*\ !*** ./node_modules/core-js/modules/_own-keys.js ***! \***************************************************/ @@ -535,7 +539,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/_string-pad.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),s=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),r=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js");e.exports=function(e,o,t,i){var l=String(r(e)),u=l.length,d=void 0===t?" ":String(t),c=n(o);if(c<=u||""==d)return l;var a=c-u,f=s.call(d,Math.ceil(a/d.length));return f.length>a&&(f=f.slice(0,a)),i?f+l:l+f}},"./node_modules/core-js/modules/_string-repeat.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),s=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),r=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js");e.exports=function(e,o,t,i){var l=String(r(e)),u=l.length,d=void 0===t?" ":String(t),a=n(o);if(a<=u||""==d)return l;var c=a-u,f=s.call(d,Math.ceil(c/d.length));return f.length>c&&(f=f.slice(0,c)),i?f+l:l+f}},"./node_modules/core-js/modules/_string-repeat.js": /*!********************************************************!*\ !*** ./node_modules/core-js/modules/_string-repeat.js ***! \********************************************************/ @@ -543,7 +547,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_string-trim.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_string-ws */"./node_modules/core-js/modules/_string-ws.js"),l="["+i+"]",u=RegExp("^"+l+l+"*"),d=RegExp(l+l+"*$"),c=function(e,o,t){var s={},l=r(function(){return!!i[e]()||"​…"!="​…"[e]()}),u=s[e]=l?o(a):i[e];t&&(s[t]=u),n(n.P+n.F*l,"String",s)},a=c.trim=function(e,o){return e=String(s(e)),1&o&&(e=e.replace(u,"")),2&o&&(e=e.replace(d,"")),e};e.exports=c},"./node_modules/core-js/modules/_string-ws.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_defined */"./node_modules/core-js/modules/_defined.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_string-ws */"./node_modules/core-js/modules/_string-ws.js"),l="["+i+"]",u=RegExp("^"+l+l+"*"),d=RegExp(l+l+"*$"),a=function(e,o,t){var s={},l=r(function(){return!!i[e]()||"​…"!="​…"[e]()}),u=s[e]=l?o(c):i[e];t&&(s[t]=u),n(n.P+n.F*l,"String",s)},c=a.trim=function(e,o){return e=String(s(e)),1&o&&(e=e.replace(u,"")),2&o&&(e=e.replace(d,"")),e};e.exports=a},"./node_modules/core-js/modules/_string-ws.js": /*!****************************************************!*\ !*** ./node_modules/core-js/modules/_string-ws.js ***! \****************************************************/ @@ -551,7 +555,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***********************************************!*\ !*** ./node_modules/core-js/modules/_task.js ***! \***********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r,i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_invoke */"./node_modules/core-js/modules/_invoke.js"),u=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),d=t(/*! ./_dom-create */"./node_modules/core-js/modules/_dom-create.js"),c=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),a=c.process,f=c.setImmediate,m=c.clearImmediate,p=c.MessageChannel,h=c.Dispatch,j=0,_={},v=function(){var e=+this;if(_.hasOwnProperty(e)){var o=_[e];delete _[e],o()}},b=function(e){v.call(e.data)};f&&m||(f=function(e){for(var o=[],t=1;arguments.length>t;)o.push(arguments[t++]);return _[++j]=function(){l("function"==typeof e?e:Function(e),o)},n(j),j},m=function(e){delete _[e]},"process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(a)?n=function(e){a.nextTick(i(v,e,1))}:h&&h.now?n=function(e){h.now(i(v,e,1))}:p?(r=(s=new p).port2,s.port1.onmessage=b,n=i(r.postMessage,r,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(n=function(e){c.postMessage(e+"","*")},c.addEventListener("message",b,!1)):n="onreadystatechange"in d("script")?function(e){u.appendChild(d("script")).onreadystatechange=function(){u.removeChild(this),v.call(e)}}:function(e){setTimeout(i(v,e,1),0)}),e.exports={set:f,clear:m}},"./node_modules/core-js/modules/_to-absolute-index.js": +/*! no static exports found */function(e,o,t){var n,s,r,i=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),l=t(/*! ./_invoke */"./node_modules/core-js/modules/_invoke.js"),u=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),d=t(/*! ./_dom-create */"./node_modules/core-js/modules/_dom-create.js"),a=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),c=a.process,f=a.setImmediate,m=a.clearImmediate,p=a.MessageChannel,h=a.Dispatch,j=0,_={},b=function(){var e=+this;if(_.hasOwnProperty(e)){var o=_[e];delete _[e],o()}},v=function(e){b.call(e.data)};f&&m||(f=function(e){for(var o=[],t=1;arguments.length>t;)o.push(arguments[t++]);return _[++j]=function(){l("function"==typeof e?e:Function(e),o)},n(j),j},m=function(e){delete _[e]},"process"==t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js")(c)?n=function(e){c.nextTick(i(b,e,1))}:h&&h.now?n=function(e){h.now(i(b,e,1))}:p?(r=(s=new p).port2,s.port1.onmessage=v,n=i(r.postMessage,r,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts?(n=function(e){a.postMessage(e+"","*")},a.addEventListener("message",v,!1)):n="onreadystatechange"in d("script")?function(e){u.appendChild(d("script")).onreadystatechange=function(){u.removeChild(this),b.call(e)}}:function(e){setTimeout(i(b,e,1),0)}),e.exports={set:f,clear:m}},"./node_modules/core-js/modules/_to-absolute-index.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/_to-absolute-index.js ***! \************************************************************/ @@ -583,15 +587,15 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!******************************************************!*\ !*** ./node_modules/core-js/modules/_typed-array.js ***! \******************************************************/ -/*! no static exports found */function(e,o,t){"use strict";if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")){var n=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),u=t(/*! ./_typed-buffer */"./node_modules/core-js/modules/_typed-buffer.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),c=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),a=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),f=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),m=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),p=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),h=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),j=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),_=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),v=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),b=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),g=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),y=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),k=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),x=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),w=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),E=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),S=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,C=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js"),T=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),B=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),O=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js"),N=t(/*! ./_array-includes */"./node_modules/core-js/modules/_array-includes.js"),I=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),A=t(/*! ./es6.array.iterator */"./node_modules/core-js/modules/es6.array.iterator.js"),M=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),L=t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js"),P=t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js"),R=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),D=t(/*! ./_array-copy-within */"./node_modules/core-js/modules/_array-copy-within.js"),F=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),U=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),z=F.f,H=U.f,q=s.RangeError,G=s.TypeError,W=s.Uint8Array,V=Array.prototype,K=u.ArrayBuffer,Y=u.DataView,X=O(0),J=O(2),$=O(3),Z=O(4),Q=O(5),ee=O(6),oe=N(!0),te=N(!1),ne=A.values,se=A.keys,re=A.entries,ie=V.lastIndexOf,le=V.reduce,ue=V.reduceRight,de=V.join,ce=V.sort,ae=V.slice,fe=V.toString,me=V.toLocaleString,pe=B("iterator"),he=B("toStringTag"),je=T("typed_constructor"),_e=T("def_constructor"),ve=l.CONSTR,be=l.TYPED,ge=l.VIEW,ye=O(1,function(e,o){return Se(I(e,e[_e]),o)}),ke=r(function(){return 1===new W(new Uint16Array([1]).buffer)[0]}),xe=!!W&&!!W.prototype.set&&r(function(){new W(1).set({})}),we=function(e,o){var t=p(e);if(t<0||t%o)throw q("Wrong offset!");return t},Ee=function(e){if(y(e)&&be in e)return e;throw G(e+" is not a typed array!")},Se=function(e,o){if(!(y(e)&&je in e))throw G("It is not a typed array constructor!");return new e(o)},Ce=function(e,o){return Te(I(e,e[_e]),o)},Te=function(e,o){for(var t=0,n=o.length,s=Se(e,n);n>t;)s[t]=o[t++];return s},Be=function(e,o,t){z(e,o,{get:function(){return this._d[t]}})},Oe=function(e){var o,t,n,s,r,i,l=k(e),u=arguments.length,c=u>1?arguments[1]:void 0,a=void 0!==c,f=C(l);if(void 0!=f&&!x(f)){for(i=f.call(l),n=[],o=0;!(r=i.next()).done;o++)n.push(r.value);l=n}for(a&&u>2&&(c=d(c,arguments[2],2)),o=0,t=h(l.length),s=Se(this,t);t>o;o++)s[o]=a?c(l[o],o):l[o];return s},Ne=function(){for(var e=0,o=arguments.length,t=Se(this,o);o>e;)t[e]=arguments[e++];return t},Ie=!!W&&r(function(){me.call(new W(1))}),Ae=function(){return me.apply(Ie?ae.call(Ee(this)):Ee(this),arguments)},Me={copyWithin:function(e,o){return D.call(Ee(this),e,o,arguments.length>2?arguments[2]:void 0)},every:function(e){return Z(Ee(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return R.apply(Ee(this),arguments)},filter:function(e){return Ce(this,J(Ee(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return Q(Ee(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(Ee(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){X(Ee(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return te(Ee(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return oe(Ee(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return de.apply(Ee(this),arguments)},lastIndexOf:function(e){return ie.apply(Ee(this),arguments)},map:function(e){return ye(Ee(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return le.apply(Ee(this),arguments)},reduceRight:function(e){return ue.apply(Ee(this),arguments)},reverse:function(){for(var e,o=Ee(this).length,t=Math.floor(o/2),n=0;n1?arguments[1]:void 0)},sort:function(e){return ce.call(Ee(this),e)},subarray:function(e,o){var t=Ee(this),n=t.length,s=_(e,n);return new(I(t,t[_e]))(t.buffer,t.byteOffset+s*t.BYTES_PER_ELEMENT,h((void 0===o?n:_(o,n))-s))}},Le=function(e,o){return Ce(this,ae.call(Ee(this),e,o))},Pe=function(e){Ee(this);var o=we(arguments[1],1),t=this.length,n=k(e),s=h(n.length),r=0;if(s+o>t)throw q("Wrong length!");for(;r255?255:255&n),s.v[m](t*o+s.o,n,ke)}(this,t,e)},enumerable:!0})};b?(p=t(function(e,t,n,s){c(e,p,d,"_d");var r,i,l,u,a=0,m=0;if(y(t)){if(!(t instanceof K||"ArrayBuffer"==(u=g(t))||"SharedArrayBuffer"==u))return be in t?Te(p,t):Oe.call(p,t);r=t,m=we(n,o);var _=t.byteLength;if(void 0===s){if(_%o)throw q("Wrong length!");if((i=_-m)<0)throw q("Wrong length!")}else if((i=h(s)*o)+m>_)throw q("Wrong length!");l=i/o}else l=j(t),r=new K(i=l*o);for(f(e,"_d",{b:r,o:m,l:i,e:l,v:new Y(r)});at;)s[t]=o[t++];return s},Oe=function(e,o,t){z(e,o,{get:function(){return this._d[t]}})},Be=function(e){var o,t,n,s,r,i,l=k(e),u=arguments.length,a=u>1?arguments[1]:void 0,c=void 0!==a,f=C(l);if(void 0!=f&&!x(f)){for(i=f.call(l),n=[],o=0;!(r=i.next()).done;o++)n.push(r.value);l=n}for(c&&u>2&&(a=d(a,arguments[2],2)),o=0,t=h(l.length),s=Se(this,t);t>o;o++)s[o]=c?a(l[o],o):l[o];return s},Ie=function(){for(var e=0,o=arguments.length,t=Se(this,o);o>e;)t[e]=arguments[e++];return t},Ne=!!W&&r(function(){me.call(new W(1))}),Ae=function(){return me.apply(Ne?ce.call(Ee(this)):Ee(this),arguments)},Le={copyWithin:function(e,o){return D.call(Ee(this),e,o,arguments.length>2?arguments[2]:void 0)},every:function(e){return Z(Ee(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return R.apply(Ee(this),arguments)},filter:function(e){return Ce(this,J(Ee(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return Q(Ee(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return ee(Ee(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){X(Ee(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return te(Ee(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return oe(Ee(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return de.apply(Ee(this),arguments)},lastIndexOf:function(e){return ie.apply(Ee(this),arguments)},map:function(e){return ye(Ee(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return le.apply(Ee(this),arguments)},reduceRight:function(e){return ue.apply(Ee(this),arguments)},reverse:function(){for(var e,o=Ee(this).length,t=Math.floor(o/2),n=0;n1?arguments[1]:void 0)},sort:function(e){return ae.call(Ee(this),e)},subarray:function(e,o){var t=Ee(this),n=t.length,s=_(e,n);return new(N(t,t[_e]))(t.buffer,t.byteOffset+s*t.BYTES_PER_ELEMENT,h((void 0===o?n:_(o,n))-s))}},Me=function(e,o){return Ce(this,ce.call(Ee(this),e,o))},Pe=function(e){Ee(this);var o=we(arguments[1],1),t=this.length,n=k(e),s=h(n.length),r=0;if(s+o>t)throw G("Wrong length!");for(;r255?255:255&n),s.v[m](t*o+s.o,n,ke)}(this,t,e)},enumerable:!0})};v?(p=t(function(e,t,n,s){a(e,p,d,"_d");var r,i,l,u,c=0,m=0;if(y(t)){if(!(t instanceof K||"ArrayBuffer"==(u=g(t))||"SharedArrayBuffer"==u))return ve in t?Te(p,t):Be.call(p,t);r=t,m=we(n,o);var _=t.byteLength;if(void 0===s){if(_%o)throw G("Wrong length!");if((i=_-m)<0)throw G("Wrong length!")}else if((i=h(s)*o)+m>_)throw G("Wrong length!");l=i/o}else l=j(t),r=new K(i=l*o);for(f(e,"_d",{b:r,o:m,l:i,e:l,v:new Y(r)});c>1,c=23===o?C(2,-24)-C(2,-77):0,a=0,f=e<0||0===e&&1/e<0?1:0;for((e=S(e))!=e||e===w?(s=e!=e?1:0,n=u):(n=T(B(e)/O),e*(r=C(2,-n))<1&&(n--,r*=2),(e+=n+d>=1?c/r:c*C(2,1-d))*r>=2&&(n++,r/=2),n+d>=u?(s=0,n=u):n+d>=1?(s=(e*r-1)*C(2,o),n+=d):(s=e*C(2,d-1)*C(2,o),n=0));o>=8;i[a++]=255&s,s/=256,o-=8);for(n=n<0;i[a++]=255&n,n/=256,l-=8);return i[--a]|=128*f,i}function L(e,o,t){var n,s=8*t-o-1,r=(1<>1,l=s-7,u=t-1,d=e[u--],c=127&d;for(d>>=7;l>0;c=256*c+e[u],u--,l-=8);for(n=c&(1<<-l)-1,c>>=-l,l+=o;l>0;n=256*n+e[u],u--,l-=8);if(0===c)c=1-i;else{if(c===r)return n?NaN:d?-w:w;n+=C(2,o),c-=i}return(d?-1:1)*n*C(2,c-o)}function P(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function D(e){return[255&e,e>>8&255]}function F(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return M(e,52,8)}function z(e){return M(e,23,4)}function H(e,o,t){h(e[v],o,{get:function(){return this[t]}})}function q(e,o,t,n){var s=m(+t);if(s+o>e[I])throw x(b);var r=e[N]._b,i=s+e[A],l=r.slice(i,i+o);return n?l:l.reverse()}function G(e,o,t,n,s,r){var i=m(+t);if(i+o>e[I])throw x(b);for(var l=e[N]._b,u=i+e[A],d=n(+s),c=0;cY;)(W=K[Y++])in g||l(g,W,E[W]);r||(V.constructor=g)}var X=new y(new g(2)),J=y[v].setInt8;X.setInt8(0,2147483648),X.setInt8(1,2147483649),!X.getInt8(0)&&X.getInt8(1)||u(y[v],{setInt8:function(e,o){J.call(this,e,o<<24>>24)},setUint8:function(e,o){J.call(this,e,o<<24>>24)}},!0)}else g=function(e){c(this,g,"ArrayBuffer");var o=m(e);this._b=j.call(new Array(o),0),this[I]=o},y=function(e,o,t){c(this,y,"DataView"),c(e,g,"DataView");var n=e[I],s=a(o);if(s<0||s>n)throw x("Wrong offset!");if(s+(t=void 0===t?n-s:f(t))>n)throw x("Wrong length!");this[N]=e,this[A]=s,this[I]=t},s&&(H(g,"byteLength","_l"),H(y,"buffer","_b"),H(y,"byteLength","_l"),H(y,"byteOffset","_o")),u(y[v],{getInt8:function(e){return q(this,1,e)[0]<<24>>24},getUint8:function(e){return q(this,1,e)[0]},getInt16:function(e){var o=q(this,2,e,arguments[1]);return(o[1]<<8|o[0])<<16>>16},getUint16:function(e){var o=q(this,2,e,arguments[1]);return o[1]<<8|o[0]},getInt32:function(e){return P(q(this,4,e,arguments[1]))},getUint32:function(e){return P(q(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return L(q(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return L(q(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){G(this,1,e,R,o)},setUint8:function(e,o){G(this,1,e,R,o)},setInt16:function(e,o){G(this,2,e,D,o,arguments[2])},setUint16:function(e,o){G(this,2,e,D,o,arguments[2])},setInt32:function(e,o){G(this,4,e,F,o,arguments[2])},setUint32:function(e,o){G(this,4,e,F,o,arguments[2])},setFloat32:function(e,o){G(this,4,e,z,o,arguments[2])},setFloat64:function(e,o){G(this,8,e,U,o,arguments[2])}});_(g,"ArrayBuffer"),_(y,"DataView"),l(y[v],i.VIEW,!0),o.ArrayBuffer=g,o.DataView=y},"./node_modules/core-js/modules/_typed.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),r=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),i=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),l=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),u=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js"),d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),a=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),c=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),f=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),m=t(/*! ./_to-index */"./node_modules/core-js/modules/_to-index.js"),p=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,h=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,j=t(/*! ./_array-fill */"./node_modules/core-js/modules/_array-fill.js"),_=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),b="prototype",v="Wrong index!",g=n.ArrayBuffer,y=n.DataView,k=n.Math,x=n.RangeError,w=n.Infinity,E=g,S=k.abs,C=k.pow,T=k.floor,O=k.log,B=k.LN2,I=s?"_b":"buffer",N=s?"_l":"byteLength",A=s?"_o":"byteOffset";function L(e,o,t){var n,s,r,i=new Array(t),l=8*t-o-1,u=(1<>1,a=23===o?C(2,-24)-C(2,-77):0,c=0,f=e<0||0===e&&1/e<0?1:0;for((e=S(e))!=e||e===w?(s=e!=e?1:0,n=u):(n=T(O(e)/B),e*(r=C(2,-n))<1&&(n--,r*=2),(e+=n+d>=1?a/r:a*C(2,1-d))*r>=2&&(n++,r/=2),n+d>=u?(s=0,n=u):n+d>=1?(s=(e*r-1)*C(2,o),n+=d):(s=e*C(2,d-1)*C(2,o),n=0));o>=8;i[c++]=255&s,s/=256,o-=8);for(n=n<0;i[c++]=255&n,n/=256,l-=8);return i[--c]|=128*f,i}function M(e,o,t){var n,s=8*t-o-1,r=(1<>1,l=s-7,u=t-1,d=e[u--],a=127&d;for(d>>=7;l>0;a=256*a+e[u],u--,l-=8);for(n=a&(1<<-l)-1,a>>=-l,l+=o;l>0;n=256*n+e[u],u--,l-=8);if(0===a)a=1-i;else{if(a===r)return n?NaN:d?-w:w;n+=C(2,o),a-=i}return(d?-1:1)*n*C(2,a-o)}function P(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function R(e){return[255&e]}function D(e){return[255&e,e>>8&255]}function F(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return L(e,52,8)}function z(e){return L(e,23,4)}function H(e,o,t){h(e[b],o,{get:function(){return this[t]}})}function G(e,o,t,n){var s=m(+t);if(s+o>e[N])throw x(v);var r=e[I]._b,i=s+e[A],l=r.slice(i,i+o);return n?l:l.reverse()}function q(e,o,t,n,s,r){var i=m(+t);if(i+o>e[N])throw x(v);for(var l=e[I]._b,u=i+e[A],d=n(+s),a=0;aY;)(W=K[Y++])in g||l(g,W,E[W]);r||(V.constructor=g)}var X=new y(new g(2)),J=y[b].setInt8;X.setInt8(0,2147483648),X.setInt8(1,2147483649),!X.getInt8(0)&&X.getInt8(1)||u(y[b],{setInt8:function(e,o){J.call(this,e,o<<24>>24)},setUint8:function(e,o){J.call(this,e,o<<24>>24)}},!0)}else g=function(e){a(this,g,"ArrayBuffer");var o=m(e);this._b=j.call(new Array(o),0),this[N]=o},y=function(e,o,t){a(this,y,"DataView"),a(e,g,"DataView");var n=e[N],s=c(o);if(s<0||s>n)throw x("Wrong offset!");if(s+(t=void 0===t?n-s:f(t))>n)throw x("Wrong length!");this[I]=e,this[A]=s,this[N]=t},s&&(H(g,"byteLength","_l"),H(y,"buffer","_b"),H(y,"byteLength","_l"),H(y,"byteOffset","_o")),u(y[b],{getInt8:function(e){return G(this,1,e)[0]<<24>>24},getUint8:function(e){return G(this,1,e)[0]},getInt16:function(e){var o=G(this,2,e,arguments[1]);return(o[1]<<8|o[0])<<16>>16},getUint16:function(e){var o=G(this,2,e,arguments[1]);return o[1]<<8|o[0]},getInt32:function(e){return P(G(this,4,e,arguments[1]))},getUint32:function(e){return P(G(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return M(G(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return M(G(this,8,e,arguments[1]),52,8)},setInt8:function(e,o){q(this,1,e,R,o)},setUint8:function(e,o){q(this,1,e,R,o)},setInt16:function(e,o){q(this,2,e,D,o,arguments[2])},setUint16:function(e,o){q(this,2,e,D,o,arguments[2])},setInt32:function(e,o){q(this,4,e,F,o,arguments[2])},setUint32:function(e,o){q(this,4,e,F,o,arguments[2])},setFloat32:function(e,o){q(this,4,e,z,o,arguments[2])},setFloat64:function(e,o){q(this,8,e,U,o,arguments[2])}});_(g,"ArrayBuffer"),_(y,"DataView"),l(y[b],i.VIEW,!0),o.ArrayBuffer=g,o.DataView=y},"./node_modules/core-js/modules/_typed.js": /*!************************************************!*\ !*** ./node_modules/core-js/modules/_typed.js ***! \************************************************/ -/*! no static exports found */function(e,o,t){for(var n,s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),l=i("typed_array"),u=i("view"),d=!(!s.ArrayBuffer||!s.DataView),c=d,a=0,f="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");a<9;)(n=s[f[a++]])?(r(n.prototype,l,!0),r(n.prototype,u,!0)):c=!1;e.exports={ABV:d,CONSTR:c,TYPED:l,VIEW:u}},"./node_modules/core-js/modules/_uid.js": +/*! no static exports found */function(e,o,t){for(var n,s=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),r=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),i=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),l=i("typed_array"),u=i("view"),d=!(!s.ArrayBuffer||!s.DataView),a=d,c=0,f="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");c<9;)(n=s[f[c++]])?(r(n.prototype,l,!0),r(n.prototype,u,!0)):a=!1;e.exports={ABV:d,CONSTR:a,TYPED:l,VIEW:u}},"./node_modules/core-js/modules/_uid.js": /*!**********************************************!*\ !*** ./node_modules/core-js/modules/_uid.js ***! \**********************************************/ @@ -651,7 +655,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!********************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.from.js ***! \********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),l=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js"),c=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js");s(s.S+s.F*!t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){Array.from(e)}),"Array",{from:function(e){var o,t,s,a,f=r(e),m="function"==typeof this?this:Array,p=arguments.length,h=p>1?arguments[1]:void 0,j=void 0!==h,_=0,v=c(f);if(j&&(h=n(h,p>2?arguments[2]:void 0,2)),void 0==v||m==Array&&l(v))for(t=new m(o=u(f.length));o>_;_++)d(t,_,j?h(f[_],_):f[_]);else for(a=v.call(f),t=new m;!(s=a.next()).done;_++)d(t,_,j?i(a,h,[s.value,_],!0):s.value);return t.length=_,t}})},"./node_modules/core-js/modules/es6.array.index-of.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),s=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),r=t(/*! ./_to-object */"./node_modules/core-js/modules/_to-object.js"),i=t(/*! ./_iter-call */"./node_modules/core-js/modules/_iter-call.js"),l=t(/*! ./_is-array-iter */"./node_modules/core-js/modules/_is-array-iter.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js"),a=t(/*! ./core.get-iterator-method */"./node_modules/core-js/modules/core.get-iterator-method.js");s(s.S+s.F*!t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){Array.from(e)}),"Array",{from:function(e){var o,t,s,c,f=r(e),m="function"==typeof this?this:Array,p=arguments.length,h=p>1?arguments[1]:void 0,j=void 0!==h,_=0,b=a(f);if(j&&(h=n(h,p>2?arguments[2]:void 0,2)),void 0==b||m==Array&&l(b))for(t=new m(o=u(f.length));o>_;_++)d(t,_,j?h(f[_],_):f[_]);else for(c=b.call(f),t=new m;!(s=c.next()).done;_++)d(t,_,j?i(c,h,[s.value,_],!0):s.value);return t.length=_,t}})},"./node_modules/core-js/modules/es6.array.index-of.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.index-of.js ***! \************************************************************/ @@ -691,7 +695,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.array.slice.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_html */"./node_modules/core-js/modules/_html.js"),r=t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js"),i=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),l=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),u=[].slice;n(n.P+n.F*t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){s&&u.call(s)}),"Array",{slice:function(e,o){var t=l(this.length),n=r(this);if(o=void 0===o?t:o,"Array"==n)return u.call(this,e,o);for(var s=i(e,t),d=i(o,t),c=l(d-s),a=new Array(c),f=0;f2){var t,n,s,r=(o=_?o.trim():f(o,3)).charCodeAt(0);if(43===r||45===r){if(88===(t=o.charCodeAt(2))||120===t)return NaN}else if(48===r){switch(o.charCodeAt(1)){case 66:case 98:n=2,s=49;break;case 79:case 111:n=8,s=55;break;default:return+o}for(var i,u=o.slice(2),d=0,c=u.length;ds)return NaN;return parseInt(u,n)}}return+o};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(e){var o=arguments.length<1?0:e,t=this;return t instanceof m&&(j?u(function(){h.valueOf.call(t)}):"Number"!=r(t))?i(new p(v(o)),t,m):v(o)};for(var b,g=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")?d(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),y=0;g.length>y;y++)s(p,b=g[y])&&!s(m,b)&&a(m,b,c(p,b));m.prototype=h,h.constructor=m,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"Number",m)}},"./node_modules/core-js/modules/es6.number.epsilon.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_cof */"./node_modules/core-js/modules/_cof.js"),i=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),l=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,a=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js").f,c=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,f=t(/*! ./_string-trim */"./node_modules/core-js/modules/_string-trim.js").trim,m=n.Number,p=m,h=m.prototype,j="Number"==r(t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js")(h)),_="trim"in String.prototype,b=function(e){var o=l(e,!1);if("string"==typeof o&&o.length>2){var t,n,s,r=(o=_?o.trim():f(o,3)).charCodeAt(0);if(43===r||45===r){if(88===(t=o.charCodeAt(2))||120===t)return NaN}else if(48===r){switch(o.charCodeAt(1)){case 66:case 98:n=2,s=49;break;case 79:case 111:n=8,s=55;break;default:return+o}for(var i,u=o.slice(2),d=0,a=u.length;ds)return NaN;return parseInt(u,n)}}return+o};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(e){var o=arguments.length<1?0:e,t=this;return t instanceof m&&(j?u(function(){h.valueOf.call(t)}):"Number"!=r(t))?i(new p(b(o)),t,m):b(o)};for(var v,g=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")?d(p):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),y=0;g.length>y;y++)s(p,v=g[y])&&!s(m,v)&&c(m,v,a(p,v));m.prototype=h,h.constructor=m,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"Number",m)}},"./node_modules/core-js/modules/es6.number.epsilon.js": /*!************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.epsilon.js ***! \************************************************************/ @@ -851,7 +855,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.to-fixed.js ***! \*************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),r=t(/*! ./_a-number-value */"./node_modules/core-js/modules/_a-number-value.js"),i=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),l=1..toFixed,u=Math.floor,d=[0,0,0,0,0,0],c="Number.toFixed: incorrect invocation!",a=function(e,o){for(var t=-1,n=o;++t<6;)n+=e*d[t],d[t]=n%1e7,n=u(n/1e7)},f=function(e){for(var o=6,t=0;--o>=0;)t+=d[o],d[o]=u(t/e),t=t%e*1e7},m=function(){for(var e=6,o="";--e>=0;)if(""!==o||0===e||0!==d[e]){var t=String(d[e]);o=""===o?t:o+i.call("0",7-t.length)+t}return o},p=function(e,o,t){return 0===o?t:o%2==1?p(e,o-1,t*e):p(e*e,o/2,t)};n(n.P+n.F*(!!l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){l.call({})})),"Number",{toFixed:function(e){var o,t,n,l,u=r(this,c),d=s(e),h="",j="0";if(d<0||d>20)throw RangeError(c);if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h="-",u=-u),u>1e-21)if(t=(o=function(e){for(var o=0,t=e;t>=4096;)o+=12,t/=4096;for(;t>=2;)o+=1,t/=2;return o}(u*p(2,69,1))-69)<0?u*p(2,-o,1):u/p(2,o,1),t*=4503599627370496,(o=52-o)>0){for(a(0,t),n=d;n>=7;)a(1e7,0),n-=7;for(a(p(10,n,1),0),n=o-1;n>=23;)f(1<<23),n-=23;f(1<0?h+((l=j.length)<=d?"0."+i.call("0",d-l)+j:j.slice(0,l-d)+"."+j.slice(l-d)):h+j}})},"./node_modules/core-js/modules/es6.number.to-precision.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_to-integer */"./node_modules/core-js/modules/_to-integer.js"),r=t(/*! ./_a-number-value */"./node_modules/core-js/modules/_a-number-value.js"),i=t(/*! ./_string-repeat */"./node_modules/core-js/modules/_string-repeat.js"),l=1..toFixed,u=Math.floor,d=[0,0,0,0,0,0],a="Number.toFixed: incorrect invocation!",c=function(e,o){for(var t=-1,n=o;++t<6;)n+=e*d[t],d[t]=n%1e7,n=u(n/1e7)},f=function(e){for(var o=6,t=0;--o>=0;)t+=d[o],d[o]=u(t/e),t=t%e*1e7},m=function(){for(var e=6,o="";--e>=0;)if(""!==o||0===e||0!==d[e]){var t=String(d[e]);o=""===o?t:o+i.call("0",7-t.length)+t}return o},p=function(e,o,t){return 0===o?t:o%2==1?p(e,o-1,t*e):p(e*e,o/2,t)};n(n.P+n.F*(!!l&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){l.call({})})),"Number",{toFixed:function(e){var o,t,n,l,u=r(this,a),d=s(e),h="",j="0";if(d<0||d>20)throw RangeError(a);if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return String(u);if(u<0&&(h="-",u=-u),u>1e-21)if(t=(o=function(e){for(var o=0,t=e;t>=4096;)o+=12,t/=4096;for(;t>=2;)o+=1,t/=2;return o}(u*p(2,69,1))-69)<0?u*p(2,-o,1):u/p(2,o,1),t*=4503599627370496,(o=52-o)>0){for(c(0,t),n=d;n>=7;)c(1e7,0),n-=7;for(c(p(10,n,1),0),n=o-1;n>=23;)f(1<<23),n-=23;f(1<0?h+((l=j.length)<=d?"0."+i.call("0",d-l)+j:j.slice(0,l-d)+"."+j.slice(l-d)):h+j}})},"./node_modules/core-js/modules/es6.number.to-precision.js": /*!*****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.number.to-precision.js ***! \*****************************************************************/ @@ -935,7 +939,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*****************************************************!*\ !*** ./node_modules/core-js/modules/es6.promise.js ***! \*****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n,s,r,i,l=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),u=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),c=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),a=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),f=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),m=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),p=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),h=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),j=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),_=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,v=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),b=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),g=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),y=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=u.TypeError,w=u.process,E=w&&w.versions,S=E&&E.v8||"",C=u.Promise,T="process"==c(w),B=function(){},O=s=b.f,N=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(B,B)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(B)instanceof o&&0!==S.indexOf("6.6")&&-1===y.indexOf("Chrome/66")}catch(e){}}(),I=function(e){var o;return!(!f(e)||"function"!=typeof(o=e.then))&&o},A=function(e,o){if(!e._n){e._n=!0;var t=e._c;v(function(){for(var n=e._v,s=1==e._s,r=0,i=function(o){var t,r,i,l=s?o.ok:o.fail,u=o.resolve,d=o.reject,c=o.domain;try{l?(s||(2==e._h&&P(e),e._h=1),!0===l?t=n:(c&&c.enter(),t=l(n),c&&(c.exit(),i=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=I(t))?r.call(t,u,d):u(t)):d(n)}catch(e){c&&!i&&c.exit(),d(e)}};t.length>r;)i(t[r++]);e._c=[],e._n=!1,o&&!e._h&&M(e)})}},M=function(e){_.call(u,function(){var o,t,n,s=e._v,r=L(e);if(r&&(o=g(function(){T?w.emit("unhandledRejection",s,e):(t=u.onunhandledrejection)?t({promise:e,reason:s}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",s)}),e._h=T||L(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},L=function(e){return 1!==e._h&&0===(e._a||e._c).length},P=function(e){_.call(u,function(){var o;T?w.emit("rejectionHandled",e):(o=u.onrejectionhandled)&&o({promise:e,reason:e._v})})},R=function(e){var o=this;o._d||(o._d=!0,(o=o._w||o)._v=e,o._s=2,o._a||(o._a=o._c.slice()),A(o,!0))},D=function(e){var o,t=this;if(!t._d){t._d=!0,t=t._w||t;try{if(t===e)throw x("Promise can't be resolved itself");(o=I(e))?v(function(){var n={_w:t,_d:!1};try{o.call(e,d(D,n,1),d(R,n,1))}catch(e){R.call(n,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};N||(C=function(e){p(this,C,"Promise","_h"),m(e),n.call(this);try{e(d(D,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(n=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=O(j(this,C));return t.ok="function"!=typeof e||e,t.fail="function"==typeof o&&o,t.domain=T?w.domain:void 0,this._c.push(t),this._a&&this._a.push(t),this._s&&A(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n;this.promise=e,this.resolve=d(D,e,1),this.reject=d(R,e,1)},b.f=O=function(e){return e===C||e===i?new r(e):s(e)}),a(a.G+a.W+a.F*!N,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("Promise"),i=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,a(a.S+a.F*!N,"Promise",{reject:function(e){var o=O(this);return(0,o.reject)(e),o.promise}}),a(a.S+a.F*(l||!N),"Promise",{resolve:function(e){return k(l&&this===i?C:this,e)}}),a(a.S+a.F*!(N&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(B)})),"Promise",{all:function(e){var o=this,t=O(o),n=t.resolve,s=t.reject,r=g(function(){var t=[],r=0,i=1;h(e,!1,function(e){var l=r++,u=!1;t.push(void 0),i++,o.resolve(e).then(function(e){u||(u=!0,t[l]=e,--i||n(t))},s)}),--i||n(t)});return r.e&&s(r.v),t.promise},race:function(e){var o=this,t=O(o),n=t.reject,s=g(function(){h(e,!1,function(e){o.resolve(e).then(t.resolve,n)})});return s.e&&n(s.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": +/*! no static exports found */function(e,o,t){"use strict";var n,s,r,i,l=t(/*! ./_library */"./node_modules/core-js/modules/_library.js"),u=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),d=t(/*! ./_ctx */"./node_modules/core-js/modules/_ctx.js"),a=t(/*! ./_classof */"./node_modules/core-js/modules/_classof.js"),c=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),f=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),m=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),p=t(/*! ./_an-instance */"./node_modules/core-js/modules/_an-instance.js"),h=t(/*! ./_for-of */"./node_modules/core-js/modules/_for-of.js"),j=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),_=t(/*! ./_task */"./node_modules/core-js/modules/_task.js").set,b=t(/*! ./_microtask */"./node_modules/core-js/modules/_microtask.js")(),v=t(/*! ./_new-promise-capability */"./node_modules/core-js/modules/_new-promise-capability.js"),g=t(/*! ./_perform */"./node_modules/core-js/modules/_perform.js"),y=t(/*! ./_user-agent */"./node_modules/core-js/modules/_user-agent.js"),k=t(/*! ./_promise-resolve */"./node_modules/core-js/modules/_promise-resolve.js"),x=u.TypeError,w=u.process,E=w&&w.versions,S=E&&E.v8||"",C=u.Promise,T="process"==a(w),O=function(){},B=s=v.f,I=!!function(){try{var e=C.resolve(1),o=(e.constructor={})[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("species")]=function(e){e(O,O)};return(T||"function"==typeof PromiseRejectionEvent)&&e.then(O)instanceof o&&0!==S.indexOf("6.6")&&-1===y.indexOf("Chrome/66")}catch(e){}}(),N=function(e){var o;return!(!f(e)||"function"!=typeof(o=e.then))&&o},A=function(e,o){if(!e._n){e._n=!0;var t=e._c;b(function(){for(var n=e._v,s=1==e._s,r=0,i=function(o){var t,r,i,l=s?o.ok:o.fail,u=o.resolve,d=o.reject,a=o.domain;try{l?(s||(2==e._h&&P(e),e._h=1),!0===l?t=n:(a&&a.enter(),t=l(n),a&&(a.exit(),i=!0)),t===o.promise?d(x("Promise-chain cycle")):(r=N(t))?r.call(t,u,d):u(t)):d(n)}catch(e){a&&!i&&a.exit(),d(e)}};t.length>r;)i(t[r++]);e._c=[],e._n=!1,o&&!e._h&&L(e)})}},L=function(e){_.call(u,function(){var o,t,n,s=e._v,r=M(e);if(r&&(o=g(function(){T?w.emit("unhandledRejection",s,e):(t=u.onunhandledrejection)?t({promise:e,reason:s}):(n=u.console)&&n.error&&n.error("Unhandled promise rejection",s)}),e._h=T||M(e)?2:1),e._a=void 0,r&&o.e)throw o.v})},M=function(e){return 1!==e._h&&0===(e._a||e._c).length},P=function(e){_.call(u,function(){var o;T?w.emit("rejectionHandled",e):(o=u.onrejectionhandled)&&o({promise:e,reason:e._v})})},R=function(e){var o=this;o._d||(o._d=!0,(o=o._w||o)._v=e,o._s=2,o._a||(o._a=o._c.slice()),A(o,!0))},D=function(e){var o,t=this;if(!t._d){t._d=!0,t=t._w||t;try{if(t===e)throw x("Promise can't be resolved itself");(o=N(e))?b(function(){var n={_w:t,_d:!1};try{o.call(e,d(D,n,1),d(R,n,1))}catch(e){R.call(n,e)}}):(t._v=e,t._s=1,A(t,!1))}catch(e){R.call({_w:t,_d:!1},e)}}};I||(C=function(e){p(this,C,"Promise","_h"),m(e),n.call(this);try{e(d(D,this,1),d(R,this,1))}catch(e){R.call(this,e)}},(n=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=t(/*! ./_redefine-all */"./node_modules/core-js/modules/_redefine-all.js")(C.prototype,{then:function(e,o){var t=B(j(this,C));return t.ok="function"!=typeof e||e,t.fail="function"==typeof o&&o,t.domain=T?w.domain:void 0,this._c.push(t),this._a&&this._a.push(t),this._s&&A(this,!1),t.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n;this.promise=e,this.resolve=d(D,e,1),this.reject=d(R,e,1)},v.f=B=function(e){return e===C||e===i?new r(e):s(e)}),c(c.G+c.W+c.F*!I,{Promise:C}),t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js")(C,"Promise"),t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("Promise"),i=t(/*! ./_core */"./node_modules/core-js/modules/_core.js").Promise,c(c.S+c.F*!I,"Promise",{reject:function(e){var o=B(this);return(0,o.reject)(e),o.promise}}),c(c.S+c.F*(l||!I),"Promise",{resolve:function(e){return k(l&&this===i?C:this,e)}}),c(c.S+c.F*!(I&&t(/*! ./_iter-detect */"./node_modules/core-js/modules/_iter-detect.js")(function(e){C.all(e).catch(O)})),"Promise",{all:function(e){var o=this,t=B(o),n=t.resolve,s=t.reject,r=g(function(){var t=[],r=0,i=1;h(e,!1,function(e){var l=r++,u=!1;t.push(void 0),i++,o.resolve(e).then(function(e){u||(u=!0,t[l]=e,--i||n(t))},s)}),--i||n(t)});return r.e&&s(r.v),t.promise},race:function(e){var o=this,t=B(o),n=t.reject,s=g(function(){h(e,!1,function(e){o.resolve(e).then(t.resolve,n)})});return s.e&&n(s.v),t.promise}})},"./node_modules/core-js/modules/es6.reflect.apply.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***! \***********************************************************/ @@ -943,7 +947,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!***************************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.construct.js ***! \***************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_bind */"./node_modules/core-js/modules/_bind.js"),c=(t(/*! ./_global */"./node_modules/core-js/modules/_global.js").Reflect||{}).construct,a=u(function(){function e(){}return!(c(function(){},[],e)instanceof e)}),f=!u(function(){c(function(){})});n(n.S+n.F*(a||f),"Reflect",{construct:function(e,o){r(e),i(o);var t=arguments.length<3?e:r(arguments[2]);if(f&&!a)return c(e,o,t);if(e==t){switch(o.length){case 0:return new e;case 1:return new e(o[0]);case 2:return new e(o[0],o[1]);case 3:return new e(o[0],o[1],o[2]);case 4:return new e(o[0],o[1],o[2],o[3])}var n=[null];return n.push.apply(n,o),new(d.apply(e,n))}var u=t.prototype,m=s(l(u)?u:Object.prototype),p=Function.apply.call(e,m,o);return l(p)?p:m}})},"./node_modules/core-js/modules/es6.reflect.define-property.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),r=t(/*! ./_a-function */"./node_modules/core-js/modules/_a-function.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),d=t(/*! ./_bind */"./node_modules/core-js/modules/_bind.js"),a=(t(/*! ./_global */"./node_modules/core-js/modules/_global.js").Reflect||{}).construct,c=u(function(){function e(){}return!(a(function(){},[],e)instanceof e)}),f=!u(function(){a(function(){})});n(n.S+n.F*(c||f),"Reflect",{construct:function(e,o){r(e),i(o);var t=arguments.length<3?e:r(arguments[2]);if(f&&!c)return a(e,o,t);if(e==t){switch(o.length){case 0:return new e;case 1:return new e(o[0]);case 2:return new e(o[0],o[1]);case 3:return new e(o[0],o[1],o[2]);case 4:return new e(o[0],o[1],o[2],o[3])}var n=[null];return n.push.apply(n,o),new(d.apply(e,n))}var u=t.prototype,m=s(l(u)?u:Object.prototype),p=Function.apply.call(e,m,o);return l(p)?p:m}})},"./node_modules/core-js/modules/es6.reflect.define-property.js": /*!*********************************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.define-property.js ***! \*********************************************************************/ @@ -967,7 +971,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.get.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),s=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js");i(i.S,"Reflect",{get:function e(o,t){var i,d,c=arguments.length<3?o:arguments[2];return u(o)===c?o[t]:(i=n.f(o,t))?r(i,"value")?i.value:void 0!==i.get?i.get.call(c):void 0:l(d=s(o))?e(d,t,c):void 0}})},"./node_modules/core-js/modules/es6.reflect.has.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),s=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),r=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),u=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js");i(i.S,"Reflect",{get:function e(o,t){var i,d,a=arguments.length<3?o:arguments[2];return u(o)===a?o[t]:(i=n.f(o,t))?r(i,"value")?i.value:void 0!==i.get?i.get.call(a):void 0:l(d=s(o))?e(d,t,a):void 0}})},"./node_modules/core-js/modules/es6.reflect.has.js": /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.has.js ***! \*********************************************************/ @@ -991,11 +995,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./node_modules/core-js/modules/es6.reflect.set.js ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),s=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),r=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),i=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),d=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),c=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js");l(l.S,"Reflect",{set:function e(o,t,l){var a,f,m=arguments.length<4?o:arguments[3],p=s.f(d(o),t);if(!p){if(c(f=r(o)))return e(f,t,l,m);p=u(0)}if(i(p,"value")){if(!1===p.writable||!c(m))return!1;if(a=s.f(m,t)){if(a.get||a.set||!1===a.writable)return!1;a.value=l,n.f(m,t,a)}else n.f(m,t,u(0,l));return!0}return void 0!==p.set&&(p.set.call(m,l),!0)}})},"./node_modules/core-js/modules/es6.regexp.constructor.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),s=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),r=t(/*! ./_object-gpo */"./node_modules/core-js/modules/_object-gpo.js"),i=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),l=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),u=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),d=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),a=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js");l(l.S,"Reflect",{set:function e(o,t,l){var c,f,m=arguments.length<4?o:arguments[3],p=s.f(d(o),t);if(!p){if(a(f=r(o)))return e(f,t,l,m);p=u(0)}if(i(p,"value")){if(!1===p.writable||!a(m))return!1;if(c=s.f(m,t)){if(c.get||c.set||!1===c.writable)return!1;c.value=l,n.f(m,t,c)}else n.f(m,t,u(0,l));return!0}return void 0!==p.set&&(p.set.call(m,l),!0)}})},"./node_modules/core-js/modules/es6.regexp.constructor.js": /*!****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***! \****************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),r=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,i=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,l=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),u=t(/*! ./_flags */"./node_modules/core-js/modules/_flags.js"),d=n.RegExp,c=d,a=d.prototype,f=/a/g,m=/a/g,p=new d(f)!==f;if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")&&(!p||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return m[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("match")]=!1,d(f)!=f||d(m)==m||"/a/i"!=d(f,"i")}))){d=function(e,o){var t=this instanceof d,n=l(e),r=void 0===o;return!t&&n&&e.constructor===d&&r?e:s(p?new c(n&&!r?e.source:e,o):c((n=e instanceof d)?e.source:e,n&&r?u.call(e):o),t?this:a,d)};for(var h=function(e){e in d||r(d,e,{configurable:!0,get:function(){return c[e]},set:function(o){c[e]=o}})},j=i(c),_=0;j.length>_;)h(j[_++]);a.constructor=d,d.prototype=a,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"RegExp",d)}t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("RegExp")},"./node_modules/core-js/modules/es6.regexp.flags.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_inherit-if-required */"./node_modules/core-js/modules/_inherit-if-required.js"),r=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js").f,i=t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f,l=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),u=t(/*! ./_flags */"./node_modules/core-js/modules/_flags.js"),d=n.RegExp,a=d,c=d.prototype,f=/a/g,m=/a/g,p=new d(f)!==f;if(t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js")&&(!p||t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return m[t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js")("match")]=!1,d(f)!=f||d(m)==m||"/a/i"!=d(f,"i")}))){d=function(e,o){var t=this instanceof d,n=l(e),r=void 0===o;return!t&&n&&e.constructor===d&&r?e:s(p?new a(n&&!r?e.source:e,o):a((n=e instanceof d)?e.source:e,n&&r?u.call(e):o),t?this:c,d)};for(var h=function(e){e in d||r(d,e,{configurable:!0,get:function(){return a[e]},set:function(o){a[e]=o}})},j=i(a),_=0;j.length>_;)h(j[_++]);c.constructor=d,d.prototype=c,t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js")(n,"RegExp",d)}t(/*! ./_set-species */"./node_modules/core-js/modules/_set-species.js")("RegExp")},"./node_modules/core-js/modules/es6.regexp.flags.js": /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***! \**********************************************************/ @@ -1015,7 +1019,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.split.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){t(/*! ./_fix-re-wks */"./node_modules/core-js/modules/_fix-re-wks.js")("split",2,function(e,o,n){"use strict";var s=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),r=n,i=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var l=void 0===/()??/.exec("")[1];n=function(e,o){var t=String(this);if(void 0===e&&0===o)return[];if(!s(e))return r.call(t,e,o);var n,u,d,c,a,f=[],m=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,h=void 0===o?4294967295:o>>>0,j=new RegExp(e.source,m+"g");for(l||(n=new RegExp("^"+j.source+"$(?!\\s)",m));(u=j.exec(t))&&!((d=u.index+u[0].length)>p&&(f.push(t.slice(p,u.index)),!l&&u.length>1&&u[0].replace(n,function(){for(a=1;a1&&u.index=h));)j.lastIndex===u.index&&j.lastIndex++;return p===t.length?!c&&j.test("")||f.push(""):f.push(t.slice(p)),f.length>h?f.slice(0,h):f}}else"0".split(void 0,0).length&&(n=function(e,o){return void 0===e&&0===o?[]:r.call(this,e,o)});return[function(t,s){var r=e(this),i=void 0==t?void 0:t[o];return void 0!==i?i.call(t,r,s):n.call(String(r),t,s)},n]})},"./node_modules/core-js/modules/es6.regexp.to-string.js": +/*! no static exports found */function(e,o,t){t(/*! ./_fix-re-wks */"./node_modules/core-js/modules/_fix-re-wks.js")("split",2,function(e,o,n){"use strict";var s=t(/*! ./_is-regexp */"./node_modules/core-js/modules/_is-regexp.js"),r=n,i=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var l=void 0===/()??/.exec("")[1];n=function(e,o){var t=String(this);if(void 0===e&&0===o)return[];if(!s(e))return r.call(t,e,o);var n,u,d,a,c,f=[],m=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,h=void 0===o?4294967295:o>>>0,j=new RegExp(e.source,m+"g");for(l||(n=new RegExp("^"+j.source+"$(?!\\s)",m));(u=j.exec(t))&&!((d=u.index+u[0].length)>p&&(f.push(t.slice(p,u.index)),!l&&u.length>1&&u[0].replace(n,function(){for(c=1;c1&&u.index=h));)j.lastIndex===u.index&&j.lastIndex++;return p===t.length?!a&&j.test("")||f.push(""):f.push(t.slice(p)),f.length>h?f.slice(0,h):f}}else"0".split(void 0,0).length&&(n=function(e,o){return void 0===e&&0===o?[]:r.call(this,e,o)});return[function(t,s){var r=e(this),i=void 0==t?void 0:t[o];return void 0!==i?i.call(t,r,s):n.call(String(r),t,s)},n]})},"./node_modules/core-js/modules/es6.regexp.to-string.js": /*!**************************************************************!*\ !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***! \**************************************************************/ @@ -1115,11 +1119,11 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!****************************************************!*\ !*** ./node_modules/core-js/modules/es6.symbol.js ***! \****************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),u=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),c=t(/*! ./_shared */"./node_modules/core-js/modules/_shared.js"),a=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),f=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),m=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),p=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),h=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),j=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),_=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),v=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),b=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),g=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),y=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/modules/_object-gopn-ext.js"),E=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),S=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),T=E.f,B=S.f,O=w.f,N=n.Symbol,I=n.JSON,A=I&&I.stringify,M=m("_hidden"),L=m("toPrimitive"),P={}.propertyIsEnumerable,R=c("symbol-registry"),D=c("symbols"),F=c("op-symbols"),U=Object.prototype,z="function"==typeof N,H=n.QObject,q=!H||!H.prototype||!H.prototype.findChild,G=r&&d(function(){return 7!=x(B({},"a",{get:function(){return B(this,"a",{value:7}).a}})).a})?function(e,o,t){var n=T(U,o);n&&delete U[o],B(e,o,t),n&&e!==U&&B(U,o,n)}:B,W=function(e){var o=D[e]=x(N.prototype);return o._k=e,o},V=z&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},K=function(e,o,t){return e===U&&K(F,o,t),v(e),o=y(o,!0),v(t),s(D,o)?(t.enumerable?(s(e,M)&&e[M][o]&&(e[M][o]=!1),t=x(t,{enumerable:k(0,!1)})):(s(e,M)||B(e,M,k(1,{})),e[M][o]=!0),G(e,o,t)):B(e,o,t)},Y=function(e,o){v(e);for(var t,n=j(o=g(o)),s=0,r=n.length;r>s;)K(e,t=n[s++],o[t]);return e},X=function(e){var o=P.call(this,e=y(e,!0));return!(this===U&&s(D,e)&&!s(F,e))&&(!(o||!s(this,e)||!s(D,e)||s(this,M)&&this[M][e])||o)},J=function(e,o){if(e=g(e),o=y(o,!0),e!==U||!s(D,o)||s(F,o)){var t=T(e,o);return!t||!s(D,o)||s(e,M)&&e[M][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=O(g(e)),n=[],r=0;t.length>r;)s(D,o=t[r++])||o==M||o==u||n.push(o);return n},Z=function(e){for(var o,t=e===U,n=O(t?F:g(e)),r=[],i=0;n.length>i;)!s(D,o=n[i++])||t&&!s(U,o)||r.push(D[o]);return r};z||(l((N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(F,t),s(this,M)&&s(this[M],e)&&(this[M][e]=!1),G(this,e,k(1,t))};return r&&q&&G(U,e,{configurable:!0,set:o}),W(e)}).prototype,"toString",function(){return this._k}),E.f=J,S.f=K,t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f=X,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&l(U,"propertyIsEnumerable",X,!0),p.f=function(e){return W(m(e))}),i(i.G+i.W+i.F*!z,{Symbol:N});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)m(Q[ee++]);for(var oe=C(m.store),te=0;oe.length>te;)h(oe[te++]);i(i.S+i.F*!z,"Symbol",{for:function(e){return s(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(!V(e))throw TypeError(e+" is not a symbol!");for(var o in R)if(R[o]===e)return o},useSetter:function(){q=!0},useSimple:function(){q=!1}}),i(i.S+i.F*!z,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),I&&i(i.S+i.F*(!z||d(function(){var e=N();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,n=[e],s=1;arguments.length>s;)n.push(arguments[s++]);if(t=o=n[1],(b(o)||void 0!==e)&&!V(e))return _(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!V(o))return o}),n[1]=o,A.apply(I,n)}}),N.prototype[L]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(N.prototype,L,N.prototype.valueOf),a(N,"Symbol"),a(Math,"Math",!0),a(n.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": +/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),s=t(/*! ./_has */"./node_modules/core-js/modules/_has.js"),r=t(/*! ./_descriptors */"./node_modules/core-js/modules/_descriptors.js"),i=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),l=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),u=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js").KEY,d=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),a=t(/*! ./_shared */"./node_modules/core-js/modules/_shared.js"),c=t(/*! ./_set-to-string-tag */"./node_modules/core-js/modules/_set-to-string-tag.js"),f=t(/*! ./_uid */"./node_modules/core-js/modules/_uid.js"),m=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),p=t(/*! ./_wks-ext */"./node_modules/core-js/modules/_wks-ext.js"),h=t(/*! ./_wks-define */"./node_modules/core-js/modules/_wks-define.js"),j=t(/*! ./_enum-keys */"./node_modules/core-js/modules/_enum-keys.js"),_=t(/*! ./_is-array */"./node_modules/core-js/modules/_is-array.js"),b=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),v=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),g=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),y=t(/*! ./_to-primitive */"./node_modules/core-js/modules/_to-primitive.js"),k=t(/*! ./_property-desc */"./node_modules/core-js/modules/_property-desc.js"),x=t(/*! ./_object-create */"./node_modules/core-js/modules/_object-create.js"),w=t(/*! ./_object-gopn-ext */"./node_modules/core-js/modules/_object-gopn-ext.js"),E=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),S=t(/*! ./_object-dp */"./node_modules/core-js/modules/_object-dp.js"),C=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),T=E.f,O=S.f,B=w.f,I=n.Symbol,N=n.JSON,A=N&&N.stringify,L=m("_hidden"),M=m("toPrimitive"),P={}.propertyIsEnumerable,R=a("symbol-registry"),D=a("symbols"),F=a("op-symbols"),U=Object.prototype,z="function"==typeof I,H=n.QObject,G=!H||!H.prototype||!H.prototype.findChild,q=r&&d(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(e,o,t){var n=T(U,o);n&&delete U[o],O(e,o,t),n&&e!==U&&O(U,o,n)}:O,W=function(e){var o=D[e]=x(I.prototype);return o._k=e,o},V=z&&"symbol"==typeof I.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof I},K=function(e,o,t){return e===U&&K(F,o,t),b(e),o=y(o,!0),b(t),s(D,o)?(t.enumerable?(s(e,L)&&e[L][o]&&(e[L][o]=!1),t=x(t,{enumerable:k(0,!1)})):(s(e,L)||O(e,L,k(1,{})),e[L][o]=!0),q(e,o,t)):O(e,o,t)},Y=function(e,o){b(e);for(var t,n=j(o=g(o)),s=0,r=n.length;r>s;)K(e,t=n[s++],o[t]);return e},X=function(e){var o=P.call(this,e=y(e,!0));return!(this===U&&s(D,e)&&!s(F,e))&&(!(o||!s(this,e)||!s(D,e)||s(this,L)&&this[L][e])||o)},J=function(e,o){if(e=g(e),o=y(o,!0),e!==U||!s(D,o)||s(F,o)){var t=T(e,o);return!t||!s(D,o)||s(e,L)&&e[L][o]||(t.enumerable=!0),t}},$=function(e){for(var o,t=B(g(e)),n=[],r=0;t.length>r;)s(D,o=t[r++])||o==L||o==u||n.push(o);return n},Z=function(e){for(var o,t=e===U,n=B(t?F:g(e)),r=[],i=0;n.length>i;)!s(D,o=n[i++])||t&&!s(U,o)||r.push(D[o]);return r};z||(l((I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),o=function(t){this===U&&o.call(F,t),s(this,L)&&s(this[L],e)&&(this[L][e]=!1),q(this,e,k(1,t))};return r&&G&&q(U,e,{configurable:!0,set:o}),W(e)}).prototype,"toString",function(){return this._k}),E.f=J,S.f=K,t(/*! ./_object-gopn */"./node_modules/core-js/modules/_object-gopn.js").f=w.f=$,t(/*! ./_object-pie */"./node_modules/core-js/modules/_object-pie.js").f=X,t(/*! ./_object-gops */"./node_modules/core-js/modules/_object-gops.js").f=Z,r&&!t(/*! ./_library */"./node_modules/core-js/modules/_library.js")&&l(U,"propertyIsEnumerable",X,!0),p.f=function(e){return W(m(e))}),i(i.G+i.W+i.F*!z,{Symbol:I});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)m(Q[ee++]);for(var oe=C(m.store),te=0;oe.length>te;)h(oe[te++]);i(i.S+i.F*!z,"Symbol",{for:function(e){return s(R,e+="")?R[e]:R[e]=I(e)},keyFor:function(e){if(!V(e))throw TypeError(e+" is not a symbol!");for(var o in R)if(R[o]===e)return o},useSetter:function(){G=!0},useSimple:function(){G=!1}}),i(i.S+i.F*!z,"Object",{create:function(e,o){return void 0===o?x(e):Y(x(e),o)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:$,getOwnPropertySymbols:Z}),N&&i(i.S+i.F*(!z||d(function(){var e=I();return"[null]"!=A([e])||"{}"!=A({a:e})||"{}"!=A(Object(e))})),"JSON",{stringify:function(e){for(var o,t,n=[e],s=1;arguments.length>s;)n.push(arguments[s++]);if(t=o=n[1],(v(o)||void 0!==e)&&!V(e))return _(o)||(o=function(e,o){if("function"==typeof t&&(o=t.call(this,e,o)),!V(o))return o}),n[1]=o,A.apply(N,n)}}),I.prototype[M]||t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js")(I.prototype,M,I.prototype.valueOf),c(I,"Symbol"),c(Math,"Math",!0),c(n.JSON,"JSON",!0)},"./node_modules/core-js/modules/es6.typed.array-buffer.js": /*!****************************************************************!*\ !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***! \****************************************************************/ -/*! no static exports found */function(e,o,t){"use strict";var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_typed */"./node_modules/core-js/modules/_typed.js"),r=t(/*! ./_typed-buffer */"./node_modules/core-js/modules/_typed-buffer.js"),i=t(/*! ./_an-object */"./node_modules/core-js/modules/_an-object.js"),l=t(/*! ./_to-absolute-index */"./node_modules/core-js/modules/_to-absolute-index.js"),u=t(/*! ./_to-length */"./node_modules/core-js/modules/_to-length.js"),d=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),c=t(/*! ./_global */"./node_modules/core-js/modules/_global.js").ArrayBuffer,a=t(/*! ./_species-constructor */"./node_modules/core-js/modules/_species-constructor.js"),f=r.ArrayBuffer,m=r.DataView,p=s.ABV&&c.isView,h=f.prototype.slice,j=s.VIEW;n(n.G+n.W+n.F*(c!==f),{ArrayBuffer:f}),n(n.S+n.F*!s.CONSTR,"ArrayBuffer",{isView:function(e){return p&&p(e)||d(e)&&j in e}}),n(n.P+n.U+n.F*t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js")(function(){return!new f(2).slice(1,void 0).byteLength}),"ArrayBuffer",{slice:function(e,o){if(void 0!==h&&void 0===o)return h.call(i(this),e);for(var t=i(this).byteLength,n=l(e,t),s=l(void 0===o?t:o,t),r=new(a(this,f))(u(s-n)),d=new m(this),c=new m(r),p=0;n0?arguments[0]:void 0)}},_={get:function(e){if(d(e)){var o=f(e);return!0===o?p(a(this,"WeakMap")).get(e):o?o[this._i]:void 0}},set:function(e,o){return u.def(a(this,"WeakMap"),e,o)}},v=e.exports=t(/*! ./_collection */"./node_modules/core-js/modules/_collection.js")("WeakMap",j,_,u,!0,!0);c(function(){return 7!=(new v).set((Object.freeze||Object)(h),7).get(h)})&&(l((n=u.getConstructor(j,"WeakMap")).prototype,_),i.NEED=!0,s(["delete","has","get","set"],function(e){var o=v.prototype,t=o[e];r(o,e,function(o,s){if(d(o)&&!m(o)){this._f||(this._f=new n);var r=this._f[e](o,s);return"set"==e?this:r}return t.call(this,o,s)})}))},"./node_modules/core-js/modules/es6.weak-set.js": +/*! no static exports found */function(e,o,t){"use strict";var n,s=t(/*! ./_array-methods */"./node_modules/core-js/modules/_array-methods.js")(0),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_meta */"./node_modules/core-js/modules/_meta.js"),l=t(/*! ./_object-assign */"./node_modules/core-js/modules/_object-assign.js"),u=t(/*! ./_collection-weak */"./node_modules/core-js/modules/_collection-weak.js"),d=t(/*! ./_is-object */"./node_modules/core-js/modules/_is-object.js"),a=t(/*! ./_fails */"./node_modules/core-js/modules/_fails.js"),c=t(/*! ./_validate-collection */"./node_modules/core-js/modules/_validate-collection.js"),f=i.getWeak,m=Object.isExtensible,p=u.ufstore,h={},j=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},_={get:function(e){if(d(e)){var o=f(e);return!0===o?p(c(this,"WeakMap")).get(e):o?o[this._i]:void 0}},set:function(e,o){return u.def(c(this,"WeakMap"),e,o)}},b=e.exports=t(/*! ./_collection */"./node_modules/core-js/modules/_collection.js")("WeakMap",j,_,u,!0,!0);a(function(){return 7!=(new b).set((Object.freeze||Object)(h),7).get(h)})&&(l((n=u.getConstructor(j,"WeakMap")).prototype,_),i.NEED=!0,s(["delete","has","get","set"],function(e){var o=b.prototype,t=o[e];r(o,e,function(o,s){if(d(o)&&!m(o)){this._f||(this._f=new n);var r=this._f[e](o,s);return"set"==e?this:r}return t.call(this,o,s)})}))},"./node_modules/core-js/modules/es6.weak-set.js": /*!******************************************************!*\ !*** ./node_modules/core-js/modules/es6.weak-set.js ***! \******************************************************/ @@ -1179,7 +1183,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************************************!*\ !*** ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js ***! \*********************************************************************************/ -/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_own-keys */"./node_modules/core-js/modules/_own-keys.js"),r=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),i=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),l=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){for(var o,t,n=r(e),u=i.f,d=s(n),c={},a=0;d.length>a;)void 0!==(t=u(n,o=d[a++]))&&l(c,o,t);return c}})},"./node_modules/core-js/modules/es7.object.values.js": +/*! no static exports found */function(e,o,t){var n=t(/*! ./_export */"./node_modules/core-js/modules/_export.js"),s=t(/*! ./_own-keys */"./node_modules/core-js/modules/_own-keys.js"),r=t(/*! ./_to-iobject */"./node_modules/core-js/modules/_to-iobject.js"),i=t(/*! ./_object-gopd */"./node_modules/core-js/modules/_object-gopd.js"),l=t(/*! ./_create-property */"./node_modules/core-js/modules/_create-property.js");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){for(var o,t,n=r(e),u=i.f,d=s(n),a={},c=0;d.length>c;)void 0!==(t=u(n,o=d[c++]))&&l(a,o,t);return a}})},"./node_modules/core-js/modules/es7.object.values.js": /*!***********************************************************!*\ !*** ./node_modules/core-js/modules/es7.object.values.js ***! \***********************************************************/ @@ -1203,7 +1207,7 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!**********************************************************!*\ !*** ./node_modules/core-js/modules/web.dom.iterable.js ***! \**********************************************************/ -/*! no static exports found */function(e,o,t){for(var n=t(/*! ./es6.array.iterator */"./node_modules/core-js/modules/es6.array.iterator.js"),s=t(/*! ./_object-keys */"./node_modules/core-js/modules/_object-keys.js"),r=t(/*! ./_redefine */"./node_modules/core-js/modules/_redefine.js"),i=t(/*! ./_global */"./node_modules/core-js/modules/_global.js"),l=t(/*! ./_hide */"./node_modules/core-js/modules/_hide.js"),u=t(/*! ./_iterators */"./node_modules/core-js/modules/_iterators.js"),d=t(/*! ./_wks */"./node_modules/core-js/modules/_wks.js"),c=d("iterator"),a=d("toStringTag"),f=u.Array,m={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=s(m),h=0;h0;)e.insertBefore(n.childNodes[0],n);e.removeChild(n),this._sanitize(e);break}for(var p=0;p0;)o.insertBefore(u.childNodes[0],u);o.removeChild(u),this._sanitize(e,o);break}for(var h=0;h=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),B(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;B(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:N(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new O(n||[]);return r._invoke=function(e,o,t){var n=a;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return I()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===a)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},i)}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function B(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function N(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0;--r){var i=this.tryEntries[r],l=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var u=s.call(i,"catchLoc"),d=s.call(i,"finallyLoc");if(u&&d){if(this.prev=0;--t){var n=this.tryEntries[t];if(n.tryLoc<=this.prev&&s.call(n,"finallyLoc")&&this.prev=0;--o){var t=this.tryEntries[o];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),O(t),h}},catch:function(e){for(var o=this.tryEntries.length-1;o>=0;--o){var t=this.tryEntries[o];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var s=n.arg;O(t)}return s}}throw new Error("illegal catch attempt")},delegateYield:function(e,o,n){return this.delegate={iterator:I(e),resultName:o,nextLoc:n},"next"===this.method&&(this.arg=t),h}}}function g(e,o,t,n){var s=o&&o.prototype instanceof k?o:k,r=Object.create(s.prototype),i=new B(n||[]);return r._invoke=function(e,o,t){var n=c;return function(s,r){if(n===m)throw new Error("Generator is already running");if(n===p){if("throw"===s)throw r;return N()}for(t.method=s,t.arg=r;;){var i=t.delegate;if(i){var l=C(i,t);if(l){if(l===h)continue;return l}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(n===c)throw n=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);n=m;var u=y(e,o,t);if("normal"===u.type){if(n=t.done?p:f,u.arg===h)continue;return{value:u.arg,done:t.done}}"throw"===u.type&&(n=p,t.method="throw",t.arg=u.arg)}}}(e,t,i),r}function y(e,o,t){try{return{type:"normal",arg:e.call(o,t)}}catch(e){return{type:"throw",arg:e}}}function k(){}function x(){}function w(){}function E(e){["next","throw","return"].forEach(function(o){e[o]=function(e){return this._invoke(o,e)}})}function S(e){var o;this._invoke=function(t,n){function r(){return new Promise(function(o,r){!function o(t,n,r,i){var l=y(e[t],e,n);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==typeof d&&s.call(d,"__await")?Promise.resolve(d.__await).then(function(e){o("next",e,r,i)},function(e){o("throw",e,r,i)}):Promise.resolve(d).then(function(e){u.value=e,r(u)},i)}i(l.arg)}(t,n,o,r)})}return o=o?o.then(r,r):r()}}function C(e,o){var n=e.iterator[o.method];if(n===t){if(o.delegate=null,"throw"===o.method){if(e.iterator.return&&(o.method="return",o.arg=t,C(e,o),"throw"===o.method))return h;o.method="throw",o.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var s=y(n,e.iterator,o.arg);if("throw"===s.type)return o.method="throw",o.arg=s.arg,o.delegate=null,h;var r=s.arg;return r?r.done?(o[e.resultName]=r.value,o.next=e.nextLoc,"return"!==o.method&&(o.method="next",o.arg=t),o.delegate=null,h):r:(o.method="throw",o.arg=new TypeError("iterator result is not an object"),o.delegate=null,h)}function T(e){var o={tryLoc:e[0]};1 in e&&(o.catchLoc=e[1]),2 in e&&(o.finallyLoc=e[2],o.afterLoc=e[3]),this.tryEntries.push(o)}function O(e){var o=e.completion||{};o.type="normal",delete o.arg,e.completion=o}function B(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(T,this),this.reset(!0)}function I(e){if(e){var o=e[i];if(o)return o.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n0?Math.abs(l.top)-Math.abs(u.top):window.innerHeight-Math.abs(l.top)+Math.abs(u.top),window.scrollBy(0,-1*s),this.api.blocks.swap(n,n-1)}}]),e}();s.default=u,u.displayName="MoveUpTune",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! dom */"./src/components/dom.ts"))},"./src/components/block.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i){"use strict";var l=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=l(s),r=l(r),i=l(i);var u=function(){function e(o){var t=o.api;(0,s.default)(this,e),this.CSS={button:"ce-settings__button",wrapper:"ce-tune-move-up",animation:"wobble"},this.api=t}return(0,r.default)(e,[{key:"render",value:function(){var e=this,o=i.default.make("div",[this.CSS.button,this.CSS.wrapper],{});return o.appendChild(i.default.svg("arrow-up",14,14)),this.api.listeners.on(o,"click",function(t){return e.handleClick(t,o)},!1),o}},{key:"handleClick",value:function(e,o){var t=this,n=this.api.blocks.getCurrentBlockIndex();if(0===n)return o.classList.add(this.CSS.animation),void window.setTimeout(function(){o.classList.remove(t.CSS.animation)},500);var s,r=this.api.blocks.getBlockByIndex(n),i=this.api.blocks.getBlockByIndex(n-1),l=r.getBoundingClientRect(),u=i.getBoundingClientRect();s=u.top>0?Math.abs(l.top)-Math.abs(u.top):window.innerHeight-Math.abs(l.top)+Math.abs(u.top),window.scrollBy(0,-1*s),this.api.blocks.swap(n,n-1)}}]),e}();n.default=u,u.displayName="MoveUpTune",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/block.ts": /*!*********************************!*\ !*** ./src/components/block.ts ***! \*********************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts"),t(/*! ./block-tunes/block-tune-move-up */"./src/components/block-tunes/block-tune-move-up.ts"),t(/*! ./block-tunes/block-tune-delete */"./src/components/block-tunes/block-tune-delete.ts"),t(/*! ./block-tunes/block-tune-move-down */"./src/components/block-tunes/block-tune-move-down.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(){function e(o,t,n,s,r){(0,i.default)(this,e),this.inputIndex=0,this.name=o,this.tool=t,this.class=n,this.settings=s,this.api=r,this.holder=this.compose(),this.tunes=this.makeTunes()}return(0,l.default)(e,[{key:"call",value:function(e,o){this.tool[e]&&this.tool[e]instanceof Function&&this.tool[e].call(this.tool,o)}},{key:"mergeWith",value:function(e){var o=this;return Promise.resolve().then(function(){o.tool.merge(e)})}},{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tool.save(this.pluginsContent);case 2:return o=e.sent,t=window.performance.now(),e.abrupt("return",Promise.resolve(o).then(function(e){return n=window.performance.now(),{tool:r.name,data:e,time:n-t}}).catch(function(e){d.default.log("Saving proccess for ".concat(this.tool.name," tool failed due to the ").concat(e),"log","red")}));case 5:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"validateData",value:function(e){var o=!0;return this.tool.validate instanceof Function&&(o=this.tool.validate(e)),!!o&&e}},{key:"makeTunes",value:function(){var e=this,o=[c.default,a.default,f.default];return o.map(function(o){return new o({api:e.api,settings:e.settings})})}},{key:"renderTunes",value:function(){var e=document.createDocumentFragment();return this.tunes.forEach(function(o){u.default.append(e,o.render())}),e}},{key:"compose",value:function(){var o=u.default.make("div",e.CSS.wrapper),t=u.default.make("div",e.CSS.content),n=this.tool.render();return t.appendChild(n),o.appendChild(t),o}},{key:"inputs",get:function(){var e=this.holder,o="[contenteditable], textarea, input, "+["text","password","email","number","search","tel","url"].map(function(e){return'input[type="'.concat(e,'"]')}).join(", "),t=d.default.array(e.querySelectorAll(o));return this.inputIndex>t.length-1&&(this.inputIndex=t.length-1),t}},{key:"currentInput",get:function(){return this.inputs[this.inputIndex]},set:function(e){var o=this.inputs.findIndex(function(o){return o===e||o.contains(e)});-1!==o&&(this.inputIndex=o)}},{key:"firstInput",get:function(){return this.inputs[0]}},{key:"lastInput",get:function(){var e=this.inputs;return e[e.length-1]}},{key:"nextInput",get:function(){return this.inputs[this.inputIndex+1]}},{key:"previousInput",get:function(){return this.inputs[this.inputIndex-1]}},{key:"pluginsContent",get:function(){var o=this.holder.querySelector(".".concat(e.CSS.content));return o&&o.childNodes.length?o.childNodes[0]:null}},{key:"data",get:function(){return this.save()}},{key:"sanitize",get:function(){return this.tool.sanitize}},{key:"mergeable",get:function(){return"function"==typeof this.tool.merge}},{key:"isEmpty",get:function(){if(this.class.contentless)return!1;var e=u.default.isEmpty(this.pluginsContent),o=!this.hasMedia;return e&&o}},{key:"hasMedia",get:function(){return!!this.holder.querySelector(["img","iframe","video","audio","source","input","textarea","twitterwidget"].join(","))}},{key:"focused",set:function(o){!0!==o||this.isEmpty?this.holder.classList.remove(e.CSS.focused):this.holder.classList.add(e.CSS.focused)}},{key:"selected",set:function(o){o?this.holder.classList.add(e.CSS.selected):this.holder.classList.remove(e.CSS.selected)},get:function(){return this.holder.classList.contains(e.CSS.selected)}},{key:"stretched",set:function(o){this.holder.classList.toggle(e.CSS.wrapperStretched,o)}},{key:"dropTarget",set:function(o){this.holder.classList.toggle(e.CSS.dropTarget,o)}}],[{key:"CSS",get:function(){return{wrapper:"ce-block",wrapperStretched:"ce-block--stretched",content:"ce-block__content",focused:"ce-block--focused",selected:"ce-block--selected",dropTarget:"ce-block--drop-target"}}}]),e}();n.default=p,p.displayName="Block",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/core.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts"),t(/*! ./block-tunes/block-tune-move-up */"./src/components/block-tunes/block-tune-move-up.ts"),t(/*! ./block-tunes/block-tune-delete */"./src/components/block-tunes/block-tune-delete.ts"),t(/*! ./block-tunes/block-tune-move-down */"./src/components/block-tunes/block-tune-move-down.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(){function e(o,t,n,s,r){(0,i.default)(this,e),this.inputIndex=0,this.name=o,this.tool=t,this.class=n,this.settings=s,this.api=r,this.holder=this.compose(),this.tunes=this.makeTunes()}return(0,l.default)(e,[{key:"call",value:function(e,o){this.tool[e]&&this.tool[e]instanceof Function&&this.tool[e].call(this.tool,o)}},{key:"mergeWith",value:function(){var e=(0,r.default)(s.default.mark(function e(o){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tool.merge(o);case 2:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.tool.save(this.pluginsContent);case 2:return o=e.sent,t=window.performance.now(),e.abrupt("return",Promise.resolve(o).then(function(e){return n=window.performance.now(),{tool:r.name,data:e,time:n-t}}).catch(function(e){d.default.log("Saving proccess for ".concat(r.name," tool failed due to the ").concat(e),"log","red")}));case 5:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"validateData",value:function(e){var o=!0;return this.tool.validate instanceof Function&&(o=this.tool.validate(e)),!!o&&e}},{key:"makeTunes",value:function(){var e=this,o=[a.default,c.default,f.default];return o.map(function(o){return new o({api:e.api,settings:e.settings})})}},{key:"renderTunes",value:function(){var e=document.createDocumentFragment();return this.tunes.forEach(function(o){u.default.append(e,o.render())}),e}},{key:"compose",value:function(){var o=u.default.make("div",e.CSS.wrapper),t=u.default.make("div",e.CSS.content),n=this.tool.render();return t.appendChild(n),o.appendChild(t),o}},{key:"inputs",get:function(){var e=this.holder,o="[contenteditable], textarea, input, "+["text","password","email","number","search","tel","url"].map(function(e){return'input[type="'.concat(e,'"]')}).join(", "),t=d.default.array(e.querySelectorAll(o));return this.inputIndex>t.length-1&&(this.inputIndex=t.length-1),t}},{key:"currentInput",get:function(){return this.inputs[this.inputIndex]},set:function(e){var o=this.inputs.findIndex(function(o){return o===e||o.contains(e)});-1!==o&&(this.inputIndex=o)}},{key:"firstInput",get:function(){return this.inputs[0]}},{key:"lastInput",get:function(){var e=this.inputs;return e[e.length-1]}},{key:"nextInput",get:function(){return this.inputs[this.inputIndex+1]}},{key:"previousInput",get:function(){return this.inputs[this.inputIndex-1]}},{key:"pluginsContent",get:function(){var o=this.holder.querySelector(".".concat(e.CSS.content));return o&&o.childNodes.length?o.childNodes[0]:null}},{key:"data",get:function(){return this.save()}},{key:"sanitize",get:function(){return this.tool.sanitize}},{key:"mergeable",get:function(){return"function"==typeof this.tool.merge}},{key:"isEmpty",get:function(){if(this.class.contentless)return!1;var e=u.default.isEmpty(this.pluginsContent),o=!this.hasMedia;return e&&o}},{key:"hasMedia",get:function(){return!!this.holder.querySelector(["img","iframe","video","audio","source","input","textarea","twitterwidget"].join(","))}},{key:"focused",set:function(o){!0!==o||this.isEmpty?this.holder.classList.remove(e.CSS.focused):this.holder.classList.add(e.CSS.focused)}},{key:"selected",set:function(o){o?this.holder.classList.add(e.CSS.selected):this.holder.classList.remove(e.CSS.selected)},get:function(){return this.holder.classList.contains(e.CSS.selected)}},{key:"stretched",set:function(o){this.holder.classList.toggle(e.CSS.wrapperStretched,o)}},{key:"dropTarget",set:function(o){this.holder.classList.toggle(e.CSS.dropTarget,o)}}],[{key:"CSS",get:function(){return{wrapper:"ce-block",wrapperStretched:"ce-block--stretched",content:"ce-block__content",focused:"ce-block--focused",selected:"ce-block--selected",dropTarget:"ce-block--drop-target"}}}]),e}();n.default=p,p.displayName="Block",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/blocks.ts": +/*!**********************************!*\ + !*** ./src/components/blocks.ts ***! + \**********************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./utils */"./src/components/utils.ts"),t(/*! ./dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l){"use strict";var u=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=u(s),r=u(r),i=u(i),l=u(l);var d=function(){function e(o){(0,s.default)(this,e),this.blocks=[],this.workingArea=o}return(0,r.default)(e,[{key:"length",get:function(){return this.blocks.length}},{key:"array",get:function(){return this.blocks}},{key:"nodes",get:function(){return i.default.array(this.workingArea.children)}}],[{key:"set",value:function(e,o,t){return!isNaN(Number(o))&&(e.insert(o,t),!0)}},{key:"get",value:function(e,o){return isNaN(Number(o))?e[o]:e.get(o)}}]),(0,r.default)(e,[{key:"push",value:function(e){this.blocks.push(e),this.workingArea.appendChild(e.holder)}},{key:"swap",value:function(e,o){var t=this.blocks[o];l.default.swap(this.blocks[e].holder,t.holder),this.blocks[o]=this.blocks[e],this.blocks[e]=t}},{key:"insert",value:function(e,o){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.length){e>this.length&&(e=this.length),t&&this.blocks[e].holder.remove();var n=t?1:0;if(this.blocks.splice(e,n,o),e>0){var s=this.blocks[e-1];s.holder.insertAdjacentElement("afterend",o.holder)}else{var r=this.blocks[e+1];r?r.holder.insertAdjacentElement("beforebegin",o.holder):this.workingArea.appendChild(o.holder)}}else this.push(o)}},{key:"remove",value:function(e){isNaN(e)&&(e=this.length-1),this.blocks[e].holder.remove(),this.blocks.splice(e,1)}},{key:"removeAll",value:function(){this.workingArea.innerHTML="",this.blocks.length=0}},{key:"insertAfter",value:function(e,o){var t=this.blocks.indexOf(e);this.insert(t+1,o)}},{key:"get",value:function(e){return this.blocks[e]}},{key:"indexOf",value:function(e){return this.blocks.indexOf(e)}}]),e}();n.default=d,d.displayName="Blocks",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/core.ts": /*!********************************!*\ - !*** ./src/components/core.js ***! + !*** ./src/components/core.ts ***! \********************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=c(i),l=c(l),u=c(u),d=c(d);var a=["api-blocks.ts","api-caret.ts","api-events.ts","api-listener.ts","api-notifier.ts","api-sanitizer.ts","api-saver.ts","api-selection.ts","api-styles.ts","api-toolbar.ts","api.ts","block-events.ts","blockManager.js","blockSelection.ts","caret.js","dragNDrop.ts","events.js","listeners.js","modificationsObserver.ts","notifier.ts","paste.ts","renderer.js","sanitizer.ts","saver.ts","shortcuts.ts","toolbar-blockSettings.js","toolbar-inline.ts","toolbar-toolbox.js","toolbar.js","tools.js","ui.js"].map(function(e){return t("./src/components/modules sync [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$")("./"+e)}),f=function(){function e(o){var t,s,r=this;(0,u.default)(this,e),this.config={},this.moduleInstances={},this.isReady=new Promise(function(e,o){t=e,s=o}),Promise.resolve().then(function(){r.configuration=o}).then(function(){return r.validate()}).then(function(){return r.init()}).then(function(){return r.start()}).then(function(){n.log("I'm ready! (ノ◕ヮ◕)ノ*:・゚✧"),setTimeout(function(){t()},500)}).catch(function(e){n.log("CodeX Editor does not ready because of ".concat(e),"error"),s(e)})}return(0,d.default)(e,[{key:"validate",value:function(){if(!this.config.holderId)return Promise.reject("«holderId» param must being not empty");if(!s.get(this.config.holderId))return Promise.reject("element with ID «".concat(this.config.holderId,"» is missing. Pass correct holder's ID."));for(var e in this.config.tools){var o=this.config.tools[e];if(!n.isFunction(o)&&!n.isFunction(o.class))return Promise.reject("Tool «".concat(e,"» must be a constructor function or an object with that function in the «class» property"))}}},{key:"init",value:function(){this.constructModules(),this.configureModules()}},{key:"constructModules",value:function(){var e=this;a.forEach(function(o){try{e.moduleInstances[o.displayName]=new o({config:e.configuration})}catch(e){console.log("Module %o skipped because %o",o,e)}})}},{key:"configureModules",value:function(){for(var e in this.moduleInstances)this.moduleInstances[e].state=this.getModulesDiff(e)}},{key:"getModulesDiff",value:function(e){var o={};for(var t in this.moduleInstances)t!==e&&(o[t]=this.moduleInstances[t]);return o}},{key:"start",value:function(){var e=(0,l.default)(i.default.mark(function e(){var o,t=this;return i.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=["Tools","UI","BlockManager","Paste","DragNDrop","ModificationsObserver","BlockSelection"],e.next=3,o.reduce(function(e,o){return e.then((0,l.default)(i.default.mark(function e(){return i.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n.log("Preparing ".concat(o," module"),"time"),e.prev=1,e.next=4,t.moduleInstances[o].prepare();case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),n.log("Module ".concat(o," was skipped because of %o"),"warn",e.t0);case 9:n.log("Preparing ".concat(o," module"),"timeEnd");case 10:case"end":return e.stop()}},e,this,[[1,6]])})))},Promise.resolve());case 3:return e.abrupt("return",this.moduleInstances.Renderer.render(this.config.data.blocks));case 4:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"configuration",set:function(e){"string"!=typeof e&&void 0!==e||(e={holderId:e}),this.config.initialBlock=e.initialBlock||"paragraph";var o={type:this.config.initialBlock,data:{}};this.config.holderId=e.holderId||"codex-editor",this.config.placeholder=e.placeholder||"write your story...",this.config.sanitizer=e.sanitizer||{p:!0,b:!0,a:!0},this.config.hideToolbar=!!e.hideToolbar&&e.hideToolbar,this.config.tools=e.tools||{},this.config.data=e.data||{},this.config.onReady=e.onReady||function(){},this.config.onChange=e.onChange||function(){},n.isEmpty(this.config.data)?(this.config.data={},this.config.data.blocks=[o]):this.config.data.blocks&&0!==this.config.data.blocks.length||(this.config.data.blocks=[o])},get:function(){return this.config}}]),e}();r.default=f,f.displayName="Core",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! utils */"./src/components/utils.ts"),t(/*! dom */"./src/components/dom.ts"))},"./src/components/dom.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts"),t(/*! ./utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d);var c=t("./src/components/modules sync recursive ^\\.\\/.*$"),f=[];c.keys().forEach(function(e){e.match(/^\.\/[^_][\w/]*\.([tj])s$/)&&f.push(c(e))});var m=function(){function e(o){var t,n,l=this;(0,i.default)(this,e),this.moduleInstances={},this.isReady=new Promise(function(e,o){t=e,n=o}),Promise.resolve().then((0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l.configuration=o,e.next=3,l.validate();case 3:return e.next=5,l.init();case 5:return e.next=7,l.start();case 7:d.default.log("I'm ready! (ノ◕ヮ◕)ノ*:・゚✧"),setTimeout(function(){t()},500);case 9:case"end":return e.stop()}},e,this)}))).catch(function(e){d.default.log("CodeX Editor does not ready because of ".concat(e),"error"),n(e)})}return(0,l.default)(e,[{key:"validate",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.config.holderId){e.next=2;break}throw Error("«holderId» param must being not empty");case 2:if(u.default.get(this.config.holderId)){e.next=4;break}throw Error("element with ID «".concat(this.config.holderId,"» is missing. Pass correct holder's ID."));case 4:e.t0=s.default.keys(this.config.tools);case 5:if((e.t1=e.t0()).done){e.next=13;break}if(o=e.t1.value,!this.config.tools.hasOwnProperty(o)){e.next=11;break}if(t=this.config.tools[o],d.default.isFunction(t)||d.default.isFunction(t.class)){e.next=11;break}throw Error("Tool «".concat(o,"» must be a constructor function or an object with function in the «class» property"));case 11:e.next=5;break;case 13:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"init",value:function(){this.constructModules(),this.configureModules()}},{key:"start",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=["Tools","UI","BlockManager","Paste","DragNDrop","ModificationsObserver","BlockSelection"],e.next=3,o.reduce(function(e,o){return e.then((0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return d.default.log("Preparing ".concat(o," module"),"time"),e.prev=1,e.next=4,t.moduleInstances[o].prepare();case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),d.default.log("Module ".concat(o," was skipped because of %o"),"warn",e.t0);case 9:d.default.log("Preparing ".concat(o," module"),"timeEnd");case 10:case"end":return e.stop()}},e,this,[[1,6]])})))},Promise.resolve());case 3:return e.abrupt("return",this.moduleInstances.Renderer.render(this.config.data.blocks));case 4:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"constructModules",value:function(){var e=this;f.forEach(function(o){try{e.moduleInstances[o.displayName]=new o({config:e.configuration})}catch(e){console.log("Module %o skipped because %o",o,e)}})}},{key:"configureModules",value:function(){for(var e in this.moduleInstances)this.moduleInstances.hasOwnProperty(e)&&(this.moduleInstances[e].state=this.getModulesDiff(e))}},{key:"getModulesDiff",value:function(e){var o={};for(var t in this.moduleInstances)t!==e&&(o[t]=this.moduleInstances[t]);return o}},{key:"configuration",set:function(e){this.config="string"==typeof e||void 0===e?{holderId:e||"codex-editor"}:e,this.config.initialBlock=this.config.initialBlock||"paragraph";var o={type:this.config.initialBlock,data:{}};this.config.placeholder=this.config.placeholder||"write your story...",this.config.sanitizer=this.config.sanitizer||{p:!0,b:!0,a:!0},this.config.hideToolbar=!!this.config.hideToolbar&&this.config.hideToolbar,this.config.tools=this.config.tools||{},this.config.data=this.config.data||{},this.config.onReady=this.config.onReady||function(){},this.config.onChange=this.config.onChange||function(){},d.default.isEmpty(this.config.data)?(this.config.data={},this.config.data.blocks=[o]):this.config.data.blocks&&0!==this.config.data.blocks.length||(this.config.data.blocks=[o])},get:function(){return this.config}}]),e}();n.default=m,m.displayName="Core",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/dom.ts": /*!*******************************!*\ !*** ./src/components/dom.ts ***! \*******************************/ @@ -1267,147 +1271,143 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu /*!*********************************************************!*\ !*** ./src/components/inline-tools/inline-tool-bold.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js")],void 0===(i="function"==typeof(s=function(s,r,i){"use strict";var l=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=l(r),i=l(i);var u=function(){function e(o){o.api,(0,r.default)(this,e),this.commandName="bold",this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--bold"},this.nodes={button:void 0}}return(0,i.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(n.svg("bold",13,15)),this.nodes.button}},{key:"surround",value:function(e){document.execCommand(this.commandName)}},{key:"checkState",value:function(e){var o=document.queryCommandState(this.commandName);return this.nodes.button.classList.toggle(this.CSS.buttonActive,o),o}},{key:"shortcut",get:function(){return"CMD+B"}}],[{key:"sanitize",get:function(){return{b:{}}}}]),e}();s.default=u,u.displayName="BoldInlineTool",u.isInline=!0,e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! dom */"./src/components/dom.ts"))},"./src/components/inline-tools/inline-tool-italic.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i){"use strict";var l=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=l(s),r=l(r),i=l(i);var u=function(){function e(o){o.api,(0,s.default)(this,e),this.commandName="bold",this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--bold"},this.nodes={button:void 0}}return(0,r.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(i.default.svg("bold",13,15)),this.nodes.button}},{key:"surround",value:function(e){document.execCommand(this.commandName)}},{key:"checkState",value:function(e){var o=document.queryCommandState(this.commandName);return this.nodes.button.classList.toggle(this.CSS.buttonActive,o),o}},{key:"shortcut",get:function(){return"CMD+B"}}],[{key:"sanitize",get:function(){return{b:{}}}}]),e}();n.default=u,u.displayName="BoldInlineTool",u.isInline=!0,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/inline-tools/inline-tool-italic.ts": /*!***********************************************************!*\ !*** ./src/components/inline-tools/inline-tool-italic.ts ***! \***********************************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js")],void 0===(i="function"==typeof(s=function(s,r,i){"use strict";var l=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=l(r),i=l(i);var u=function(){function e(o){o.api,(0,r.default)(this,e),this.commandName="italic",this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--italic"},this.nodes={button:null}}return(0,i.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(n.svg("italic",6,15)),this.nodes.button}},{key:"surround",value:function(e){document.execCommand(this.commandName)}},{key:"checkState",value:function(e){var o=document.queryCommandState(this.commandName);return this.nodes.button.classList.toggle(this.CSS.buttonActive,o),o}},{key:"shortcut",get:function(){return"CMD+I"}}],[{key:"sanitize",get:function(){return{i:{}}}}]),e}();s.default=u,u.displayName="ItalicInlineTool",u.isInline=!0,e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! dom */"./src/components/dom.ts"))},"./src/components/inline-tools/inline-tool-link.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i){"use strict";var l=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=l(s),r=l(r),i=l(i);var u=function(){function e(o){o.api,(0,s.default)(this,e),this.commandName="italic",this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--italic"},this.nodes={button:null}}return(0,r.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(i.default.svg("italic",6,15)),this.nodes.button}},{key:"surround",value:function(e){document.execCommand(this.commandName)}},{key:"checkState",value:function(e){var o=document.queryCommandState(this.commandName);return this.nodes.button.classList.toggle(this.CSS.buttonActive,o),o}},{key:"shortcut",get:function(){return"CMD+I"}}],[{key:"sanitize",get:function(){return{i:{}}}}]),e}();n.default=u,u.displayName="ItalicInlineTool",u.isInline=!0,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/inline-tools/inline-tool-link.ts": /*!*********************************************************!*\ !*** ./src/components/inline-tools/inline-tool-link.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(l="function"==typeof(r=function(r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=d(i),l=d(l),u=d(u);var c=function(){function e(o){var t=o.api;(0,i.default)(this,e),this.commandLink="createLink",this.commandUnlink="unlink",this.ENTER_KEY=13,this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--link",buttonUnlink:"ce-inline-tool--unlink",input:"ce-inline-tool-input",inputShowed:"ce-inline-tool-input--showed"},this.nodes={button:null,input:null},this.inputOpened=!1,this.inlineToolbar=t.toolbar,this.selection=new u.default}return(0,l.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(n.svg("link",15,14)),this.nodes.button.appendChild(n.svg("unlink",16,18)),this.nodes.button}},{key:"renderActions",value:function(){var e=this;return this.nodes.input=document.createElement("input"),this.nodes.input.placeholder="Add a link",this.nodes.input.classList.add(this.CSS.input),this.nodes.input.addEventListener("keydown",function(o){o.keyCode===e.ENTER_KEY&&e.enterPressed(o)}),this.nodes.input}},{key:"surround",value:function(e){if(e){this.selection.save();var o=this.selection.findParentTag("A");if(o)return this.selection.expandToTag(o),this.unlink(),this.closeActions(),this.checkState(),void this.inlineToolbar.close()}this.toggleActions()}},{key:"checkState",value:function(e){var o=this.selection.findParentTag("A");if(o){this.nodes.button.classList.add(this.CSS.buttonUnlink),this.nodes.button.classList.add(this.CSS.buttonActive),this.openActions();var t=o.getAttribute("href");this.nodes.input.value="null"!==t?t:"",this.selection.save()}else this.nodes.button.classList.remove(this.CSS.buttonUnlink),this.nodes.button.classList.remove(this.CSS.buttonActive);return!!o}},{key:"clear",value:function(){this.closeActions()}},{key:"toggleActions",value:function(){this.inputOpened?this.closeActions(!1):this.openActions(!0)}},{key:"openActions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.nodes.input.classList.add(this.CSS.inputShowed),e&&this.nodes.input.focus(),this.inputOpened=!0}},{key:"closeActions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.nodes.input.classList.remove(this.CSS.inputShowed),this.nodes.input.value="",e&&this.selection.clearSaved(),this.inputOpened=!1}},{key:"enterPressed",value:function(e){var o=this.nodes.input.value||"";o.trim()||(this.selection.restore(),this.unlink(),e.preventDefault(),this.closeActions()),this.validateURL(o)?(o=this.prepareLink(o),this.selection.restore(),this.insertLink(o),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.closeActions(),this.inlineToolbar.close(),this.checkState()):s.log("Incorrect Link pasted","warn",o)}},{key:"validateURL",value:function(e){return!/\s/.test(e)}},{key:"prepareLink",value:function(e){return e=e.trim(),e=this.addProtocol(e)}},{key:"addProtocol",value:function(e){if(/^(\w+):\/\//.test(e))return e;var o=/^\/[^\/\s]/.test(e),t="#"===e.substring(0,1),n=/^\/\/[^\/\s]/.test(e);return o||t||n||(e="http://"+e),e}},{key:"insertLink",value:function(e){var o=this.selection.findParentTag("A");o&&this.selection.expandToTag(o),document.execCommand(this.commandLink,!1,e)}},{key:"unlink",value:function(){document.execCommand(this.commandUnlink)}},{key:"shortcut",get:function(){return"CMD+K"}}],[{key:"sanitize",get:function(){return{a:{href:!0,target:"_blank",rel:"nofollow"}}}}]),e}();r.default=c,c.displayName="LinkInlineTool",c.isInline=!0,e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/interfaces/editor-config.ts": -/*!****************************************************!*\ - !*** ./src/components/interfaces/editor-config.ts ***! - \****************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[],void 0===(r="function"==typeof(n=function(){"use strict"})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules sync [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./src/components/modules sync nonrecursive [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$ ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/*! no static exports found */function(e,o,t){var n={"./api-blocks.ts":"./src/components/modules/api-blocks.ts","./api-caret.ts":"./src/components/modules/api-caret.ts","./api-events.ts":"./src/components/modules/api-events.ts","./api-listener.ts":"./src/components/modules/api-listener.ts","./api-notifier.ts":"./src/components/modules/api-notifier.ts","./api-sanitizer.ts":"./src/components/modules/api-sanitizer.ts","./api-saver.ts":"./src/components/modules/api-saver.ts","./api-selection.ts":"./src/components/modules/api-selection.ts","./api-styles.ts":"./src/components/modules/api-styles.ts","./api-toolbar.ts":"./src/components/modules/api-toolbar.ts","./api.ts":"./src/components/modules/api.ts","./block-events.ts":"./src/components/modules/block-events.ts","./blockManager.js":"./src/components/modules/blockManager.js","./blockSelection.ts":"./src/components/modules/blockSelection.ts","./caret.js":"./src/components/modules/caret.js","./dragNDrop.ts":"./src/components/modules/dragNDrop.ts","./events.js":"./src/components/modules/events.js","./listeners.js":"./src/components/modules/listeners.js","./modificationsObserver.ts":"./src/components/modules/modificationsObserver.ts","./notifier.ts":"./src/components/modules/notifier.ts","./paste.ts":"./src/components/modules/paste.ts","./renderer.js":"./src/components/modules/renderer.js","./sanitizer.ts":"./src/components/modules/sanitizer.ts","./saver.ts":"./src/components/modules/saver.ts","./shortcuts.ts":"./src/components/modules/shortcuts.ts","./toolbar-blockSettings.js":"./src/components/modules/toolbar-blockSettings.js","./toolbar-inline.ts":"./src/components/modules/toolbar-inline.ts","./toolbar-toolbox.js":"./src/components/modules/toolbar-toolbox.js","./toolbar.js":"./src/components/modules/toolbar.js","./tools.js":"./src/components/modules/tools.js","./ui.js":"./src/components/modules/ui.js"};function s(e){var o=r(e);return t(o)}function r(e){var o=n[e];if(!(o+1)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id="./src/components/modules sync [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$"},"./src/components/modules/api-blocks.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=d(s),r=d(r),i=d(i),l=d(l),u=d(u);var a=function(){function e(o){var t=o.api;(0,s.default)(this,e),this.commandLink="createLink",this.commandUnlink="unlink",this.ENTER_KEY=13,this.CSS={button:"ce-inline-tool",buttonActive:"ce-inline-tool--active",buttonModifier:"ce-inline-tool--link",buttonUnlink:"ce-inline-tool--unlink",input:"ce-inline-tool-input",inputShowed:"ce-inline-tool-input--showed"},this.nodes={button:null,input:null},this.inputOpened=!1,this.inlineToolbar=t.toolbar,this.selection=new i.default}return(0,r.default)(e,[{key:"render",value:function(){return this.nodes.button=document.createElement("button"),this.nodes.button.type="button",this.nodes.button.classList.add(this.CSS.button,this.CSS.buttonModifier),this.nodes.button.appendChild(l.default.svg("link",15,14)),this.nodes.button.appendChild(l.default.svg("unlink",16,18)),this.nodes.button}},{key:"renderActions",value:function(){var e=this;return this.nodes.input=document.createElement("input"),this.nodes.input.placeholder="Add a link",this.nodes.input.classList.add(this.CSS.input),this.nodes.input.addEventListener("keydown",function(o){o.keyCode===e.ENTER_KEY&&e.enterPressed(o)}),this.nodes.input}},{key:"surround",value:function(e){if(e){this.selection.save();var o=this.selection.findParentTag("A");if(o)return this.selection.expandToTag(o),this.unlink(),this.closeActions(),this.checkState(),void this.inlineToolbar.close()}this.toggleActions()}},{key:"checkState",value:function(e){var o=this.selection.findParentTag("A");if(o){this.nodes.button.classList.add(this.CSS.buttonUnlink),this.nodes.button.classList.add(this.CSS.buttonActive),this.openActions();var t=o.getAttribute("href");this.nodes.input.value="null"!==t?t:"",this.selection.save()}else this.nodes.button.classList.remove(this.CSS.buttonUnlink),this.nodes.button.classList.remove(this.CSS.buttonActive);return!!o}},{key:"clear",value:function(){this.closeActions()}},{key:"toggleActions",value:function(){this.inputOpened?this.closeActions(!1):this.openActions(!0)}},{key:"openActions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.nodes.input.classList.add(this.CSS.inputShowed),e&&this.nodes.input.focus(),this.inputOpened=!0}},{key:"closeActions",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.nodes.input.classList.remove(this.CSS.inputShowed),this.nodes.input.value="",e&&this.selection.clearSaved(),this.inputOpened=!1}},{key:"enterPressed",value:function(e){var o=this.nodes.input.value||"";o.trim()||(this.selection.restore(),this.unlink(),e.preventDefault(),this.closeActions()),this.validateURL(o)?(o=this.prepareLink(o),this.selection.restore(),this.insertLink(o),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),this.closeActions(),this.inlineToolbar.close(),this.checkState()):u.default.log("Incorrect Link pasted","warn",o)}},{key:"validateURL",value:function(e){return!/\s/.test(e)}},{key:"prepareLink",value:function(e){return e=e.trim(),e=this.addProtocol(e)}},{key:"addProtocol",value:function(e){if(/^(\w+):\/\//.test(e))return e;var o=/^\/[^\/\s]/.test(e),t="#"===e.substring(0,1),n=/^\/\/[^\/\s]/.test(e);return o||t||n||(e="http://"+e),e}},{key:"insertLink",value:function(e){var o=this.selection.findParentTag("A");o&&this.selection.expandToTag(o),document.execCommand(this.commandLink,!1,e)}},{key:"unlink",value:function(){document.execCommand(this.commandUnlink)}},{key:"shortcut",get:function(){return"CMD+K"}}],[{key:"sanitize",get:function(){return{a:{href:!0,target:"_blank",rel:"nofollow"}}}}]),e}();n.default=a,a.displayName="LinkInlineTool",a.isInline=!0,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules sync recursive ^\\.\\/.*$": /*!**********************************************!*\ - !*** ./src/components/modules/api-blocks.ts ***! + !*** ./src/components/modules sync ^\.\/.*$ ***! \**********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"getBlocksCount",value:function(){return this.Editor.BlockManager.blocks.length}},{key:"getCurrentBlockIndex",value:function(){return this.Editor.BlockManager.currentBlockIndex}},{key:"getBlockByIndex",value:function(e){return this.Editor.BlockManager.getBlockByIndex(e)}},{key:"swap",value:function(e,o){this.Editor.BlockManager.swap(e,o),this.Editor.Toolbar.move(!1)}},{key:"delete",value:function(e){this.Editor.BlockManager.removeBlock(e),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),this.Editor.Toolbar.close()}},{key:"clear",value:function(){this.Editor.BlockManager.clear(!0)}},{key:"render",value:function(e){this.Editor.BlockManager.clear(),this.Editor.Renderer.render(e.blocks)}},{key:"stretchBlock",value:function(e,o){var t=this.Editor.BlockManager.getBlockByIndex(e);t&&(t.stretched=void 0===o||o)}},{key:"insertNewBlock",value:function(){var e=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(e)}},{key:"methods",get:function(){var e=this;return{clear:function(){return e.clear()},render:function(o){return e.render(o)},delete:function(){return e.delete()},swap:function(o,t){return e.swap(o,t)},getBlockByIndex:function(o){return e.getBlockByIndex(o)},getCurrentBlockIndex:function(){return e.getCurrentBlockIndex()},getBlocksCount:function(){return e.getBlocksCount()},stretchBlock:function(o,t){return e.stretchBlock(o,t)},insertNewBlock:function(){return e.insertNewBlock()}}}}]),o}(n);s.default=a,a.displayName="BlocksAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-caret.ts": +/*! no static exports found */function(e,o,t){var n={"./api":"./src/components/modules/api/index.ts","./api/":"./src/components/modules/api/index.ts","./api/blocks":"./src/components/modules/api/blocks.ts","./api/blocks.ts":"./src/components/modules/api/blocks.ts","./api/caret":"./src/components/modules/api/caret.ts","./api/caret.ts":"./src/components/modules/api/caret.ts","./api/events":"./src/components/modules/api/events.ts","./api/events.ts":"./src/components/modules/api/events.ts","./api/index":"./src/components/modules/api/index.ts","./api/index.ts":"./src/components/modules/api/index.ts","./api/listeners":"./src/components/modules/api/listeners.ts","./api/listeners.ts":"./src/components/modules/api/listeners.ts","./api/notifier":"./src/components/modules/api/notifier.ts","./api/notifier.ts":"./src/components/modules/api/notifier.ts","./api/sanitizer":"./src/components/modules/api/sanitizer.ts","./api/sanitizer.ts":"./src/components/modules/api/sanitizer.ts","./api/saver":"./src/components/modules/api/saver.ts","./api/saver.ts":"./src/components/modules/api/saver.ts","./api/selection":"./src/components/modules/api/selection.ts","./api/selection.ts":"./src/components/modules/api/selection.ts","./api/styles":"./src/components/modules/api/styles.ts","./api/styles.ts":"./src/components/modules/api/styles.ts","./api/toolbar":"./src/components/modules/api/toolbar.ts","./api/toolbar.ts":"./src/components/modules/api/toolbar.ts","./blockEvents":"./src/components/modules/blockEvents.ts","./blockEvents.ts":"./src/components/modules/blockEvents.ts","./blockManager":"./src/components/modules/blockManager.ts","./blockManager.ts":"./src/components/modules/blockManager.ts","./blockSelection":"./src/components/modules/blockSelection.ts","./blockSelection.ts":"./src/components/modules/blockSelection.ts","./caret":"./src/components/modules/caret.ts","./caret.ts":"./src/components/modules/caret.ts","./dragNDrop":"./src/components/modules/dragNDrop.ts","./dragNDrop.ts":"./src/components/modules/dragNDrop.ts","./events":"./src/components/modules/events.ts","./events.ts":"./src/components/modules/events.ts","./listeners":"./src/components/modules/listeners.ts","./listeners.ts":"./src/components/modules/listeners.ts","./modificationsObserver":"./src/components/modules/modificationsObserver.ts","./modificationsObserver.ts":"./src/components/modules/modificationsObserver.ts","./notifier":"./src/components/modules/notifier.ts","./notifier.ts":"./src/components/modules/notifier.ts","./paste":"./src/components/modules/paste.ts","./paste.ts":"./src/components/modules/paste.ts","./renderer":"./src/components/modules/renderer.ts","./renderer.ts":"./src/components/modules/renderer.ts","./sanitizer":"./src/components/modules/sanitizer.ts","./sanitizer.ts":"./src/components/modules/sanitizer.ts","./saver":"./src/components/modules/saver.ts","./saver.ts":"./src/components/modules/saver.ts","./shortcuts":"./src/components/modules/shortcuts.ts","./shortcuts.ts":"./src/components/modules/shortcuts.ts","./toolbar":"./src/components/modules/toolbar/index.ts","./toolbar/":"./src/components/modules/toolbar/index.ts","./toolbar/blockSettings":"./src/components/modules/toolbar/blockSettings.ts","./toolbar/blockSettings.ts":"./src/components/modules/toolbar/blockSettings.ts","./toolbar/index":"./src/components/modules/toolbar/index.ts","./toolbar/index.ts":"./src/components/modules/toolbar/index.ts","./toolbar/inline":"./src/components/modules/toolbar/inline.ts","./toolbar/inline.ts":"./src/components/modules/toolbar/inline.ts","./toolbar/toolbox":"./src/components/modules/toolbar/toolbox.ts","./toolbar/toolbox.ts":"./src/components/modules/toolbar/toolbox.ts","./tools":"./src/components/modules/tools.ts","./tools.ts":"./src/components/modules/tools.ts","./ui":"./src/components/modules/ui.ts","./ui.ts":"./src/components/modules/ui.ts"};function s(e){var o=r(e);return t(o)}function r(e){var o=n[e];if(!(o+1)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o}s.keys=function(){return Object.keys(n)},s.resolve=r,e.exports=s,s.id="./src/components/modules sync recursive ^\\.\\/.*$"},"./src/components/modules/api/blocks.ts": +/*!**********************************************!*\ + !*** ./src/components/modules/api/blocks.ts ***! + \**********************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"getBlocksCount",value:function(){return this.Editor.BlockManager.blocks.length}},{key:"getCurrentBlockIndex",value:function(){return this.Editor.BlockManager.currentBlockIndex}},{key:"getBlockByIndex",value:function(e){var o=this.Editor.BlockManager.getBlockByIndex(e);return o.holder}},{key:"swap",value:function(e,o){this.Editor.BlockManager.swap(e,o),this.Editor.Toolbar.move(!1)}},{key:"delete",value:function(e){this.Editor.BlockManager.removeBlock(e),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),this.Editor.Toolbar.close()}},{key:"clear",value:function(){this.Editor.BlockManager.clear(!0)}},{key:"render",value:function(e){return this.Editor.BlockManager.clear(),this.Editor.Renderer.render(e.blocks)}},{key:"stretchBlock",value:function(e){var o=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this.Editor.BlockManager.getBlockByIndex(e);t&&(t.stretched=o)}},{key:"insertNewBlock",value:function(){var e=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(e)}},{key:"methods",get:function(){var e=this;return{clear:function(){return e.clear()},render:function(o){return e.render(o)},delete:function(){return e.delete()},swap:function(o,t){return e.swap(o,t)},getBlockByIndex:function(o){return e.getBlockByIndex(o)},getCurrentBlockIndex:function(){return e.getCurrentBlockIndex()},getBlocksCount:function(){return e.getBlocksCount()},stretchBlock:function(o){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.stretchBlock(o,t)},insertNewBlock:function(){return e.insertNewBlock()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="BlocksAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/caret.ts": /*!*********************************************!*\ - !*** ./src/components/modules/api-caret.ts ***! + !*** ./src/components/modules/api/caret.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"methods",get:function(){return{}}}]),o}(n);s.default=a,a.displayName="CaretAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-events.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{}}}]),o}((d=a(d)).default);n.default=c,c.displayName="CaretAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/events.ts": /*!**********************************************!*\ - !*** ./src/components/modules/api-events.ts ***! + !*** ./src/components/modules/api/events.ts ***! \**********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"on",value:function(e,o){this.Editor.Events.on(e,o)}},{key:"emit",value:function(e,o){this.Editor.Events.emit(e,o)}},{key:"off",value:function(e,o){this.Editor.Events.off(e,o)}},{key:"methods",get:function(){var e=this;return{emit:function(o,t){return e.emit(o,t)},off:function(o,t){return e.off(o,t)},on:function(o,t){return e.on(o,t)}}}}]),o}(n);s.default=a,a.displayName="EventsAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-listener.ts": -/*!************************************************!*\ - !*** ./src/components/modules/api-listener.ts ***! - \************************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"on",value:function(e,o,t,n){this.Editor.Listeners.on(e,o,t,n)}},{key:"off",value:function(e,o,t){this.Editor.Listeners.off(e,o,t)}},{key:"methods",get:function(){var e=this;return{on:function(o,t,n,s){return e.on(o,t,n,s)},off:function(o,t,n){return e.off(o,t,n)}}}}]),o}(n);s.default=a,a.displayName="ListenerAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-notifier.ts": -/*!************************************************!*\ - !*** ./src/components/modules/api-notifier.ts ***! - \************************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u);var a=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){return this.Editor.Notifier.show(e)}},{key:"methods",get:function(){var e=this;return{show:function(o){return e.show(o)}}}}]),o}((d=c(d)).default);n.default=a,a.displayName="NotifierAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api-sanitizer.ts": -/*!*************************************************!*\ - !*** ./src/components/modules/api-sanitizer.ts ***! - \*************************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"clean",value:function(e,o){return this.Editor.Sanitizer.clean(e,o)}},{key:"methods",get:function(){var e=this;return{clean:function(o,t){return e.clean(o,t)}}}}]),o}(n);s.default=a,a.displayName="SanitizerAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-saver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o){this.Editor.Events.on(e,o)}},{key:"emit",value:function(e,o){this.Editor.Events.emit(e,o)}},{key:"off",value:function(e,o){this.Editor.Events.off(e,o)}},{key:"methods",get:function(){var e=this;return{emit:function(o,t){return e.emit(o,t)},off:function(o,t){return e.off(o,t)},on:function(o,t){return e.on(o,t)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="EventsAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/index.ts": /*!*********************************************!*\ - !*** ./src/components/modules/api-saver.ts ***! + !*** ./src/components/modules/api/index.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"save",value:function(){return this.Editor.Saver.save()}},{key:"methods",get:function(){var e=this;return{save:function(){return e.save()}}}}]),o}(n);s.default=a,a.displayName="SaverAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-selection.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"methods",get:function(){return{blocks:this.Editor.BlocksAPI.methods,caret:this.Editor.CaretAPI.methods,events:this.Editor.EventsAPI.methods,listeners:this.Editor.ListenersAPI.methods,notifier:this.Editor.NotifierAPI.methods,sanitizer:this.Editor.SanitizerAPI.methods,saver:this.Editor.SaverAPI.methods,selection:this.Editor.SelectionAPI.methods,styles:this.Editor.StylesAPI.classes,toolbar:this.Editor.ToolbarAPI.methods}}}]),o}((d=a(d)).default);n.default=c,c.displayName="API",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/listeners.ts": /*!*************************************************!*\ - !*** ./src/components/modules/api-selection.ts ***! + !*** ./src/components/modules/api/listeners.ts ***! \*************************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"findParentTag",value:function(e,o){return(new c.default).findParentTag(e,o)}},{key:"expandToTag",value:function(e){(new c.default).expandToTag(e)}},{key:"methods",get:function(){var e=this;return{findParentTag:function(o,t){return e.findParentTag(o,t)},expandToTag:function(o){return e.expandToTag(o)}}}}]),o}(n);s.default=f,f.displayName="SelectionAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-styles.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o,t,n){this.Editor.Listeners.on(e,o,t,n)}},{key:"off",value:function(e,o,t){this.Editor.Listeners.off(e,o,t)}},{key:"methods",get:function(){var e=this;return{on:function(o,t,n,s){return e.on(o,t,n,s)},off:function(o,t,n){return e.off(o,t,n)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="ListenersAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/notifier.ts": +/*!************************************************!*\ + !*** ./src/components/modules/api/notifier.ts ***! + \************************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){return this.Editor.Notifier.show(e)}},{key:"methods",get:function(){var e=this;return{show:function(o){return e.show(o)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="NotifierAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/sanitizer.ts": +/*!*************************************************!*\ + !*** ./src/components/modules/api/sanitizer.ts ***! + \*************************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"clean",value:function(e,o){return this.Editor.Sanitizer.clean(e,o)}},{key:"methods",get:function(){var e=this;return{clean:function(o,t){return e.clean(o,t)}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="SanitizerAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/saver.ts": +/*!*********************************************!*\ + !*** ./src/components/modules/api/saver.ts ***! + \*********************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"save",value:function(){return this.Editor.Saver.save()}},{key:"methods",get:function(){var e=this;return{save:function(){return e.save()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="SaverAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/selection.ts": +/*!*************************************************!*\ + !*** ./src/components/modules/api/selection.ts ***! + \*************************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"findParentTag",value:function(e,o){return(new a.default).findParentTag(e,o)}},{key:"expandToTag",value:function(e){(new a.default).expandToTag(e)}},{key:"methods",get:function(){var e=this;return{findParentTag:function(o,t){return e.findParentTag(o,t)},expandToTag:function(o){return e.expandToTag(o)}}}}]),o}(d.default);n.default=f,f.displayName="SelectionAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/styles.ts": /*!**********************************************!*\ - !*** ./src/components/modules/api-styles.ts ***! + !*** ./src/components/modules/api/styles.ts ***! \**********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"classes",get:function(){return{block:"cdx-block",inlineToolButton:"ce-inline-tool",inlineToolButtonActive:"ce-inline-tool--active",input:"cdx-input",loader:"cdx-loader",button:"cdx-button",settingsButton:"cdx-settings-button",settingsButtonActive:"cdx-settings-button--active"}}}]),o}(n);s.default=a,a.displayName="StylesAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api-toolbar.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"classes",get:function(){return{block:"cdx-block",inlineToolButton:"ce-inline-tool",inlineToolButtonActive:"ce-inline-tool--active",input:"cdx-input",loader:"cdx-loader",button:"cdx-button",settingsButton:"cdx-settings-button",settingsButtonActive:"cdx-settings-button--active"}}}]),o}((d=a(d)).default);n.default=c,c.displayName="StylesAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/api/toolbar.ts": /*!***********************************************!*\ - !*** ./src/components/modules/api-toolbar.ts ***! + !*** ./src/components/modules/api/toolbar.ts ***! \***********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"open",value:function(){this.Editor.Toolbar.open()}},{key:"close",value:function(){this.Editor.Toolbar.close()}},{key:"methods",get:function(){var e=this;return{close:function(){return e.close()},open:function(){return e.open()}}}}]),o}(n);s.default=a,a.displayName="ToolbarAPI",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/api.ts": -/*!***************************************!*\ - !*** ./src/components/modules/api.ts ***! - \***************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t=e.config;return(0,r.default)(this,o),(0,l.default)(this,(0,u.default)(o).call(this,{config:t}))}return(0,d.default)(o,e),(0,i.default)(o,[{key:"methods",get:function(){return{blocks:this.Editor.BlocksAPI.methods,caret:this.Editor.CaretAPI.methods,events:this.Editor.EventsAPI.methods,listener:this.Editor.ListenerAPI.methods,notifier:this.Editor.NotifierAPI.methods,sanitizer:this.Editor.SanitizerAPI.methods,saver:this.Editor.SaverAPI.methods,selection:this.Editor.SelectionAPI.methods,styles:this.Editor.StylesAPI.classes,toolbar:this.Editor.ToolbarAPI.methods}}}]),o}(n);s.default=a,a.displayName="API",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/block-events.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"open",value:function(){this.Editor.Toolbar.open()}},{key:"close",value:function(){this.Editor.Toolbar.close()}},{key:"methods",get:function(){var e=this;return{close:function(){return e.close()},open:function(){return e.open()}}}}]),o}((d=a(d)).default);n.default=c,c.displayName="ToolbarAPI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockEvents.ts": +/*!***********************************************!*\ + !*** ./src/components/modules/blockEvents.ts ***! + \***********************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"keydown",value:function(e){switch(this.beforeKeydownProcessing(e),e.keyCode){case a.default.keyCodes.BACKSPACE:this.backspace(e);break;case a.default.keyCodes.ENTER:this.enter(e);break;case a.default.keyCodes.DOWN:case a.default.keyCodes.RIGHT:this.arrowRightAndDown(e);break;case a.default.keyCodes.UP:case a.default.keyCodes.LEFT:this.arrowLeftAndUp(e);break;case a.default.keyCodes.TAB:this.tabPressed(e);break;case a.default.keyCodes.ESC:this.escapePressed(e);break;default:this.defaultHandler()}}},{key:"beforeKeydownProcessing",value:function(e){if(this.needToolbarClosing(e)){this.Editor.Toolbar.close();var o=e.ctrlKey||e.metaKey,t=e.altKey,n=e.shiftKey;o||t||n||(this.Editor.BlockManager.clearFocused(),this.Editor.BlockSelection.clearSelection(!0))}}},{key:"keyup",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"mouseUp",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"tabPressed",value:function(e){var o=this.Editor.BlockManager.currentBlock;e.preventDefault(),e.stopPropagation();var t=e.shiftKey,n=t?"left":"right";this.Editor.Toolbar.opened&&o.isEmpty?this.Editor.Toolbox.open():o.isEmpty&&(this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.show(),this.Editor.Toolbox.open()),this.Editor.Toolbox.opened&&this.Editor.Toolbox.leaf(n)}},{key:"escapePressed",value:function(e){}},{key:"dragOver",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!0}},{key:"dragLeave",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!1}},{key:"enter",value:function(e){var o=this.Editor.BlockManager.currentBlock,t=this.Editor.Tools.available[o.name];if(!t||!t[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){if(this.Editor.Toolbox.opened&&this.Editor.Toolbox.getActiveTool)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),void this.Editor.Toolbox.toolButtonActivate(e,this.Editor.Toolbox.getActiveTool);if(!e.shiftKey){var n=this.Editor.BlockManager.split();this.Editor.Caret.setToBlock(n),this.Editor.Tools.isInitial(n.tool)&&n.isEmpty&&(this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.show()),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}}}},{key:"backspace",value:function(e){var o=this,t=this.Editor.BlockManager,n=this.Editor.BlockManager.currentBlock,s=this.Editor.Tools.available[n.name];if(!s||!s[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){var r=0===t.currentBlockIndex,i=this.Editor.Caret.isAtStart&&!r;if(this.Editor.BlockManager.currentBlock.isEmpty)return this.Editor.BlockManager.removeBlock(),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),void this.Editor.Toolbar.close();if(i){e.preventDefault();var l=t.getBlockByIndex(t.currentBlockIndex-1),u=t.currentBlock;u.name===l.name&&l.mergeable?(this.Editor.Caret.createShadow(l.pluginsContent),t.mergeBlocks(l,u).then(function(){o.Editor.Caret.restoreCaret(l.pluginsContent),l.pluginsContent.normalize(),o.Editor.Toolbar.close()})):this.Editor.Caret.navigatePrevious()&&this.Editor.Toolbar.close()}}}},{key:"arrowRightAndDown",value:function(e){this.Editor.Caret.navigateNext()&&e.preventDefault()}},{key:"arrowLeftAndUp",value:function(e){this.Editor.Caret.navigatePrevious()&&e.preventDefault()}},{key:"defaultHandler",value:function(){}},{key:"needToolbarClosing",value:function(e){var o=e.keyCode===a.default.keyCodes.ENTER&&this.Editor.Toolbox.opened,t=e.keyCode===a.default.keyCodes.TAB;return!(e.shiftKey||t||o)}}]),o}(d.default);n.default=f,f.displayName="BlockEvents",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockManager.ts": /*!************************************************!*\ - !*** ./src/components/modules/block-events.ts ***! + !*** ./src/components/modules/blockManager.ts ***! \************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t=e.config;return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).call(this,{config:t}))}return(0,c.default)(o,e),(0,l.default)(o,[{key:"keydown",value:function(e){switch(this.beforeKeydownProcessing(e),e.keyCode){case s.keyCodes.BACKSPACE:this.backspace(e);break;case s.keyCodes.ENTER:this.enter(e);break;case s.keyCodes.DOWN:case s.keyCodes.RIGHT:this.arrowRightAndDown(e);break;case s.keyCodes.UP:case s.keyCodes.LEFT:this.arrowLeftAndUp(e);break;case s.keyCodes.TAB:this.tabPressed(e);break;case s.keyCodes.ESC:this.escapePressed(e);break;default:this.defaultHandler()}}},{key:"beforeKeydownProcessing",value:function(e){if(this.needToolbarClosing(e)){this.Editor.Toolbar.close();var o=e.ctrlKey||e.metaKey,t=e.altKey,n=e.shiftKey;o||t||n||(this.Editor.BlockManager.clearFocused(),this.Editor.BlockSelection.clearSelection(!0))}}},{key:"keyup",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"mouseUp",value:function(e){this.Editor.InlineToolbar.handleShowingEvent(e)}},{key:"tabPressed",value:function(e){var o=this.Editor.BlockManager.currentBlock;e.preventDefault(),e.stopPropagation();var t=e.shiftKey,n=t?"left":"right";this.Editor.Toolbar.opened&&o.isEmpty?this.Editor.Toolbox.open():o.isEmpty&&(this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.show(),this.Editor.Toolbox.open()),this.Editor.Toolbox.opened&&this.Editor.Toolbox.leaf(n)}},{key:"escapePressed",value:function(e){}},{key:"dragOver",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!0}},{key:"dragLeave",value:function(e){var o=this.Editor.BlockManager.getBlockByChildNode(e.target);o.dropTarget=!1}},{key:"enter",value:function(e){var o=this.Editor.BlockManager.currentBlock,t=this.Editor.Tools.toolsAvailable[o.name];if(!t||!t[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){if(this.Editor.Toolbox.opened&&this.Editor.Toolbox.getActiveTool)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),void this.Editor.Toolbox.toolButtonActivate(e,this.Editor.Toolbox.getActiveTool);if(!e.shiftKey){var n=this.Editor.BlockManager.split();this.Editor.Caret.setToBlock(n),this.Editor.Tools.isInitial(n.tool)&&n.isEmpty&&(this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.show()),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation()}}}},{key:"backspace",value:function(e){var o=this,t=this.Editor.BlockManager,n=this.Editor.BlockManager.currentBlock,s=this.Editor.Tools.toolsAvailable[n.name];if(!s||!s[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]){var r=0===t.currentBlockIndex,i=this.Editor.Caret.isAtStart&&!r;if(this.Editor.BlockManager.currentBlock.isEmpty)return this.Editor.BlockManager.removeBlock(),0===this.Editor.BlockManager.blocks.length&&this.Editor.BlockManager.insert(),0===this.Editor.BlockManager.currentBlockIndex?this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock):this.Editor.Caret.navigatePrevious(!0),void this.Editor.Toolbar.close();if(i){e.preventDefault();var l=t.getBlockByIndex(t.currentBlockIndex-1),u=t.currentBlock;u.name===l.name&&l.mergeable?(this.Editor.Caret.createShadow(l.pluginsContent),t.mergeBlocks(l,u).then(function(){o.Editor.Caret.restoreCaret(l.pluginsContent),l.pluginsContent.normalize(),o.Editor.Toolbar.close()})):this.Editor.Caret.navigatePrevious()&&this.Editor.Toolbar.close()}}}},{key:"arrowRightAndDown",value:function(e){this.Editor.Caret.navigateNext()&&e.preventDefault()}},{key:"arrowLeftAndUp",value:function(e){this.Editor.Caret.navigatePrevious()&&e.preventDefault()}},{key:"defaultHandler",value:function(){}},{key:"needToolbarClosing",value:function(e){var o=e.keyCode===s.keyCodes.ENTER&&this.Editor.Toolbox.opened,t=e.keyCode===s.keyCodes.TAB;return!(e.shiftKey||t||o)}}]),o}(n);r.default=f,f.displayName="BlockEvents",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/blockManager.js": -/*!************************************************!*\ - !*** ./src/components/modules/blockManager.js ***! - \************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../block */"./src/components/block.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(e){var t,n=e.config;return(0,l.default)(this,o),(t=(0,d.default)(this,(0,c.default)(o).call(this,{config:n})))._blocks=null,t.currentBlockIndex=-1,t}return(0,a.default)(o,e),(0,u.default)(o,[{key:"prepare",value:function(){var e=this;return new Promise(function(o){var t=new h(e.Editor.UI.nodes.redactor);e._blocks=new Proxy(t,{set:h.set,get:h.get}),o()})}},{key:"composeBlock",value:function(e,o,t){var n=this.Editor.Tools.construct(e,o),s=this.Editor.Tools.available[e],r=new f.default(e,n,s,t,this.Editor.API.methods);return this.bindEvents(r),r}},{key:"bindEvents",value:function(e){var o=this;this.Editor.Listeners.on(e.holder,"keydown",function(e){return o.Editor.BlockEvents.keydown(e)},!0),this.Editor.Listeners.on(e.holder,"mouseup",function(e){return o.Editor.BlockEvents.mouseUp(e)}),this.Editor.Listeners.on(e.holder,"keyup",function(e){return o.Editor.BlockEvents.keyup(e)}),this.Editor.Listeners.on(e.holder,"dragover",function(e){return o.Editor.BlockEvents.dragOver(e)}),this.Editor.Listeners.on(e.holder,"dragleave",function(e){return o.Editor.BlockEvents.dragLeave(e)})}},{key:"insert",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.initialBlock,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=++this.currentBlockIndex,s=this.composeBlock(e,o,t);return this._blocks[n]=s,s}},{key:"insertAtEnd",value:function(){return this.currentBlockIndex=this.blocks.length-1,this.insert()}},{key:"mergeBlocks",value:function(e,o){var t=this,n=this._blocks.indexOf(o);return Promise.resolve().then(function(){if(!o.isEmpty)return o.data.then(function(o){e.mergeWith(o.data)})}).then(function(){t.removeBlock(n),t.currentBlockIndex=t._blocks.indexOf(e)})}},{key:"removeBlock",value:function(e){e||(e=this.currentBlockIndex),this._blocks.remove(e),this.blocks.length||(this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus())}},{key:"split",value:function(){var e=this.Editor.Caret.extractFragmentFromCaretPosition(),o=s.make("div");o.append(e);var t={text:s.isEmpty(o)?"":o.innerHTML};return this.insert(this.config.initialBlock,t)}},{key:"replace",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=this.composeBlock(e,o);return this._blocks.insert(this.currentBlockIndex,t,!0),t}},{key:"getBlockByIndex",value:function(e){return this._blocks[e]}},{key:"getBlock",value:function(e){s.isElement(e)||(e=e.parentNode);var o=this._blocks.nodes,t=e.closest(".".concat(f.default.CSS.wrapper)),n=o.indexOf(t);if(n>=0)return this._blocks[n]}},{key:"highlightCurrentNode",value:function(){this.clearFocused(),this.currentBlock.focused=!0}},{key:"clearFocused",value:function(){this.blocks.forEach(function(e){return e.focused=!1})}},{key:"setCurrentBlockByChildNode",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default";s.isElement(e)||(e=e.parentNode);var t=e.closest(".".concat(f.default.CSS.wrapper));if(!t)throw new Error("Can not find a Block from this child Node");this.currentBlockIndex=this._blocks.nodes.indexOf(t),this.Editor.Caret.setToInput(e,o)}},{key:"getBlockByChildNode",value:function(e){s.isElement(e)||(e=e.parentNode);var o=e.closest(".".concat(f.default.CSS.wrapper));return this.blocks.find(function(e){return e.holder===o})}},{key:"swap",value:function(e,o){this._blocks.swap(e,o),this.currentBlockIndex=o}},{key:"dropPointer",value:function(){this.currentBlockIndex=-1,this.clearFocused()}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._blocks.removeAll(),this.dropPointer(),e&&this.insert(this.config.initialBlock)}},{key:"lastBlock",get:function(){return this._blocks[this._blocks.length-1]}},{key:"currentBlock",get:function(){return this._blocks[this.currentBlockIndex]}},{key:"nextBlock",get:function(){var e=this.currentBlockIndex===this._blocks.length-1;return e?null:this._blocks[this.currentBlockIndex+1]}},{key:"nextContentfulBlock",get:function(){var e=this.blocks.slice(this.currentBlockIndex+1);return e.find(function(e){return!!e.inputs.length})}},{key:"previousContentfulBlock",get:function(){var e=this.blocks.slice(0,this.currentBlockIndex).reverse();return e.find(function(e){return!!e.inputs.length})}},{key:"previousBlock",get:function(){var e=0===this.currentBlockIndex;return e?null:this._blocks[this.currentBlockIndex-1]}},{key:"blocks",get:function(){return this._blocks.array}}]),o}(n);i.default=p,p.displayName="BlockManager";var h=function(){function e(o){(0,l.default)(this,e),this.blocks=[],this.workingArea=o}return(0,u.default)(e,[{key:"push",value:function(e){this.blocks.push(e),this.workingArea.appendChild(e.holder)}},{key:"swap",value:function(e,o){var t=this.blocks[o];s.swap(this.blocks[e].holder,t.holder),this.blocks[o]=this.blocks[e],this.blocks[e]=t}},{key:"insert",value:function(e,o){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.length){e>this.length&&(e=this.length),t&&this.blocks[e].holder.remove();var n=t?1:0;if(this.blocks.splice(e,n,o),e>0){var s=this.blocks[e-1];s.holder.insertAdjacentElement("afterend",o.holder)}else{var r=this.blocks[e+1];r?r.holder.insertAdjacentElement("beforebegin",o.holder):this.workingArea.appendChild(o.holder)}}else this.push(o)}},{key:"remove",value:function(e){isNaN(e)&&(e=this.length-1),this.blocks[e].holder.remove(),this.blocks.splice(e,1)}},{key:"removeAll",value:function(){this.workingArea.innerHTML="",this.blocks.length=0}},{key:"insertAfter",value:function(e,o){var t=this.blocks.indexOf(e);this.insert(t+1,o)}},{key:"get",value:function(e){return this.blocks[e]}},{key:"indexOf",value:function(e){return this.blocks.indexOf(e)}},{key:"length",get:function(){return this.blocks.length}},{key:"array",get:function(){return this.blocks}},{key:"nodes",get:function(){return r.array(this.workingArea.children)}}],[{key:"set",value:function(e,o,t){return!isNaN(Number(o))&&(e.insert(o,t),!0)}},{key:"get",value:function(e,o){return isNaN(Number(o))?e[o]:e.get(o)}}]),e}();h.displayName="Blocks",e.exports=o.default})?i.apply(o,l):i)||(e.exports=u)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/blockSelection.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../block */"./src/components/block.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../blocks */"./src/components/blocks.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=j(s),r=j(r),i=j(i),l=j(l),u=j(u),d=j(d),a=j(a),c=j(c),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).currentBlockIndex=-1,e._blocks=null,e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:o=new p.default(this.Editor.UI.nodes.redactor),this._blocks=new Proxy(o,{set:p.default.set,get:p.default.get});case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"composeBlock",value:function(e,o,t){var n=this.Editor.Tools.construct(e,o),s=this.Editor.Tools.available[e],r=new c.default(e,n,s,t,this.Editor.API.methods);return this.bindEvents(r),r}},{key:"insert",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.initialBlock,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=++this.currentBlockIndex,s=this.composeBlock(e,o,t);return this._blocks[n]=s,s}},{key:"insertAtEnd",value:function(){return this.currentBlockIndex=this.blocks.length-1,this.insert()}},{key:"mergeBlocks",value:function(){var e=(0,r.default)(s.default.mark(function e(o,t){var n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this._blocks.indexOf(t),!t.isEmpty){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,t.data;case 5:return r=e.sent,e.next=8,o.mergeWith(r);case 8:this.removeBlock(n),this.currentBlockIndex=this._blocks.indexOf(o);case 10:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()},{key:"removeBlock",value:function(e){e||(e=this.currentBlockIndex),this._blocks.remove(e),this.blocks.length||(this.currentBlockIndex=-1,this.insert(),this.currentBlock.firstInput.focus())}},{key:"split",value:function(){var e=this.Editor.Caret.extractFragmentFromCaretPosition(),o=m.default.make("div");o.append(e);var t={text:m.default.isEmpty(o)?"":o.innerHTML};return this.insert(this.config.initialBlock,t)}},{key:"replace",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=this.composeBlock(e,o);return this._blocks.insert(this.currentBlockIndex,t,!0),t}},{key:"getBlockByIndex",value:function(e){return this._blocks[e]}},{key:"getBlock",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=this._blocks.nodes,t=e.closest(".".concat(c.default.CSS.wrapper)),n=o.indexOf(t);if(n>=0)return this._blocks[n]}},{key:"highlightCurrentNode",value:function(){this.clearFocused(),this.currentBlock.focused=!0}},{key:"clearFocused",value:function(){this.blocks.forEach(function(e){return e.focused=!1})}},{key:"setCurrentBlockByChildNode",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:h.default.positions.DEFAULT;m.default.isElement(e)||(e=e.parentNode);var t=e.closest(".".concat(c.default.CSS.wrapper));if(!t)throw new Error("Can not find a Block from this child Node");this.currentBlockIndex=this._blocks.nodes.indexOf(t),this.Editor.Caret.setToInput(e,o)}},{key:"getBlockByChildNode",value:function(e){m.default.isElement(e)||(e=e.parentNode);var o=e.closest(".".concat(c.default.CSS.wrapper));return this.blocks.find(function(e){return e.holder===o})}},{key:"swap",value:function(e,o){this._blocks.swap(e,o),this.currentBlockIndex=o}},{key:"dropPointer",value:function(){this.currentBlockIndex=-1,this.clearFocused()}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._blocks.removeAll(),this.dropPointer(),e&&this.insert(this.config.initialBlock)}},{key:"bindEvents",value:function(e){var o=this.Editor,t=o.BlockEvents,n=o.Listeners;n.on(e.holder,"keydown",function(e){return t.keydown(e)},!0),n.on(e.holder,"mouseup",function(e){return t.mouseUp(e)}),n.on(e.holder,"keyup",function(e){return t.keyup(e)}),n.on(e.holder,"dragover",function(e){return t.dragOver(e)}),n.on(e.holder,"dragleave",function(e){return t.dragLeave(e)})}},{key:"lastBlock",get:function(){return this._blocks[this._blocks.length-1]}},{key:"currentBlock",get:function(){return this._blocks[this.currentBlockIndex]}},{key:"nextBlock",get:function(){var e=this.currentBlockIndex===this._blocks.length-1;return e?null:this._blocks[this.currentBlockIndex+1]}},{key:"nextContentfulBlock",get:function(){var e=this.blocks.slice(this.currentBlockIndex+1);return e.find(function(e){return!!e.inputs.length})}},{key:"previousContentfulBlock",get:function(){var e=this.blocks.slice(0,this.currentBlockIndex).reverse();return e.find(function(e){return!!e.inputs.length})}},{key:"previousBlock",get:function(){var e=0===this.currentBlockIndex;return e?null:this._blocks[this.currentBlockIndex-1]}},{key:"blocks",get:function(){return this._blocks.array}}]),o}(f.default);n.default=_,_.displayName="BlockManager",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/blockSelection.ts": /*!**************************************************!*\ !*** ./src/components/modules/blockSelection.ts ***! \**************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){var e;return(0,l.default)(this,o),(e=(0,d.default)(this,(0,c.default)(o).apply(this,arguments))).needToSelectAll=!1,e}return(0,a.default)(o,e),(0,u.default)(o,[{key:"prepare",value:function(){var e=this,o=this.Editor.Shortcuts;o.add({name:"CMD+A",handler:function(o){e.handleCommandA(o)}}),o.add({name:"CMD+C",handler:function(o){e.handleCommandC(o)}}),this.selection=new f.default}},{key:"clearSelection",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.Editor.BlockManager,t=-1!==o.blocks.findIndex(function(e){return!0===e.selected});t&&(this.needToSelectAll=!1,o.blocks.forEach(function(e){return e.selected=!1}),e&&this.selection.restore())}},{key:"handleCommandA",value:function(e){e.preventDefault(),this.needToSelectAll?(this.selectAllBlocks(),this.needToSelectAll=!1):(this.selectBlockByIndex(),this.needToSelectAll=!0)}},{key:"handleCommandC",value:function(e){var o=this,t=this.Editor,n=t.BlockManager,i=t.Sanitizer,l=n.blocks.some(function(e){return!0===e.selected});if(l){var u=s.make("div");n.blocks.filter(function(e){return e.selected}).forEach(function(e){var t=i.clean(e.holder.innerHTML,o.sanitizerConfig),n=s.make("p");n.innerHTML=t,u.appendChild(n)}),r.copyTextToClipboard(u.innerHTML)}}},{key:"selectAllBlocks",value:function(){var e=this.Editor.BlockManager;e.blocks.forEach(function(e){return e.selected=!0})}},{key:"selectBlockByIndex",value:function(e){var o,t=this.Editor.BlockManager;t.clearFocused(),o=isNaN(e)?t.currentBlock:t.getBlockByIndex(e),this.selection.save(),f.default.get().removeAllRanges(),o.selected=!0}},{key:"sanitizerConfig",get:function(){return{p:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},ol:{},ul:{},li:{},br:!0,img:{src:!0,width:!0,height:!0},a:{href:!0},b:{},i:{},u:{}}}}]),o}(n);i.default=p,p.displayName="BlockSelection",e.exports=o.default})?i.apply(o,l):i)||(e.exports=u)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/caret.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).needToSelectAll=!1,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"prepare",value:function(){var e=this,o=this.Editor.Shortcuts;o.add({name:"CMD+A",handler:function(o){e.handleCommandA(o)}}),o.add({name:"CMD+C",handler:function(o){e.handleCommandC(o)}}),this.selection=new f.default}},{key:"clearSelection",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=this.Editor.BlockManager,t=-1!==o.blocks.findIndex(function(e){return!0===e.selected});t&&(this.needToSelectAll=!1,o.blocks.forEach(function(e){return e.selected=!1}),e&&this.selection.restore())}},{key:"handleCommandA",value:function(e){e.preventDefault(),this.needToSelectAll?(this.selectAllBlocks(),this.needToSelectAll=!1):(this.selectBlockByIndex(),this.needToSelectAll=!0)}},{key:"handleCommandC",value:function(e){var o=this,t=this.Editor,n=t.BlockManager,s=t.Sanitizer,r=n.blocks.some(function(e){return!0===e.selected});if(r){var i=c.default.make("div");n.blocks.filter(function(e){return e.selected}).forEach(function(e){var t=s.clean(e.holder.innerHTML,o.sanitizerConfig),n=c.default.make("p");n.innerHTML=t,i.appendChild(n)}),a.default.copyTextToClipboard(i.innerHTML)}}},{key:"selectAllBlocks",value:function(){var e=this.Editor.BlockManager;e.blocks.forEach(function(e){return e.selected=!0})}},{key:"selectBlockByIndex",value:function(e){var o,t=this.Editor.BlockManager;t.clearFocused(),o=isNaN(e)?t.currentBlock:t.getBlockByIndex(e),this.selection.save(),f.default.get().removeAllRanges(),o.selected=!0}},{key:"sanitizerConfig",get:function(){return{p:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},ol:{},ul:{},li:{},br:!0,img:{src:!0,width:!0,height:!0},a:{href:!0},b:{},i:{},u:{}}}}]),o}(d.default);n.default=p,p.displayName="BlockSelection",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/caret.ts": /*!*****************************************!*\ - !*** ./src/components/modules/caret.js ***! + !*** ./src/components/modules/caret.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(e){var t=e.config;return(0,l.default)(this,o),(0,d.default)(this,(0,c.default)(o).call(this,{config:t}))}return(0,a.default)(o,e),(0,u.default)(o,[{key:"setToBlock",value:function(e){var t,n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=this.Editor.BlockManager;switch(i){case o.positions.START:t=e.firstInput;break;case o.positions.END:t=e.lastInput;break;default:t=e.currentInput}if(t){var d=s.getDeepestNode(t,i===o.positions.END),c=s.getContentLength(d);switch(!0){case i===o.positions.START:l=0;break;case i===o.positions.END:case l>c:l=c}r.delay(function(){n.set(d,l)},20)(),u.setCurrentBlockByChildNode(e.holder),u.currentBlock.currentInput=t}}},{key:"setToInput",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=this.Editor.BlockManager.currentBlock,i=s.getDeepestNode(e);switch(t){case o.positions.START:this.set(i,0);break;case o.positions.END:var l=s.getContentLength(i);this.set(i,l);break;default:n&&this.set(i,n)}r.currentInput=e}},{key:"set",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=document.createRange(),n=f.default.get();if(s.isNativeInput(e))return e.focus(),void(e.selectionStart=e.selectionEnd=o);t.setStart(e,o),t.setEnd(e,o),n.removeAllRanges(),n.addRange(t);var r=t.getBoundingClientRect(),i=r.top,l=r.bottom,u=window,d=u.innerHeight;i<0&&window.scrollBy(0,i),l>d&&window.scrollBy(0,l-d)}},{key:"setToTheLastBlock",value:function(){var e=this.Editor.BlockManager.lastBlock;if(e)if(e.isEmpty)this.setToBlock(e);else{var o=this.Editor.BlockManager.insertAtEnd();this.setToBlock(o)}}},{key:"extractFragmentFromCaretPosition",value:function(){var e=f.default.get();if(e.rangeCount){var o=e.getRangeAt(0),t=this.Editor.BlockManager.currentBlock.currentInput;if(o.deleteContents(),t){var n=o.cloneRange(!0);return n.selectNodeContents(t),n.setStart(o.endContainer,o.endOffset),n.extractContents()}}}},{key:"getHigherLevelSiblings",value:function(e,o){for(var t=e,n=[];t.parentNode&&"true"!==t.parentNode.contentEditable;)t=t.parentNode;for(var s="left"===o?"previousSibling":"nextSibling";t[s];)t=t[s],n.push(t);return n}},{key:"navigateNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.nextContentfulBlock,r=n.nextInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.START),0):!this.isAtEnd||(r?this.setToInput(r,o.positions.START):this.setToBlock(s,o.positions.START),0)))}},{key:"navigatePrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.previousContentfulBlock,r=n||{},i=r.previousInput;return!(!s&&!i||(e&&this.setToBlock(s,o.positions.END),!this.isAtStart||(i?this.setToInput(i,o.positions.END):this.setToBlock(s,o.positions.END),0)))}},{key:"createShadow",value:function(e){var t=document.createElement("span");t.classList.add(o.CSS.shadowCaret),e.insertAdjacentElement("beforeEnd",t)}},{key:"restoreCaret",value:function(e){var t=e.querySelector(".".concat(o.CSS.shadowCaret));if(t){var n=new f.default;n.expandToTag(t),setTimeout(function(){var e=document.createRange();e.selectNode(t),e.extractContents()},50)}}},{key:"isAtStart",get:function(){if(!f.default.isCollapsed)return!1;var e=f.default.get(),o=e.anchorNode,t=s.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);if(s.isNativeInput(t))return 0===t.selectionEnd;var n=o.textContent.search(/\S/);if(-1===n&&(n=0),s.isEmpty(t)){var r=this.getHigherLevelSiblings(o,"left"),i=r.every(function(e){return s.isEmpty(e)});if(i&&e.anchorOffset===n)return!0}return null===t||o===t&&e.anchorOffset<=n}},{key:"isAtEnd",get:function(){if(!f.default.isCollapsed)return!1;var e=f.default.get(),o=e.anchorNode,t=s.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput,!0);if(s.isNativeInput(t))return t.selectionEnd===t.value.length;if(s.isEmpty(t)){var n=this.getHigherLevelSiblings(o,"right"),r=n.every(function(e){return s.isEmpty(e)});if(r&&e.anchorOffset===o.textContent.length)return!0}var i=t.textContent.replace(/\s+$/,"");return o===t&&e.anchorOffset>=i.length}}],[{key:"CSS",get:function(){return{shadowCaret:"cdx-shadow-caret"}}},{key:"positions",get:function(){return{START:"start",END:"end",DEFAULT:"default"}}}]),o}(n);i.default=p,p.displayName="Caret",e.exports=o.default})?i.apply(o,l):i)||(e.exports=u)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/dragNDrop.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"setToBlock",value:function(e){var t,n=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=this.Editor.BlockManager;switch(s){case o.positions.START:t=e.firstInput;break;case o.positions.END:t=e.lastInput;break;default:t=e.currentInput}if(t){var l=c.default.getDeepestNode(t,s===o.positions.END),u=c.default.getContentLength(l);switch(!0){case s===o.positions.START:r=0;break;case s===o.positions.END:case r>u:r=u}f.default.delay(function(){n.set(l,r)},20)(),i.setCurrentBlockByChildNode(e.holder),i.currentBlock.currentInput=t}}},{key:"setToInput",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.positions.DEFAULT,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=this.Editor.BlockManager.currentBlock,r=c.default.getDeepestNode(e);switch(t){case o.positions.START:this.set(r,0);break;case o.positions.END:var i=c.default.getContentLength(r);this.set(r,i);break;default:n&&this.set(r,n)}s.currentInput=e}},{key:"set",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=document.createRange(),n=d.default.get();if(c.default.isNativeInput(e))return e.focus(),void(e.selectionStart=e.selectionEnd=o);t.setStart(e,o),t.setEnd(e,o),n.removeAllRanges(),n.addRange(t);var s=t.getBoundingClientRect(),r=s.top,i=s.bottom,l=window,u=l.innerHeight;r<0&&window.scrollBy(0,r),i>u&&window.scrollBy(0,i-u)}},{key:"setToTheLastBlock",value:function(){var e=this.Editor.BlockManager.lastBlock;if(e)if(e.isEmpty)this.setToBlock(e);else{var o=this.Editor.BlockManager.insertAtEnd();this.setToBlock(o)}}},{key:"extractFragmentFromCaretPosition",value:function(){var e=d.default.get();if(e.rangeCount){var o=e.getRangeAt(0),t=this.Editor.BlockManager.currentBlock.currentInput;if(o.deleteContents(),t){var n=o.cloneRange();return n.selectNodeContents(t),n.setStart(o.endContainer,o.endOffset),n.extractContents()}}}},{key:"navigateNext",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.nextContentfulBlock,r=n.nextInput;return!(!s&&!r||(e?(this.setToBlock(s,o.positions.START),0):!this.isAtEnd||(r?this.setToInput(r,o.positions.START):this.setToBlock(s,o.positions.START),0)))}},{key:"navigatePrevious",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.Editor.BlockManager,n=t.currentBlock,s=t.previousContentfulBlock;if(!n)return!1;var r=n.previousInput;return!(!s&&!r||(e&&this.setToBlock(s,o.positions.END),!this.isAtStart||(r?this.setToInput(r,o.positions.END):this.setToBlock(s,o.positions.END),0)))}},{key:"createShadow",value:function(e){var t=document.createElement("span");t.classList.add(o.CSS.shadowCaret),e.insertAdjacentElement("beforeEnd",t)}},{key:"restoreCaret",value:function(e){var t=e.querySelector(".".concat(o.CSS.shadowCaret));if(t){var n=new d.default;n.expandToTag(t),setTimeout(function(){var e=document.createRange();e.selectNode(t),e.extractContents()},50)}}},{key:"getHigherLevelSiblings",value:function(e,o){for(var t=e,n=[];t.parentNode&&"true"!==t.parentNode.contentEditable;)t=t.parentNode;for(var s="left"===o?"previousSibling":"nextSibling";t[s];)t=t[s],n.push(t);return n}},{key:"isAtStart",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=c.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput);if(c.default.isNativeInput(t))return 0===t.selectionEnd;var n=o.textContent.search(/\S/);if(-1===n&&(n=0),c.default.isEmpty(t)){var s=this.getHigherLevelSiblings(o,"left"),r=s.every(function(e){return c.default.isEmpty(e)});if(r&&e.anchorOffset===n)return!0}return null===t||o===t&&e.anchorOffset<=n}},{key:"isAtEnd",get:function(){if(!d.default.isCollapsed)return!1;var e=d.default.get(),o=e.anchorNode,t=c.default.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput,!0);if(c.default.isNativeInput(t))return t.selectionEnd===t.value.length;if(c.default.isEmpty(t)){var n=this.getHigherLevelSiblings(o,"right"),s=n.every(function(e){return c.default.isEmpty(e)});if(s&&e.anchorOffset===o.textContent.length)return!0}var r=t.textContent.replace(/\s+$/,"");return o===t&&e.anchorOffset>=r.length}}],[{key:"positions",get:function(){return{START:"start",END:"end",DEFAULT:"default"}}},{key:"CSS",get:function(){return{shadowCaret:"cdx-shadow-caret"}}}]),o}(a.default);n.default=p,p.displayName="Caret",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/dragNDrop.ts": /*!*********************************************!*\ !*** ./src/components/modules/dragNDrop.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(){var e;return(0,l.default)(this,o),(e=(0,d.default)(this,(0,c.default)(o).apply(this,arguments))).isStartedAtEditor=!1,e.processDrop=function(){var o=(0,i.default)(r.default.mark(function o(t){var n,s,i;return r.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=e.Editor,s=n.BlockManager,i=n.Paste,t.preventDefault(),s.blocks.forEach(function(e){return e.dropTarget=!1}),f.default.isAtEditor&&!f.default.isCollapsed&&e.isStartedAtEditor&&document.execCommand("delete"),e.isStartedAtEditor=!1;try{s.setCurrentBlockByChildNode(t.target,"end")}catch(e){s.setCurrentBlockByChildNode(s.lastBlock.holder,"end")}i.processDataTransfer(t.dataTransfer,!0);case 7:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,a.default)(o,e),(0,u.default)(o,[{key:"prepare",value:function(){this.bindEvents()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"drop",this.processDrop,!0),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragstart",function(o){f.default.isAtEditor&&!f.default.isCollapsed&&(e.isStartedAtEditor=!0),e.Editor.InlineToolbar.close()}),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragover",function(e){return e.preventDefault()},!0)}}]),o}(n);s.default=p,p.displayName="DragNDrop",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/events.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ./caret */"./src/components/modules/caret.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),a=p(a),c=p(c),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).isStartedAtEditor=!1,e.processDrop=function(){var o=(0,r.default)(s.default.mark(function o(t){var n,r,i;return s.default.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=e.Editor,r=n.BlockManager,i=n.Paste,t.preventDefault(),r.blocks.forEach(function(e){return e.dropTarget=!1}),c.default.isAtEditor&&!c.default.isCollapsed&&e.isStartedAtEditor&&document.execCommand("delete"),e.isStartedAtEditor=!1;try{r.setCurrentBlockByChildNode(t.target,m.default.positions.END)}catch(e){r.setCurrentBlockByChildNode(r.lastBlock.holder,m.default.positions.END)}i.processDataTransfer(t.dataTransfer,!0);case 7:case"end":return o.stop()}},o,this)}));return function(e){return o.apply(this,arguments)}}(),e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){this.bindEvents()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"drop",this.processDrop,!0),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragstart",function(o){c.default.isAtEditor&&!c.default.isCollapsed&&(e.isStartedAtEditor=!0),e.Editor.InlineToolbar.close()}),this.Editor.Listeners.on(this.Editor.UI.nodes.holder,"dragover",function(e){return e.preventDefault()},!0)}}]),o}(f.default);n.default=h,h.displayName="DragNDrop",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/events.ts": /*!******************************************!*\ - !*** ./src/components/modules/events.js ***! + !*** ./src/components/modules/events.ts ***! \******************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t,n=e.config;return(0,r.default)(this,o),(t=(0,l.default)(this,(0,u.default)(o).call(this,{config:n}))).subscribers={},t}return(0,d.default)(o,e),(0,i.default)(o,[{key:"on",value:function(e,o){e in this.subscribers||(this.subscribers[e]=[]),this.subscribers[e].push(o)}},{key:"emit",value:function(e,o){this.subscribers[e]&&this.subscribers[e].reduce(function(e,o){var t=o(e);return t||e},o)}},{key:"off",value:function(e,o){for(var t=0;t3&&void 0!==arguments[3]&&arguments[3],s={element:e,eventType:o,handler:t,useCapture:n},r=this.findOne(e,o,t);r||(this.allListeners.push(s),e.addEventListener(o,t,n))}},{key:"off",value:function(e,o,t){for(var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=this.findAll(e,o,t),r=0;r0&&this.allListeners.splice(i,1)}e.removeEventListener(o,t,n)}},{key:"findByElement",value:function(e){for(var o=[],t=0;t0?n[0]:null}},{key:"findAll",value:function(e,o,t){var n=e?this.findByElement(e):[];return e&&o&&t?n.filter(function(e){return e.eventType===o&&e.handler===t}):e&&o?n.filter(function(e){return e.eventType===o}):n}},{key:"removeAll",value:function(){this.allListeners.map(function(e){e.element.removeEventListener(e.eventType,e.handler)}),this.allListeners=[]}}]),o}(n);s.default=a,a.displayName="Listeners",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/modificationsObserver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u);var c=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).allListeners=[],e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"on",value:function(e,o,t){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s={element:e,eventType:o,handler:t,useCapture:n},r=this.findOne(e,o,t);r||(this.allListeners.push(s),e.addEventListener(o,t,n))}},{key:"off",value:function(e,o,t){var n=this,s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=this.findAll(e,o,t);r.forEach(function(e,o){var t=n.allListeners.indexOf(r[o]);t>0&&n.allListeners.splice(t,1)}),e.removeEventListener(o,t,s)}},{key:"findOne",value:function(e,o,t){var n=this.findAll(e,o,t);return n.length>0?n[0]:null}},{key:"findAll",value:function(e,o,t){var n=e?this.findByEventTarget(e):[];return e&&o&&t?n.filter(function(e){return e.eventType===o&&e.handler===t}):e&&o?n.filter(function(e){return e.eventType===o}):n}},{key:"removeAll",value:function(){this.allListeners.map(function(e){e.element.removeEventListener(e.eventType,e.handler)}),this.allListeners=[]}},{key:"findByEventTarget",value:function(e){return this.allListeners.filter(function(o){if(o.element===e)return o})}},{key:"findByType",value:function(e){return this.allListeners.filter(function(o){if(o.eventType===e)return o})}},{key:"findByHandler",value:function(e){return this.allListeners.filter(function(o){if(o.handler===e)return o})}}]),o}((d=a(d)).default);n.default=c,c.displayName="Listeners",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/modificationsObserver.ts": /*!*********************************************************!*\ !*** ./src/components/modules/modificationsObserver.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=m(i),l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(e){var t,n=e.config;return(0,u.default)(this,o),(t=(0,c.default)(this,(0,a.default)(o).call(this,{config:n}))).mutationDebouncer=s.debounce(function(){t.config.onChange.call()},o.DebounceTimer),t}return(0,f.default)(o,e),(0,d.default)(o,[{key:"destroy",value:function(){this.mutationDebouncer=null}},{key:"prepare",value:function(){var e=(0,l.default)(i.default.mark(function e(){var o=this;return i.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.setTimeout(function(){o.setObserver()},1e3);case 1:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"setObserver",value:function(){var e=this,o=this.Editor,t=o.Listeners,n=o.UI;t.on(n.nodes.redactor,"DOMSubtreeModified",function(){e.mutationDebouncer()},!1)}}]),o}(n);r.default=p,p.displayName="ModificationsObserver",p.DebounceTimer=450,e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/notifier.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=m(s),r=m(r),i=m(i),l=m(l),u=m(u),d=m(d),a=m(a),c=m(c),f=m(f);var p=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).mutationDebouncer=f.default.debounce(function(){e.config.onChange()},o.DebounceTimer),e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"destroy",value:function(){this.mutationDebouncer=null}},{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o=this;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:window.setTimeout(function(){o.setObserver()},1e3);case 1:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"setObserver",value:function(){var e=this,o=this.Editor,t=o.Listeners,n=o.UI;t.on(n.nodes.redactor,"DOMSubtreeModified",function(){e.mutationDebouncer()},!1)}}]),o}(c.default);n.default=p,p.displayName="ModificationsObserver",p.DebounceTimer=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/notifier.ts": /*!********************************************!*\ !*** ./src/components/modules/notifier.ts ***! \********************************************/ -/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! codex-notifier */"./node_modules/codex-notifier/dist/bundle.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=a(s),r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){c.default.show(e)}}]),o}(d.default);n.default=f,f.displayName="Notifier",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/paste.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! codex-notifier */"./node_modules/codex-notifier/dist/bundle.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){return(0,s.default)(this,o),(0,i.default)(this,(0,l.default)(o).apply(this,arguments))}return(0,u.default)(o,e),(0,r.default)(o,[{key:"show",value:function(e){a.default.show(e)}}]),o}(d.default);n.default=f,f.displayName="Notifier",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/paste.ts": /*!*****************************************!*\ !*** ./src/components/modules/paste.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/helpers/toConsumableArray */"./node_modules/@babel/runtime/helpers/toConsumableArray.js"),t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! @babel/runtime/helpers/assertThisInitialized */"./node_modules/@babel/runtime/helpers/assertThisInitialized.js"),t(/*! ./caret */"./src/components/modules/caret.js"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f,m,p,h,j,_,v){"use strict";var b=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=b(l),u=b(u),d=b(d),c=b(c),a=b(a),f=b(f),m=b(m),p=b(p),h=b(h),j=b(j),_=b(_),v=b(v);var g=function(e){function o(e){var t,n=e.config;return(0,a.default)(this,o),(t=(0,m.default)(this,(0,p.default)(o).call(this,{config:n}))).toolsTags={},t.tagsByTool={},t.toolsPatterns=[],t.toolsFiles={},t.processTool=function(e){var o=(0,c.default)(e,2),n=o[0],r=o[1];try{var i=r.onPaste||{};t.getTagsConfig(n,i),t.getFilesConfig(n,i),t.getPatternsConfig(n,i)}catch(e){s.log("Paste handling for «".concat(n,"» Tool hasn't been set up because of the error"),"warn",e)}},t.handlePasteEvent=function(){var e=(0,d.default)(u.default.mark(function e(o){var n,s;return u.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(0,j.default)((0,j.default)(t)),(s=n.Editor).Sanitizer,s.BlockManager,s.Tools,s.Caret,!t.isNativeBehaviour(o.target)||o.clipboardData.types.includes("Files")){e.next=3;break}return e.abrupt("return");case 3:o.preventDefault(),t.processDataTransfer(o.clipboardData);case 5:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}(),t}return(0,h.default)(o,e),(0,f.default)(o,[{key:"prepare",value:function(){var e=(0,d.default)(u.default.mark(function e(){return u.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,d.default)(u.default.mark(function e(o){var t,n,s,i,l,d,c,a=arguments;return u.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>1&&void 0!==a[1]&&a[1],n=this.Editor.Sanitizer,!o.types.includes("Files")){e.next=6;break}return e.next=5,this.processFiles(o.items);case 5:return e.abrupt("return");case 6:if(s=o.getData("text/plain"),i=o.getData("text/html"),t&&s.trim()&&i.trim()&&(i="

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

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

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

"),l=Object.keys(this.toolsTags).reduce(function(e,o){return e[o.toLowerCase()]=!0,e},{}),u=Object.assign({},l,n.getAllInlineToolsConfig()),(d=n.clean(i,u)).trim()&&d.trim()!==s&&j.default.isHTMLString(d)){e.next=17;break}return e.next=15,this.processText(s);case 15:e.next=19;break;case 17:return e.next=19,this.processText(d,!0);case 19:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"setCallback",value:function(){var e=this.Editor,o=e.Listeners,t=e.UI;o.on(t.nodes.redactor,"paste",this.handlePasteEvent)}},{key:"processTools",value:function(){var e=this.Editor.Tools.blockTools;Object.entries(e).forEach(this.processTool)}},{key:"getTagsConfig",value:function(e,o){var t=this;if(this.config.initialBlock!==e||o.handler||_.default.log("«".concat(e,"» Tool must provide a paste handler."),"warn"),o.handler)if("function"==typeof o.handler){var n=o.tags||[];n.forEach(function(n){t.toolsTags.hasOwnProperty(n)?_.default.log("Paste handler for «".concat(e,"» Tool on «").concat(n,"» tag is skipped ")+"because it is already used by «".concat(t.toolsTags[n].tool,"» Tool."),"warn"):t.toolsTags[n.toUpperCase()]={handler:o.handler,tool:e}}),this.tagsByTool[e]=n.map(function(e){return e.toUpperCase()})}else _.default.log("Paste handler for «".concat(e,"» Tool should be a function."),"warn")}},{key:"getFilesConfig",value:function(e,o){var t=o.fileHandler,n=o.files,s=void 0===n?{}:n,r=s.extensions,i=s.mimeTypes;t&&(r||i)&&("function"==typeof t?(r&&!Array.isArray(r)&&(_.default.log("«extensions» property of the onDrop config for «".concat(e,"» Tool should be an array")),r=[]),i&&!Array.isArray(i)&&(_.default.log("«mimeTypes» property of the onDrop config for «".concat(e,"» Tool should be an array")),i=[]),i&&(i=i.filter(function(o){return!!_.default.isValidMimeType(o)||(_.default.log("MIME type value «".concat(o,"» for the «").concat(e,"» Tool is not a valid MIME type"),"warn"),!1)})),this.toolsFiles[e]={extensions:r||[],mimeTypes:i||[],handler:t}):_.default.log("Drop handler for «".concat(e,"» Tool should be a function.")))}},{key:"getPatternsConfig",value:function(e,o){var t=this;o.patternHandler&&!_.default.isEmpty(o.patterns)&&("function"==typeof o.patternHandler?Object.entries(o.patterns).forEach(function(n){var s=(0,l.default)(n,2),r=s[0],i=s[1];i instanceof RegExp||_.default.log("Pattern ".concat(i," for «").concat(e,"» Tool is skipped because it should be a Regexp instance."),"warn"),t.toolsPatterns.push({key:r,pattern:i,handler:o.patternHandler,tool:e})}):_.default.log("Pattern parser for «".concat(e,"» Tool should be a function."),"warn"))}},{key:"isNativeBehaviour",value:function(e){var o=this.Editor.BlockManager;if(j.default.isNativeInput(e))return!0;var t=o.getBlock(e);return!t}},{key:"processFiles",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n=this;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.Editor.BlockManager,e.next=3,Promise.all(Array.from(o).map(function(e){return n.processFile(e)}));case 3:e.sent.filter(function(e){return!!e}).forEach(function(e,o){0===o&&t.currentBlock&&t.currentBlock.isEmpty?t.replace(e.type,e.data):t.insert(e.type,e.data)});case 6:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processFile",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,i,u,d;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!==o.kind){e.next=2;break}return e.abrupt("return");case 2:if(t=o.getAsFile(),n=_.default.getFileExtension(t),s=Object.entries(this.toolsFiles).find(function(e){var o=(0,l.default)(e,2),s=(o[0],o[1]),r=s.mimeTypes,i=s.extensions,u=t.type.split("/"),d=(0,l.default)(u,2),a=d[0],c=d[1],f=i.find(function(e){return e.toLowerCase()===n.toLowerCase()}),m=r.find(function(e){var o=e.split("/"),t=(0,l.default)(o,2),n=t[0],s=t[1];return n===a&&(s===c||"*"===s)});return!!f||!!m})){e.next=7;break}return e.abrupt("return");case 7:return i=(0,l.default)(s,2),u=i[0],d=i[1].handler,e.next=10,d(t);case 10:return e.t0=e.sent,e.t1=u,e.abrupt("return",{data:e.t0,type:e.t1});case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processText",value:function(){var e=(0,i.default)(r.default.mark(function e(o){var t,n,s,l,u,d=this,a=arguments;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=a.length>1&&void 0!==a[1]&&a[1],n=this.Editor,s=n.Caret,l=n.BlockManager,(u=t?this.processHTML(o):this.processPlain(o)).length){e.next=5;break}return e.abrupt("return");case 5:if(1!==u.length||u[0].isBlock){e.next=8;break}return this.processSingleBlock(u.pop()),e.abrupt("return");case 8:return p.default.isAtEditor&&!s.isAtEnd&&p.default.isCollapsed&&this.splitBlock(),e.next=11,Promise.all(u.map(function(){var e=(0,i.default)(r.default.mark(function e(o,t){return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.insertBlock(o,0===t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}()));case 11:s.setToBlock(l.currentBlock,m.default.positions.END);case 12:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"processHTML",value:function(e){var o=this,t=this.Editor,n=t.Tools,s=t.Sanitizer,r=this.config.initialBlock,i=j.default.make("DIV");i.innerHTML=e;var l=this.getNodes(i);return l.map(function(e){var t,i=r,l=!1;switch(e.nodeType){case Node.DOCUMENT_FRAGMENT_NODE:(t=j.default.make("div")).appendChild(e);break;case Node.ELEMENT_NODE:t=e,l=!0,o.toolsTags[t.tagName]&&(i=o.toolsTags[t.tagName].tool)}var u=n.blockTools[i].onPaste,d=u.handler,a=u.tags,c=a.reduce(function(e,o){return e[o.toLowerCase()]={},e},{}),f=Object.assign({},c,s.getInlineToolsConfig(i));return t.innerHTML=s.clean(t.innerHTML,f),{content:t,isBlock:l,handler:d,tool:i}}).filter(function(e){return!j.default.isNodeEmpty(e.content)||j.default.isSingleTag(e.content)})}},{key:"processPlain",value:function(e){var o=this.config.initialBlock,t=this.Editor.Tools;if(!e)return[];var n=o,s=t.blockTools[n].onPaste.handler;return e.split(/\r?\n/).filter(function(e){return e.trim()}).map(function(e){var o=j.default.make("div");return o.innerHTML=e,{content:o,tool:n,isBlock:!1,handler:s}})}},{key:"processSingleBlock",value:function(){var e=(0,i.default)(r.default.mark(function e(t){var n,s,i,l,u,d,a,c,f,p,h;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.config.initialBlock,s=this.Editor,i=s.BlockManager,l=s.Caret,u=s.Sanitizer,d=t.content,!((a=t.tool)===n&&d.textContent.length1&&void 0!==a[1]&&a[1],e.next=3,o.handler(o.content);case 3:if(n=e.sent,s=this.Editor,i=s.BlockManager,l=s.Caret,u=i.currentBlock,!(t&&u&&u.isEmpty)){e.next=11;break}return i.replace(o.tool,n),e.abrupt("return");case 11:d=i.insert(o.tool,n),l.setToBlock(d);case 13:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"splitBlock",value:function(){var e=this.Editor,o=e.BlockManager,t=e.Caret;o.currentBlock&&(o.currentBlock.isEmpty||t.isAtEnd||(o.split(),o.currentBlockIndex--))}},{key:"getNodes",value:function(e){var o=this,t=Array.from(e.childNodes),n=Object.keys(this.toolsTags);return t.reduce(function e(t,r){if(j.default.isEmpty(r)&&!j.default.isSingleTag(r))return t;var i=t[t.length-1],l=new DocumentFragment;switch(i&&j.default.isFragment(i)&&(l=t.pop()),r.nodeType){case Node.ELEMENT_NODE:var u=r,d=o.toolsTags[u.tagName]||{},a=d.tool,c=void 0===a?"":a,f=o.tagsByTool[c]||[],m=n.includes(u.tagName),p=j.default.blockElements.includes(u.tagName.toLowerCase()),h=Array.from(u.children).some(function(e){var o=e.tagName;return n.includes(o)&&!f.includes(o)}),_=Array.from(u.children).some(function(e){var o=e.tagName;return j.default.blockElements.includes(o.toLowerCase())});if(!p&&!m)return l.appendChild(u),(0,s.default)(t).concat([l]);if(m&&!h||p&&!_&&!h)return(0,s.default)(t).concat([l,u]);break;case Node.TEXT_NODE:return l.appendChild(r),(0,s.default)(t).concat([l]);default:return(0,s.default)(t).concat([l])}return(0,s.default)(t).concat((0,s.default)(Array.from(r.childNodes).reduce(e,[])))},[])}}]),o}(h.default);n.default=v,v.displayName="Paste",v.PATTERN_PROCESSING_MAX_LENGTH=450,e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/renderer.ts": /*!********************************************!*\ - !*** ./src/components/modules/renderer.js ***! + !*** ./src/components/modules/renderer.ts ***! \********************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t=e.config;return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).call(this,{config:t}))}return(0,c.default)(o,e),(0,l.default)(o,[{key:"render",value:function(e){for(var o=this,t=[],n=function(n){t.push({function:function(){return o.insertBlock(e[n])}})},r=0;r1&&void 0!==arguments[1]?arguments[1]:{},t={tags:o},n=this.createHTMLJanitorInstance(t);return n.clean(e)}},{key:"composeToolConfig",value:function(e){if(this.configCache[e])return this.configCache[e];var o=this.Editor.Tools.apiSettings.SANITIZE_CONFIG,t=this.Editor.Tools.available[e],n=this.getInlineToolsConfig(e);if(!t.sanitize||t[o]&&s.isEmpty(t[o]))return n;var r=t.sanitize,i={};for(var u in r)if(r.hasOwnProperty(u)){var d=r[u];"object"===(0,l.default)(d)?i[u]=Object.assign({},n,d):i[u]=d}return this.configCache[e]=i,i}},{key:"getInlineToolsConfig",value:function(e){var o=this.Editor.Tools,t=o.getToolSettings(e),n=t.inlineToolbar||[],s={};return"boolean"==typeof n&&n?s=this.getAllInlineToolsConfig():n.map(function(e){s=Object.assign(s,o.inline[e][o.apiSettings.SANITIZE_CONFIG])}),s}},{key:"getAllInlineToolsConfig",value:function(){var e=this.Editor.Tools;if(this.inlineToolsConfigCache)return this.inlineToolsConfigCache;var o={};return Object.entries(e.inline).forEach(function(t){var n=(0,i.default)(t,2),s=(n[0],n[1]);Object.assign(o,s[e.apiSettings.SANITIZE_CONFIG])}),this.inlineToolsConfigCache=o,this.inlineToolsConfigCache}},{key:"cleanArray",value:function(e,o){var t=this;return e.map(function(e){return t.deepSanitize(e,o)})}},{key:"cleanObject",value:function(e,o){var t={};for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=this.isRule(o[n])?o[n]:o;t[n]=this.deepSanitize(s,r)}return t}},{key:"cleanOneItem",value:function(e,o){return"object"===(0,l.default)(o)?this.clean(e,o):!1===o?this.clean(e,{}):e}},{key:"isRule",value:function(e){return"object"===(0,l.default)(e)||"boolean"==typeof e||"function"==typeof e}},{key:"createHTMLJanitorInstance",value:function(e){return e?new m.default(e):null}}]),o}(n);r.default=h,h.displayName="Sanitizer",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/saver.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! html-janitor */"./node_modules/html-janitor/src/html-janitor.js")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=p(s),r=p(r),i=p(i),l=p(l),u=p(u),d=p(d),a=p(a),c=p(c),f=p(f),m=p(m);var h=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).configCache={},e.inlineToolsConfigCache=null,e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"sanitizeBlocks",value:function(e){var o=this;return e.map(function(e){var t=o.composeToolConfig(e.tool);return f.default.isEmpty(t)?e:(e.data=o.deepSanitize(e.data,t),e)})}},{key:"deepSanitize",value:function(e,o){return Array.isArray(e)?this.cleanArray(e,o):"object"===(0,r.default)(e)?this.cleanObject(e,o):"string"==typeof e?this.cleanOneItem(e,o):e}},{key:"clean",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={tags:o},n=this.createHTMLJanitorInstance(t);return n.clean(e)}},{key:"composeToolConfig",value:function(e){if(this.configCache[e])return this.configCache[e];var o=this.Editor.Tools.apiSettings.SANITIZE_CONFIG,t=this.Editor.Tools.available[e],n=this.getInlineToolsConfig(e);if(!t.sanitize||t[o]&&f.default.isEmpty(t[o]))return n;var s=t.sanitize,i={};for(var l in s)if(s.hasOwnProperty(l)){var u=s[l];"object"===(0,r.default)(u)?i[l]=Object.assign({},n,u):i[l]=u}return this.configCache[e]=i,i}},{key:"getInlineToolsConfig",value:function(e){var o=this.Editor.Tools,t=o.getToolSettings(e),n=t.inlineToolbar||[],s={};return"boolean"==typeof n&&n?s=this.getAllInlineToolsConfig():n.map(function(e){s=Object.assign(s,o.inline[e][o.apiSettings.SANITIZE_CONFIG])}),s}},{key:"getAllInlineToolsConfig",value:function(){var e=this.Editor.Tools;if(this.inlineToolsConfigCache)return this.inlineToolsConfigCache;var o={};return Object.entries(e.inline).forEach(function(t){var n=(0,s.default)(t,2),r=(n[0],n[1]);Object.assign(o,r[e.apiSettings.SANITIZE_CONFIG])}),this.inlineToolsConfigCache=o,this.inlineToolsConfigCache}},{key:"cleanArray",value:function(e,o){var t=this;return e.map(function(e){return t.deepSanitize(e,o)})}},{key:"cleanObject",value:function(e,o){var t={};for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=this.isRule(o[n])?o[n]:o;t[n]=this.deepSanitize(s,r)}return t}},{key:"cleanOneItem",value:function(e,o){return"object"===(0,r.default)(o)?this.clean(e,o):!1===o?this.clean(e,{}):e}},{key:"isRule",value:function(e){return"object"===(0,r.default)(e)||"boolean"==typeof e||"function"==typeof e}},{key:"createHTMLJanitorInstance",value:function(e){return e?new m.default(e):null}}]),o}(c.default);n.default=h,h.displayName="Sanitizer",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/saver.ts": /*!*****************************************!*\ !*** ./src/components/modules/saver.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var a=function(e){function o(e){var t,n=e.config;return(0,r.default)(this,o),(t=(0,l.default)(this,(0,u.default)(o).call(this,{config:n}))).output=null,t.blocksData=[],t}return(0,d.default)(o,e),(0,i.default)(o,[{key:"save",value:function(){var e=this,o=this.Editor.BlockManager.blocks,t=[];return o.forEach(function(e){t.push(e.data)}),Promise.all(t).then(function(o){return e.Editor.Sanitizer.sanitizeBlocks(o)}).then(function(o){return e.makeOutput(o)}).then(function(e){return e})}},{key:"makeOutput",value:function(e){var o=0,t=[];return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«".concat(e.tool,"» saving info"),e),o+=e.time,t.push({type:e.tool,data:e.data})}),console.log("Total",o),console.groupEnd(),{time:+new Date,version:"2.4.3",blocks:t}}}]),o}(n);s.default=a,a.displayName="Saver",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/shortcuts.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),a=f(a);var m=function(e){function o(){return(0,i.default)(this,o),(0,u.default)(this,(0,d.default)(o).apply(this,arguments))}return(0,a.default)(o,e),(0,l.default)(o,[{key:"save",value:function(){var e=(0,r.default)(s.default.mark(function e(){var o,t,n,r;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=this.Editor.BlockManager.blocks,t=[],o.forEach(function(e){t.push(e.data)}),e.next=4,Promise.all(t);case 4:return n=e.sent,e.next=7,this.Editor.Sanitizer.sanitizeBlocks(n);case 7:return r=e.sent,e.abrupt("return",this.makeOutput(r));case 9:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"makeOutput",value:function(e){var o=0,t=[];return console.groupCollapsed("[CodexEditor saving]:"),e.forEach(function(e){console.log("«".concat(e.tool,"» saving info"),e),o+=e.time,t.push({type:e.tool,data:e.data})}),console.log("Total",o),console.groupEnd(),{time:+new Date,blocks:t,version:"2.5.0"}}}]),o}((c=f(c)).default);n.default=m,m.displayName="Saver",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/shortcuts.ts": /*!*********************************************!*\ !*** ./src/components/modules/shortcuts.ts ***! \*********************************************/ -/*! no static exports found */function(e,o,t){(function(n){var s,r,i;r=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! @codexteam/shortcuts */"./node_modules/@codexteam/shortcuts/lib/shortcuts.js")],void 0===(i="function"==typeof(s=function(s,r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(s,"__esModule",{value:!0}),s.default=void 0,r=a(r),i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t,n=e.config;return(0,r.default)(this,o),(t=(0,l.default)(this,(0,u.default)(o).call(this,{config:n}))).registeredShortcuts=[],t}return(0,d.default)(o,e),(0,i.default)(o,[{key:"add",value:function(e){var o=this.Editor.UI,t=new c.default({name:e.name,on:o.nodes.redactor,callback:e.handler});this.registeredShortcuts.push(t)}},{key:"remove",value:function(e){}}]),o}(n);s.default=f,f.displayName="Shortcuts",e.exports=o.default})?s.apply(o,r):s)||(e.exports=i)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"))},"./src/components/modules/toolbar-blockSettings.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! @codexteam/shortcuts */"./node_modules/@codexteam/shortcuts/lib/shortcuts.js"),t(/*! ../__module */"./src/components/__module.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).registeredShortcuts=[],e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"add",value:function(e){var o=this.Editor.UI,t=new d.default({name:e.name,on:o.nodes.redactor,callback:e.handler});this.registeredShortcuts.push(t)}},{key:"remove",value:function(e){var o=this.registeredShortcuts.findIndex(function(o){return o.name===e});this.registeredShortcuts[o].remove(),this.registeredShortcuts.splice(o,1)}}]),o}((a=c(a)).default);n.default=f,f.displayName="Shortcuts",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/blockSettings.ts": /*!*********************************************************!*\ - !*** ./src/components/modules/toolbar-blockSettings.js ***! + !*** ./src/components/modules/toolbar/blockSettings.ts ***! \*********************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t,n=e.config;return(0,i.default)(this,o),(t=(0,u.default)(this,(0,d.default)(o).call(this,{config:n}))).nodes={wrapper:null,toolSettings:null,defaultSettings:null},t}return(0,c.default)(o,e),(0,l.default)(o,[{key:"make",value:function(){this.nodes.wrapper=s.make("div",o.CSS.wrapper),this.nodes.toolSettings=s.make("div",o.CSS.toolSettings),this.nodes.defaultSettings=s.make("div",o.CSS.defaultSettings),s.append(this.nodes.wrapper,[this.nodes.toolSettings,this.nodes.defaultSettings])}},{key:"addToolSettings",value:function(){"function"==typeof this.Editor.BlockManager.currentBlock.tool.renderSettings&&s.append(this.nodes.toolSettings,this.Editor.BlockManager.currentBlock.tool.renderSettings())}},{key:"addDefaultSettings",value:function(){s.append(this.nodes.defaultSettings,this.Editor.BlockManager.currentBlock.renderTunes())}},{key:"open",value:function(){this.nodes.wrapper.classList.add(o.CSS.wrapperOpened),this.addToolSettings(),this.addDefaultSettings(),this.Editor.Events.emit(this.events.opened)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.wrapperOpened),this.nodes.toolSettings.innerHTML="",this.nodes.defaultSettings.innerHTML="",this.Editor.Events.emit(this.events.closed)}},{key:"events",get:function(){return{opened:"block-settings-opened",closed:"block-settings-closed"}}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.wrapperOpened)}}],[{key:"CSS",get:function(){return{wrapper:"ce-settings",wrapperOpened:"ce-settings--opened",toolSettings:"ce-settings__plugin-zone",defaultSettings:"ce-settings__default-zone",button:"ce-settings__button"}}}]),o}(n);r.default=f,f.displayName="BlockSettings",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"))},"./src/components/modules/toolbar-inline.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,toolSettings:null,defaultSettings:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.wrapper=a.default.make("div",o.CSS.wrapper),this.nodes.toolSettings=a.default.make("div",o.CSS.toolSettings),this.nodes.defaultSettings=a.default.make("div",o.CSS.defaultSettings),a.default.append(this.nodes.wrapper,[this.nodes.toolSettings,this.nodes.defaultSettings])}},{key:"open",value:function(){this.nodes.wrapper.classList.add(o.CSS.wrapperOpened),this.addToolSettings(),this.addDefaultSettings(),this.Editor.Events.emit(this.events.opened)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.wrapperOpened),this.nodes.toolSettings.innerHTML="",this.nodes.defaultSettings.innerHTML="",this.Editor.Events.emit(this.events.closed)}},{key:"addToolSettings",value:function(){"function"==typeof this.Editor.BlockManager.currentBlock.tool.renderSettings&&a.default.append(this.nodes.toolSettings,this.Editor.BlockManager.currentBlock.tool.renderSettings())}},{key:"addDefaultSettings",value:function(){a.default.append(this.nodes.defaultSettings,this.Editor.BlockManager.currentBlock.renderTunes())}},{key:"events",get:function(){return{opened:"block-settings-opened",closed:"block-settings-closed"}}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.wrapperOpened)}}],[{key:"CSS",get:function(){return{wrapper:"ce-settings",wrapperOpened:"ce-settings--opened",toolSettings:"ce-settings__plugin-zone",defaultSettings:"ce-settings__default-zone",button:"ce-settings__button"}}}]),o}(d.default);n.default=f,f.displayName="BlockSettings",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/index.ts": +/*!*************************************************!*\ + !*** ./src/components/modules/toolbar/index.ts ***! + \*************************************************/ +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a){"use strict";var c=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=c(s),r=c(r),i=c(i),l=c(l),u=c(u),d=c(d),a=c(a);var f=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).nodes={wrapper:null,content:null,actions:null,plusButton:null,blockActionsButtons:null,settingsToggler:null},e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){var e=this;this.nodes.wrapper=a.default.make("div",o.CSS.toolbar),["content","actions"].forEach(function(t){e.nodes[t]=a.default.make("div",o.CSS[t]),a.default.append(e.nodes.wrapper,e.nodes[t])}),this.nodes.plusButton=a.default.make("div",o.CSS.plusButton),a.default.append(this.nodes.plusButton,a.default.svg("plus",14,14)),a.default.append(this.nodes.content,this.nodes.plusButton),this.Editor.Listeners.on(this.nodes.plusButton,"click",function(){return e.plusButtonClicked()},!1),this.Editor.Toolbox.make(),this.nodes.blockActionsButtons=a.default.make("div",o.CSS.blockActionsButtons),this.nodes.settingsToggler=a.default.make("span",o.CSS.settingsToggler);var t=a.default.svg("dots",18,4);a.default.append(this.nodes.settingsToggler,t),a.default.append(this.nodes.blockActionsButtons,this.nodes.settingsToggler),a.default.append(this.nodes.actions,this.nodes.blockActionsButtons),this.Editor.BlockSettings.make(),a.default.append(this.nodes.actions,this.Editor.BlockSettings.nodes.wrapper),a.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.bindEvents()}},{key:"move",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e&&(this.Editor.Toolbox.close(),this.Editor.BlockSettings.close());var o=this.Editor.BlockManager.currentBlock.holder;if(o){var t=Math.floor(o.offsetHeight/2);this.nodes.plusButton.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.Editor.Toolbox.nodes.toolbox.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.nodes.wrapper.style.transform="translate3D(0, ".concat(Math.floor(o.offsetTop),"px, 0)")}}},{key:"open",value:function(){var e=this;setTimeout(function(){e.move(),e.nodes.wrapper.classList.add(o.CSS.toolbarOpened)},50)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.toolbarOpened),this.Editor.Toolbox.close(),this.Editor.BlockSettings.close()}},{key:"plusButtonClicked",value:function(){this.Editor.Toolbox.toggle()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.settingsToggler,"click",function(){return e.settingsTogglerClicked()})}},{key:"settingsTogglerClicked",value:function(){this.Editor.BlockSettings.opened?this.Editor.BlockSettings.close():this.Editor.BlockSettings.open()}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.toolbarOpened)}},{key:"plusButton",get:function(){var e=this;return{hide:function(){return e.nodes.plusButton.classList.add(o.CSS.plusButtonHidden)},show:function(){e.Editor.Toolbox.isEmpty||e.nodes.plusButton.classList.remove(o.CSS.plusButtonHidden)}}}}],[{key:"CSS",get:function(){return{toolbar:"ce-toolbar",content:"ce-toolbar__content",actions:"ce-toolbar__actions",toolbarOpened:"ce-toolbar--opened",plusButton:"ce-toolbar__plus",plusButtonHidden:"ce-toolbar__plus--hidden",blockActionsButtons:"ce-toolbar__actions-buttons",settingsToggler:"ce-toolbar__settings-btn"}}}]),o}(d.default);n.default=f,f.displayName="Toolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/inline.ts": /*!**************************************************!*\ - !*** ./src/components/modules/toolbar-inline.ts ***! + !*** ./src/components/modules/toolbar/inline.ts ***! \**************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../selection */"./src/components/selection.ts"),t(/*! ../utils */"./src/components/utils.ts")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c,a,f,m){"use strict";var p=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=p(i),l=p(l),u=p(u),d=p(d),c=p(c),a=p(a),f=p(f),m=p(m);var h=function(e){function o(e){var t,n=e.config;return(0,l.default)(this,o),(t=(0,d.default)(this,(0,c.default)(o).call(this,{config:n}))).CSS={inlineToolbar:"ce-inline-toolbar",inlineToolbarShowed:"ce-inline-toolbar--showed",buttonsWrapper:"ce-inline-toolbar__buttons",actionsWrapper:"ce-inline-toolbar__actions",inlineToolButton:"ce-inline-tool",inlineToolButtonLast:"ce-inline-tool--last"},t.nodes={wrapper:null,buttons:null,actions:null},t.toolbarVerticalMargin=20,t}return(0,a.default)(o,e),(0,u.default)(o,[{key:"make",value:function(){this.nodes.wrapper=s.make("div",this.CSS.inlineToolbar),this.nodes.buttons=s.make("div",this.CSS.buttonsWrapper),this.nodes.actions=s.make("div",this.CSS.actionsWrapper),s.append(this.nodes.wrapper,[this.nodes.buttons,this.nodes.actions]),s.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.addTools()}},{key:"handleShowingEvent",value:function(e){this.allowedToShow(e)?(this.move(),this.open(),this.checkToolsState(),this.Editor.BlockSelection.clearSelection()):this.close()}},{key:"move",value:function(){var e=f.default.rect,o=this.Editor.UI.nodes.wrapper.getBoundingClientRect(),t={x:e.x-o.left,y:e.y+e.height-o.top+this.toolbarVerticalMargin};e.width&&(t.x+=Math.floor(e.width/2)),this.nodes.wrapper.style.left=Math.floor(t.x)+"px",this.nodes.wrapper.style.top=Math.floor(t.y)+"px"}},{key:"open",value:function(){this.filterTools(),this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e,o){"function"==typeof e.clear&&e.clear()})}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e,o){"function"==typeof e.clear&&e.clear()})}},{key:"allowedToShow",value:function(e){if(e&&["IMG","INPUT"].includes(e.target.tagName))return!1;var o=f.default.get(),t=f.default.text;if(!o||!o.anchorNode)return!1;if(o.isCollapsed||t.length<1)return!1;var n=this.Editor.BlockManager.getBlock(o.anchorNode);if(!n)return!1;var s=this.Editor.Tools.getToolSettings(n.name);return s&&s[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]}},{key:"filterTools",value:function(){var e=this,o=f.default.get(),t=this.Editor.BlockManager.getBlock(o.anchorNode),n=this.Editor.Tools.getToolSettings(t.name),s=n&&n[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR],r=Array.from(this.nodes.buttons.querySelectorAll(".".concat(this.CSS.inlineToolButton)));r.forEach(function(o){o.hidden=!1,o.classList.remove(e.CSS.inlineToolButtonLast)}),Array.isArray(s)&&r.forEach(function(e){e.hidden=!s.includes(e.dataset.tool)});var i=r.filter(function(e){return!e.hidden}).pop();i&&i.classList.add(this.CSS.inlineToolButtonLast)}},{key:"addTools",value:function(){var e=this;this.tools.forEach(function(o,t){e.addTool(t,o)})}},{key:"addTool",value:function(e,o){var t=this,n=this.Editor,s=n.Listeners,r=n.Tools,l=o.render();if(l){if(l.dataset.tool=e,this.nodes.buttons.appendChild(l),"function"==typeof o.renderActions){var u=o.renderActions();this.nodes.actions.appendChild(u)}s.on(l,"click",function(e){t.toolClicked(o),e.preventDefault()});var d=r.getToolSettings(e),c=null,a=Object.entries(r.internalTools).filter(function(e){var o=(0,i.default)(e,2),t=(o[0],o[1]);return t[r.apiSettings.IS_INLINE]}).map(function(e){var o=(0,i.default)(e,2),t=o[0];return o[1],t});a.includes(e)?c=this.inlineTools[e].shortcut:d&&d[r.apiSettings.SHORTCUT]&&(c=d[r.apiSettings.SHORTCUT]),c&&this.enableShortcuts(o,c)}else m.default.log("Render method must return an instance of Node","warn",e)}},{key:"enableShortcuts",value:function(e,o){var t=this;this.Editor.Shortcuts.add({name:o,handler:function(o){var n=t.Editor.BlockManager.currentBlock;if(n){var s=t.Editor.Tools.getToolSettings(n.name);s&&s[t.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]&&(o.preventDefault(),t.toolClicked(e))}}})}},{key:"toolClicked",value:function(e){var o=f.default.range;e.surround(o),this.checkToolsState()}},{key:"checkToolsState",value:function(){this.tools.forEach(function(e,o){e.checkState(f.default.get())})}},{key:"tools",get:function(){if(!this.toolsInstances||0===this.toolsInstances.size){var e=this.inlineTools;for(var o in this.toolsInstances=new Map,e)e.hasOwnProperty(o)&&this.toolsInstances.set(o,e[o])}return this.toolsInstances}},{key:"inlineTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}}]),o}(n);r.default=h,h.displayName="InlineToolbar",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"))},"./src/components/modules/toolbar-toolbox.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts"),t(/*! ../../selection */"./src/components/selection.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(){var e;return(0,r.default)(this,o),(e=(0,l.default)(this,(0,u.default)(o).apply(this,arguments))).CSS={inlineToolbar:"ce-inline-toolbar",inlineToolbarShowed:"ce-inline-toolbar--showed",buttonsWrapper:"ce-inline-toolbar__buttons",actionsWrapper:"ce-inline-toolbar__actions",inlineToolButton:"ce-inline-tool",inlineToolButtonLast:"ce-inline-tool--last"},e.nodes={wrapper:null,buttons:null,actions:null},e.toolbarVerticalMargin=20,e}return(0,d.default)(o,e),(0,i.default)(o,[{key:"make",value:function(){this.nodes.wrapper=c.default.make("div",this.CSS.inlineToolbar),this.nodes.buttons=c.default.make("div",this.CSS.buttonsWrapper),this.nodes.actions=c.default.make("div",this.CSS.actionsWrapper),c.default.append(this.nodes.wrapper,[this.nodes.buttons,this.nodes.actions]),c.default.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.addTools()}},{key:"handleShowingEvent",value:function(e){this.allowedToShow(e)?(this.move(),this.open(),this.checkToolsState(),this.Editor.BlockSelection.clearSelection()):this.close()}},{key:"move",value:function(){var e=h.default.rect,o=this.Editor.UI.nodes.wrapper.getBoundingClientRect(),t={x:e.x-o.left,y:e.y+e.height-o.top+this.toolbarVerticalMargin};e.width&&(t.x+=Math.floor(e.width/2)),this.nodes.wrapper.style.left=Math.floor(t.x)+"px",this.nodes.wrapper.style.top=Math.floor(t.y)+"px"}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e,o){"function"==typeof e.clear&&e.clear()})}},{key:"open",value:function(){this.filterTools(),this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed),this.tools.forEach(function(e){"function"==typeof e.clear&&e.clear()})}},{key:"allowedToShow",value:function(e){if(e&&["IMG","INPUT"].includes(e.target.tagName))return!1;var o=h.default.get(),t=h.default.text;if(!o||!o.anchorNode)return!1;if(o.isCollapsed||t.length<1)return!1;var n=this.Editor.BlockManager.getBlock(o.anchorNode);if(!n)return!1;var s=this.Editor.Tools.getToolSettings(n.name);return s&&s[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]}},{key:"filterTools",value:function(){var e=this,o=h.default.get(),t=this.Editor.BlockManager.getBlock(o.anchorNode),n=this.Editor.Tools.getToolSettings(t.name),s=n&&n[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR],r=Array.from(this.nodes.buttons.querySelectorAll(".".concat(this.CSS.inlineToolButton)));r.forEach(function(o){o.hidden=!1,o.classList.remove(e.CSS.inlineToolButtonLast)}),Array.isArray(s)&&r.forEach(function(e){e.hidden=!s.includes(e.dataset.tool)});var i=r.filter(function(e){return!e.hidden}).pop();i&&i.classList.add(this.CSS.inlineToolButtonLast)}},{key:"addTools",value:function(){var e=this;this.tools.forEach(function(o,t){e.addTool(t,o)})}},{key:"addTool",value:function(e,o){var t=this,n=this.Editor,r=n.Listeners,i=n.Tools,l=o.render();if(l){if(l.dataset.tool=e,this.nodes.buttons.appendChild(l),"function"==typeof o.renderActions){var u=o.renderActions();this.nodes.actions.appendChild(u)}r.on(l,"click",function(e){t.toolClicked(o),e.preventDefault()});var d=i.getToolSettings(e),a=null,c=Object.entries(i.internalTools).filter(function(e){var o=(0,s.default)(e,2),t=(o[0],o[1]);return j.default.isFunction(t)?t[i.apiSettings.IS_INLINE]:t.class[i.apiSettings.IS_INLINE]}).map(function(e){var o=(0,s.default)(e,2),t=o[0];return o[1],t});c.includes(e)?a=this.inlineTools[e].shortcut:d&&d[i.apiSettings.SHORTCUT]&&(a=d[i.apiSettings.SHORTCUT]),a&&this.enableShortcuts(o,a)}else j.default.log("Render method must return an instance of Node","warn",e)}},{key:"enableShortcuts",value:function(e,o){var t=this;this.Editor.Shortcuts.add({name:o,handler:function(o){var n=t.Editor.BlockManager.currentBlock;if(n){var s=t.Editor.Tools.getToolSettings(n.name);s&&s[t.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]&&(o.preventDefault(),t.toolClicked(e))}}})}},{key:"toolClicked",value:function(e){var o=h.default.range;e.surround(o),this.checkToolsState()}},{key:"checkToolsState",value:function(){this.tools.forEach(function(e){e.checkState(h.default.get())})}},{key:"internalTools",get:function(){return{bold:this.Editor.Tools.constructInline(f.default),italic:this.Editor.Tools.constructInline(m.default),link:this.Editor.Tools.constructInline(p.default)}}},{key:"externalTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}},{key:"tools",get:function(){if(!this.toolsInstances||0===this.toolsInstances.size){var e=this.inlineTools;for(var o in this.toolsInstances=new Map,e)e.hasOwnProperty(o)&&this.toolsInstances.set(o,e[o])}return this.toolsInstances}},{key:"inlineTools",get:function(){var e={};for(var o in this.Editor.Tools.inline)this.Editor.Tools.inline.hasOwnProperty(o)&&(e[o]=this.Editor.Tools.constructInline(this.Editor.Tools.inline[o]));return e}}]),o}(a.default);n.default=b,b.displayName="InlineToolbar",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/toolbar/toolbox.ts": /*!***************************************************!*\ - !*** ./src/components/modules/toolbar-toolbox.js ***! + !*** ./src/components/modules/toolbar/toolbox.ts ***! \***************************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../interfaces/editor-config */"./src/components/interfaces/editor-config.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f){"use strict";var m=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=m(l),u=m(u),d=m(d),c=m(c),a=m(a),f=m(f);var p=function(e){function o(e){var t,n=e.config;return(0,l.default)(this,o),(t=(0,d.default)(this,(0,c.default)(o).call(this,{config:n}))).nodes={toolbox:null,buttons:[]},t.opened=!1,t.activeButtonIndex=-1,t.displayedToolsCount=0,t}return(0,a.default)(o,e),(0,u.default)(o,[{key:"make",value:function(){this.nodes.toolbox=s.make("div",o.CSS.toolbox),s.append(this.Editor.Toolbar.nodes.content,this.nodes.toolbox),this.addTools()}},{key:"addTools",value:function(){var e=this.Editor.Tools.toolsAvailable;for(var o in e)this.addTool(o,e[o])}},{key:"addTool",value:function(e,t){var n=this,i=this.Editor.Tools.apiSettings;if(!t[i.IS_DISPLAYED_IN_TOOLBOX]||t[i.TOOLBAR_ICON]){if(t[i.IS_DISPLAYED_IN_TOOLBOX]){var l=s.make("li",[o.CSS.toolboxButton],{title:e});l.innerHTML=t.toolboxIcon,s.append(this.nodes.toolbox,l),this.nodes.toolbox.appendChild(l),this.nodes.buttons.push(l),this.Editor.Listeners.on(l,"click",function(o){n.toolButtonActivate(o,e)});var u=this.Editor.Tools.getToolSettings(e);u&&u[this.Editor.Tools.apiSettings.SHORTCUT]&&this.enableShortcut(t,e,u[this.Editor.Tools.apiSettings.SHORTCUT]),this.displayedToolsCount++}}else r.log("Toolbar icon is missed. Tool %o skipped","warn",e)}},{key:"enableShortcut",value:function(e,o,t){var n=this;this.Editor.Shortcuts.add({name:t,handler:function(t){t.preventDefault(),n.insertNewBlock(e,o)}})}},{key:"insertNewBlock",value:function(e,o){var t,n=this.Editor.BlockManager.currentBlock;(t=!e[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL]&&n.isEmpty?this.Editor.BlockManager.replace(o):this.Editor.BlockManager.insert(o)).call("appendCallback",{}),this.Editor.Caret.setToBlock(t),this.Editor.Toolbar.close()}},{key:"toolButtonActivate",value:function(e,o){var t=this.Editor.Tools.toolsClasses[o];this.insertNewBlock(t,o)}},{key:"open",value:function(){this.isEmpty||(this.nodes.toolbox.classList.add(o.CSS.toolboxOpened),this.opened=!0)}},{key:"close",value:function(){this.nodes.toolbox.classList.remove(o.CSS.toolboxOpened),this.opened=!1,this.activeButtonIndex=-1;var e=this.nodes.toolbox.querySelector(".".concat(o.CSS.toolboxButtonActive));e&&e.classList.remove(o.CSS.toolboxButtonActive)}},{key:"toggle",value:function(){this.opened?this.close():this.open()}},{key:"leaf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"right",t=this.nodes.toolbox.childNodes;-1===this.activeButtonIndex?this.activeButtonIndex="right"===e?-1:0:t[this.activeButtonIndex].classList.remove(o.CSS.toolboxButtonActive),this.activeButtonIndex="right"===e?(this.activeButtonIndex+1)%t.length:(t.length+this.activeButtonIndex-1)%t.length,t[this.activeButtonIndex].classList.add(o.CSS.toolboxButtonActive)}},{key:"getActiveTool",get:function(){var e=this.nodes.toolbox.childNodes;return-1===this.activeButtonIndex?null:e[this.activeButtonIndex].title}},{key:"isEmpty",get:function(){return 0===this.displayedToolsCount}}],[{key:"CSS",get:function(){return{toolbox:"ce-toolbox",toolboxButton:"ce-toolbox__button",toolboxButtonActive:"ce-toolbox__button--active",toolboxOpened:"ce-toolbox--opened"}}}]),o}(n);i.default=p,p.displayName="Toolbox",e.exports=o.default})?i.apply(o,l):i)||(e.exports=u)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/toolbar.js": -/*!*******************************************!*\ - !*** ./src/components/modules/toolbar.js ***! - \*******************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c){"use strict";var a=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=a(i),l=a(l),u=a(u),d=a(d),c=a(c);var f=function(e){function o(e){var t,n=e.config;return(0,i.default)(this,o),(t=(0,u.default)(this,(0,d.default)(o).call(this,{config:n}))).nodes={wrapper:null,content:null,actions:null,plusButton:null,blockActionsButtons:null,settingsToggler:null},t}return(0,c.default)(o,e),(0,l.default)(o,[{key:"make",value:function(){var e=this;this.nodes.wrapper=s.make("div",o.CSS.toolbar),["content","actions"].forEach(function(t){e.nodes[t]=s.make("div",o.CSS[t]),s.append(e.nodes.wrapper,e.nodes[t])}),this.nodes.plusButton=s.make("div",o.CSS.plusButton),s.append(this.nodes.plusButton,s.svg("plus",14,14)),s.append(this.nodes.content,this.nodes.plusButton),this.nodes.plusButton.addEventListener("click",function(o){return e.plusButtonClicked(o)},!1),this.Editor.Toolbox.make(),this.nodes.blockActionsButtons=s.make("div",o.CSS.blockActionsButtons),this.nodes.settingsToggler=s.make("span",o.CSS.settingsToggler);var t=s.svg("dots",18,4);s.append(this.nodes.settingsToggler,t),s.append(this.nodes.blockActionsButtons,this.nodes.settingsToggler),s.append(this.nodes.actions,this.nodes.blockActionsButtons),this.Editor.BlockSettings.make(),s.append(this.nodes.actions,this.Editor.BlockSettings.nodes.wrapper),s.append(this.Editor.UI.nodes.wrapper,this.nodes.wrapper),this.bindEvents()}},{key:"move",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e&&(this.Editor.Toolbox.close(),this.Editor.BlockSettings.close());var o=this.Editor.BlockManager.currentBlock.holder;if(o){var t=Math.floor(o.offsetHeight/2);this.nodes.plusButton.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.Editor.Toolbox.nodes.toolbox.style.transform="translate3d(0, calc(".concat(t,"px - 50%), 0)"),this.nodes.wrapper.style.transform="translate3D(0, ".concat(Math.floor(o.offsetTop),"px, 0)")}}},{key:"open",value:function(){var e=this;setTimeout(function(){e.move(),e.nodes.wrapper.classList.add(o.CSS.toolbarOpened)},50)}},{key:"close",value:function(){this.nodes.wrapper.classList.remove(o.CSS.toolbarOpened),this.Editor.Toolbox.close(),this.Editor.BlockSettings.close()}},{key:"plusButtonClicked",value:function(){this.Editor.Toolbox.toggle()}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.settingsToggler,"click",function(o){e.settingsTogglerClicked(o)})}},{key:"settingsTogglerClicked",value:function(){this.Editor.BlockSettings.opened?this.Editor.BlockSettings.close():this.Editor.BlockSettings.open()}},{key:"opened",get:function(){return this.nodes.wrapper.classList.contains(o.CSS.toolbarOpened)}},{key:"plusButton",get:function(){var e=this;return{hide:function(){return e.nodes.plusButton.classList.add(o.CSS.plusButtonHidden)},show:function(){e.Editor.Toolbox.isEmpty||e.nodes.plusButton.classList.remove(o.CSS.plusButtonHidden)}}}}],[{key:"CSS",get:function(){return{toolbar:"ce-toolbar",content:"ce-toolbar__content",actions:"ce-toolbar__actions",toolbarOpened:"ce-toolbar--opened",plusButton:"ce-toolbar__plus",plusButtonHidden:"ce-toolbar__plus--hidden",blockActionsButtons:"ce-toolbar__actions-buttons",settingsToggler:"ce-toolbar__settings-btn"}}}]),o}(n);r.default=f,f.displayName="Toolbar",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"))},"./src/components/modules/tools.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../__module */"./src/components/__module.ts"),t(/*! ../../dom */"./src/components/dom.ts"),t(/*! ../../utils */"./src/components/utils.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c){"use strict";var f=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=f(s),r=f(r),i=f(i),l=f(l),u=f(u),d=f(d),a=f(a),c=f(c);var m=function(e){function o(){var e;return(0,s.default)(this,o),(e=(0,i.default)(this,(0,l.default)(o).apply(this,arguments))).opened=!1,e.nodes={toolbox:null,buttons:[]},e.activeButtonIndex=-1,e.displayedToolsCount=0,e}return(0,u.default)(o,e),(0,r.default)(o,[{key:"make",value:function(){this.nodes.toolbox=a.default.make("div",o.CSS.toolbox),a.default.append(this.Editor.Toolbar.nodes.content,this.nodes.toolbox),this.addTools()}},{key:"toolButtonActivate",value:function(e,o){var t=this.Editor.Tools.toolsClasses[o];this.insertNewBlock(t,o)}},{key:"open",value:function(){this.isEmpty||(this.nodes.toolbox.classList.add(o.CSS.toolboxOpened),this.opened=!0)}},{key:"close",value:function(){this.nodes.toolbox.classList.remove(o.CSS.toolboxOpened),this.opened=!1,this.activeButtonIndex=-1;var e=this.nodes.toolbox.querySelector(".".concat(o.CSS.toolboxButtonActive));e&&e.classList.remove(o.CSS.toolboxButtonActive)}},{key:"toggle",value:function(){this.opened?this.close():this.open()}},{key:"leaf",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o.LEAF_DIRECTIONS.RIGHT,t=this.nodes.toolbox.childNodes;-1===this.activeButtonIndex?this.activeButtonIndex=e===o.LEAF_DIRECTIONS.RIGHT?-1:0:t[this.activeButtonIndex].classList.remove(o.CSS.toolboxButtonActive),e===o.LEAF_DIRECTIONS.RIGHT?this.activeButtonIndex=(this.activeButtonIndex+1)%t.length:this.activeButtonIndex=(t.length+this.activeButtonIndex-1)%t.length,t[this.activeButtonIndex].classList.add(o.CSS.toolboxButtonActive)}},{key:"addTools",value:function(){var e=this.Editor.Tools.available;for(var o in e)e.hasOwnProperty(o)&&this.addTool(o,e[o])}},{key:"addTool",value:function(e,t){var n=this,s=this.Editor.Tools.apiSettings;if(!t[s.IS_DISPLAYED_IN_TOOLBOX]||t[s.TOOLBAR_ICON]){if(t[s.IS_DISPLAYED_IN_TOOLBOX]){var r=a.default.make("li",[o.CSS.toolboxButton],{title:e});r.innerHTML=t.toolboxIcon,a.default.append(this.nodes.toolbox,r),this.nodes.toolbox.appendChild(r),this.nodes.buttons.push(r),this.Editor.Listeners.on(r,"click",function(o){n.toolButtonActivate(o,e)});var i=this.Editor.Tools.getToolSettings(e);i&&i[this.Editor.Tools.apiSettings.SHORTCUT]&&this.enableShortcut(t,e,i[this.Editor.Tools.apiSettings.SHORTCUT]),this.displayedToolsCount++}}else c.default.log("Toolbar icon is missed. Tool %o skipped","warn",e)}},{key:"enableShortcut",value:function(e,o,t){var n=this;this.Editor.Shortcuts.add({name:t,handler:function(t){t.preventDefault(),n.insertNewBlock(e,o)}})}},{key:"insertNewBlock",value:function(e,o){var t,n=this.Editor.BlockManager.currentBlock;(t=!e[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL]&&n.isEmpty?this.Editor.BlockManager.replace(o):this.Editor.BlockManager.insert(o)).call("appendCallback",{}),this.Editor.Caret.setToBlock(t),this.Editor.Toolbar.close()}},{key:"getActiveTool",get:function(){var e=this.nodes.toolbox.childNodes;return-1===this.activeButtonIndex?null:e[this.activeButtonIndex].title}},{key:"isEmpty",get:function(){return 0===this.displayedToolsCount}}],[{key:"CSS",get:function(){return{toolbox:"ce-toolbox",toolboxButton:"ce-toolbox__button",toolboxButtonActive:"ce-toolbox__button--active",toolboxOpened:"ce-toolbox--opened"}}}]),o}(d.default);n.default=m,m.displayName="Toolbox",m.LEAF_DIRECTIONS={RIGHT:"right",LEFT:"left"},e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/tools.ts": /*!*****************************************!*\ - !*** ./src/components/modules/tools.js ***! + !*** ./src/components/modules/tools.ts ***! \*****************************************/ -/*! no static exports found */function(e,o,t){(function(n,s){var r,i,l;i=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts")],void 0===(l="function"==typeof(r=function(r,i,l,u,d,c,a,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,i=j(i),l=j(l),u=j(u),d=j(d),c=j(c),a=j(a),f=j(f),m=j(m),p=j(p),h=j(h);var _=t(/*! ../tools/paragraph/dist/bundle */"./src/components/tools/paragraph/dist/bundle.js"),v=function(e){function o(e){var t,n=e.config;return(0,u.default)(this,o),(t=(0,c.default)(this,(0,a.default)(o).call(this,{config:n}))).toolsClasses={},t.toolsSettings={},t.toolsAvailable={},t.toolsUnavailable={},t._inlineTools=null,t}return(0,f.default)(o,e),(0,d.default)(o,[{key:"prepare",value:function(){var e=this;if(Object.assign(this.config.tools,this.internalTools),!this.config.hasOwnProperty("tools")||0===Object.keys(this.config.tools).length)return Promise.reject("Can't start without tools");for(var o in this.config.tools)"object"===(0,l.default)(this.config.tools[o])?(this.toolsClasses[o]=this.config.tools[o].class,this.toolsSettings[o]=this.config.tools[o],delete this.toolsSettings[o].class):(this.toolsClasses[o]=this.config.tools[o],this.toolsSettings[o]={});var t=this.getListOfPrepareFunctions();return 0===t.length?Promise.resolve():s.sequence(t,function(o){e.success(o)},function(o){e.fallback(o)})}},{key:"getListOfPrepareFunctions",value:function(){var e=[];for(var o in this.toolsClasses){var t=this.toolsClasses[o];"function"==typeof t.prepare?e.push({function:t.prepare,data:{toolName:o,config:this.toolsSettings[o][this.apiSettings.CONFIG]}}):this.toolsAvailable[o]=t}return e}},{key:"success",value:function(e){this.toolsAvailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"fallback",value:function(e){this.toolsUnavailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"construct",value:function(e,o){var t=this.toolsClasses[e],n=this.toolsSettings[e][this.apiSettings.CONFIG],s={api:this.Editor.API.methods,config:n||{},data:o};return new t(s)}},{key:"constructInline",value:function(e){var o={api:this.Editor.API.methods};return new e(o)}},{key:"isInitial",value:function(e){return e instanceof this.available[this.config.initialBlock]}},{key:"getToolSettings",value:function(e){return this.toolsSettings[e]}},{key:"available",get:function(){return this.toolsAvailable}},{key:"unavailable",get:function(){return this.toolsUnavailable}},{key:"inline",get:function(){var e=this;if(this._inlineTools)return this._inlineTools;var o=Object.entries(this.available).filter(function(o){var t=(0,i.default)(o,2),n=(t[0],t[1]);if(!n[e.apiSettings.IS_INLINE])return!1;var r=["render","surround","checkState"].filter(function(o){return!e.constructInline(n)[o]});return!r.length||(s.log("Incorrect Inline Tool: ".concat(n.name,". Some of required methods is not implemented %o"),"warn",r),!1)}),t={};return o.forEach(function(e){var o=(0,i.default)(e,2),n=o[0],s=o[1];return t[n]=s}),this._inlineTools=t,this._inlineTools}},{key:"blockTools",get:function(){var e=this,o=Object.entries(this.available).filter(function(o){var t=(0,i.default)(o,2),n=(t[0],t[1]);return!n[e.apiSettings.IS_INLINE]}),t={};return o.forEach(function(e){var o=(0,i.default)(e,2),n=o[0],s=o[1];return t[n]=s}),t}},{key:"apiSettings",get:function(){return{CONFIG:"config",IS_CONTENTLESS:"contentless",IS_DISPLAYED_IN_TOOLBOX:"displayInToolbox",IS_ENABLED_INLINE_TOOLBAR:"inlineToolbar",IS_ENABLED_LINE_BREAKS:"enableLineBreaks",IS_INLINE:"isInline",IS_IRREPLACEBLE_TOOL:"irreplaceable",IS_PASTE_DISALLOWED:"disallowPaste",SHORTCUT:"shortcut",TOOLBAR_ICON:"toolboxIcon",SANITIZE_CONFIG:"sanitize"}}},{key:"internalTools",get:function(){return{bold:m.default,italic:p.default,link:h.default,paragraph:{class:_,inlineToolbar:!0}}}}]),o}(n);r.default=v,v.displayName="Tools",e.exports=o.default})?r.apply(o,i):r)||(e.exports=l)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/modules/ui.js": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/helpers/slicedToArray */"./node_modules/@babel/runtime/helpers/slicedToArray.js"),t(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../tools/paragraph/dist/bundle */"./src/components/tools/paragraph/dist/bundle.js"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../inline-tools/inline-tool-bold */"./src/components/inline-tools/inline-tool-bold.ts"),t(/*! ../inline-tools/inline-tool-italic */"./src/components/inline-tools/inline-tool-italic.ts"),t(/*! ../inline-tools/inline-tool-link */"./src/components/inline-tools/inline-tool-link.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h,j){"use strict";var _=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=_(s),r=_(r),i=_(i),l=_(l),u=_(u),d=_(d),a=_(a),c=_(c),f=_(f),m=_(m),p=_(p),h=_(h),j=_(j);var b=function(e){function o(e){var t,n=e.config;return(0,i.default)(this,o),(t=(0,u.default)(this,(0,d.default)(o).call(this,{config:n}))).toolsClasses={},t.toolsAvailable={},t.toolsUnavailable={},t.toolsSettings={},t._inlineTools={},t.toolsClasses={},t.toolsSettings={},t.toolsAvailable={},t.toolsUnavailable={},t._inlineTools=null,t}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=this;if(Object.assign(this.config.tools,this.internalTools),!this.config.hasOwnProperty("tools")||0===Object.keys(this.config.tools).length)throw Error("Can't start without tools");for(var o in this.config.tools)"object"===(0,r.default)(this.config.tools[o])?(this.toolsClasses[o]=this.config.tools[o].class,this.toolsSettings[o]=this.config.tools[o],delete this.toolsSettings[o].class):(this.toolsClasses[o]=this.config.tools[o],this.toolsSettings[o]={class:this.config.tools[o]});var t=this.getListOfPrepareFunctions();return 0===t.length?Promise.resolve():m.default.sequence(t,function(o){e.success(o)},function(o){e.fallback(o)})}},{key:"success",value:function(e){this.toolsAvailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"fallback",value:function(e){this.toolsUnavailable[e.toolName]=this.toolsClasses[e.toolName]}},{key:"construct",value:function(e,o){var t=this.toolsClasses[e],n=this.toolsSettings[e][this.apiSettings.CONFIG],s={api:this.Editor.API.methods,config:n||{},data:o};return new t(s)}},{key:"constructInline",value:function(e){var o={api:this.Editor.API.methods};return new e(o)}},{key:"isInitial",value:function(e){return e instanceof this.available[this.config.initialBlock]}},{key:"getToolSettings",value:function(e){return this.toolsSettings[e]}},{key:"getListOfPrepareFunctions",value:function(){var e=[];for(var o in this.toolsClasses)if(this.toolsClasses.hasOwnProperty(o)){var t=this.toolsClasses[o];"function"==typeof t.prepare?e.push({function:t.prepare,data:{toolName:o,config:this.toolsSettings[o][this.apiSettings.CONFIG]}}):this.toolsAvailable[o]=t}return e}},{key:"available",get:function(){return this.toolsAvailable}},{key:"unavailable",get:function(){return this.toolsUnavailable}},{key:"inline",get:function(){var e=this;if(this._inlineTools)return this._inlineTools;var o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);if(!n[e.apiSettings.IS_INLINE])return!1;var r=["render","surround","checkState"].filter(function(o){return!e.constructInline(n)[o]});return!r.length||(m.default.log("Incorrect Inline Tool: ".concat(n.name,". Some of required methods is not implemented %o"),"warn",r),!1)}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),this._inlineTools=t,this._inlineTools}},{key:"blockTools",get:function(){var e=this,o=Object.entries(this.available).filter(function(o){var t=(0,s.default)(o,2),n=(t[0],t[1]);return!n[e.apiSettings.IS_INLINE]}),t={};return o.forEach(function(e){var o=(0,s.default)(e,2),n=o[0],r=o[1];return t[n]=r}),t}},{key:"apiSettings",get:function(){return{CONFIG:"config",IS_CONTENTLESS:"contentless",IS_DISPLAYED_IN_TOOLBOX:"displayInToolbox",IS_ENABLED_INLINE_TOOLBAR:"inlineToolbar",IS_ENABLED_LINE_BREAKS:"enableLineBreaks",IS_INLINE:"isInline",IS_IRREPLACEBLE_TOOL:"irreplaceable",IS_PASTE_DISALLOWED:"disallowPaste",SHORTCUT:"shortcut",TOOLBAR_ICON:"toolboxIcon",SANITIZE_CONFIG:"sanitize"}}},{key:"internalTools",get:function(){return{bold:p.default,italic:h.default,link:j.default,paragraph:{class:c.default,inlineToolbar:!0}}}}]),o}(f.default);n.default=b,b.displayName="Tools",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/modules/ui.ts": /*!**************************************!*\ - !*** ./src/components/modules/ui.js ***! + !*** ./src/components/modules/ui.ts ***! \**************************************/ -/*! no static exports found */function(e,o,t){(function(n,s,r){var i,l,u;l=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../../build/sprite.svg */"./build/sprite.svg"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(u="function"==typeof(i=function(i,l,u,d,c,a,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,l=j(l),u=j(u),d=j(d),c=j(c),a=j(a),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(e){var t,n=e.config;return(0,d.default)(this,o),(t=(0,a.default)(this,(0,f.default)(o).call(this,{config:n}))).nodes={holder:null,wrapper:null,redactor:null},t}return(0,m.default)(o,e),(0,c.default)(o,[{key:"prepare",value:function(){var e=(0,u.default)(l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.make();case 2:return e.next=4,this.appendSVGSprite();case 4:return e.next=6,this.Editor.Toolbar.make();case 6:return e.next=8,this.Editor.InlineToolbar.make();case 8:return e.next=10,this.loadStyles();case 10:return e.next=12,this.bindEvents();case 12:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"make",value:function(){var e=(0,u.default)(l.default.mark(function e(){return l.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.nodes.holder=document.getElementById(this.config.holderId),this.nodes.holder){e.next=3;break}throw Error("Holder wasn't found by ID: #"+this.config.holderId);case 3:this.nodes.wrapper=s.make("div",this.CSS.editorWrapper),this.nodes.redactor=s.make("div",this.CSS.editorZone),this.nodes.wrapper.appendChild(this.nodes.redactor),this.nodes.holder.appendChild(this.nodes.wrapper);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"loadStyles",value:function(){var e=t(/*! ../../styles/main.css */"./src/styles/main.css"),o=s.make("style",null,{textContent:e.toString()});s.prepend(document.head,o)}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.redactor,"click",function(o){return e.redactorClicked(o)},!1),this.Editor.Listeners.on(document,"keydown",function(o){return e.documentKeydown(o)},!0),this.Editor.Listeners.on(document,"click",function(o){return e.documentClicked(o)},!1)}},{key:"documentKeydown",value:function(e){switch(e.keyCode){case r.keyCodes.ENTER:this.enterPressed(e);break;default:this.defaultBehaviour(e)}}},{key:"defaultBehaviour",value:function(e){var o=e.target.closest(".".concat(this.CSS.editorWrapper));o||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close())}},{key:"enterPressed",value:function(e){var o=this.Editor.BlockManager.currentBlockIndex>=0;if(o&&"BODY"===e.target.tagName){var t=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(t),this.Editor.BlockManager.highlightCurrentNode(),this.Editor.Toolbar.move(),this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"documentClicked",value:function(e){var o=e.target.closest(".".concat(this.Editor.InlineToolbar.CSS.inlineToolbar)),t=e.target.closest(".".concat(this.CSS.editorWrapper));t||h.default.isAtEditor||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close()),o||this.Editor.InlineToolbar.handleShowingEvent(e),h.default.isAtEditor&&this.Editor.BlockManager.setCurrentBlockByChildNode(h.default.anchorNode),this.Editor.BlockSelection.clearSelection()}},{key:"redactorClicked",value:function(e){var o=e.target;try{this.Editor.BlockManager.setCurrentBlockByChildNode(o),this.Editor.BlockManager.highlightCurrentNode()}catch(e){this.Editor.Caret.setToTheLastBlock()}e.stopImmediatePropagation(),e.stopPropagation(),this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.hide(),this.Editor.BlockManager.currentBlock||this.Editor.BlockManager.insert();var t=this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),n=this.Editor.BlockManager.currentBlock.isEmpty;t&&n&&this.Editor.Toolbar.plusButton.show(),this.Editor.BlockSelection.clearSelection()}},{key:"appendSVGSprite",value:function(){var e=s.make("div");e.hidden=!0,e.style.display="none",e.innerHTML=p.default,s.append(this.nodes.wrapper,e)}},{key:"destroy",value:function(){this.nodes.holder.innerHTML=""}},{key:"CSS",get:function(){return{editorWrapper:"codex-editor",editorZone:"codex-editor__redactor"}}}]),o}(n);i.default=_,_.displayName="UI",e.exports=o.default})?i.apply(o,l):i)||(e.exports=u)}).call(this,t(/*! ./../__module.ts */"./src/components/__module.ts"),t(/*! dom */"./src/components/dom.ts"),t(/*! utils */"./src/components/utils.ts"))},"./src/components/polyfills.ts": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! @babel/runtime/helpers/possibleConstructorReturn */"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js"),t(/*! @babel/runtime/helpers/getPrototypeOf */"./node_modules/@babel/runtime/helpers/getPrototypeOf.js"),t(/*! @babel/runtime/helpers/inherits */"./node_modules/@babel/runtime/helpers/inherits.js"),t(/*! ../../../build/sprite.svg */"./build/sprite.svg"),t(/*! ../__module */"./src/components/__module.ts"),t(/*! ../dom */"./src/components/dom.ts"),t(/*! ../utils */"./src/components/utils.ts"),t(/*! ../selection */"./src/components/selection.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u,d,a,c,f,m,p,h){"use strict";var j=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=j(s),r=j(r),i=j(i),l=j(l),u=j(u),d=j(d),a=j(a),c=j(c),f=j(f),m=j(m),p=j(p),h=j(h);var _=function(e){function o(){var e;return(0,i.default)(this,o),(e=(0,u.default)(this,(0,d.default)(o).apply(this,arguments))).nodes={holder:null,wrapper:null,redactor:null},e}return(0,a.default)(o,e),(0,l.default)(o,[{key:"prepare",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.make();case 2:return e.next=4,this.appendSVGSprite();case 4:return e.next=6,this.Editor.Toolbar.make();case 6:return e.next=8,this.Editor.InlineToolbar.make();case 8:return e.next=10,this.loadStyles();case 10:return e.next=12,this.bindEvents();case 12:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"destroy",value:function(){this.nodes.holder.innerHTML=""}},{key:"make",value:function(){var e=(0,r.default)(s.default.mark(function e(){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.nodes.holder=document.getElementById(this.config.holderId),this.nodes.holder){e.next=3;break}throw Error("Holder wasn't found by ID: #"+this.config.holderId);case 3:this.nodes.wrapper=m.default.make("div",this.CSS.editorWrapper),this.nodes.redactor=m.default.make("div",this.CSS.editorZone),this.nodes.wrapper.appendChild(this.nodes.redactor),this.nodes.holder.appendChild(this.nodes.wrapper);case 7:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"loadStyles",value:function(){var e=t(/*! ../../styles/main.css */"./src/styles/main.css"),o=m.default.make("style",null,{textContent:e.toString()});m.default.prepend(document.head,o)}},{key:"bindEvents",value:function(){var e=this;this.Editor.Listeners.on(this.nodes.redactor,"click",function(o){return e.redactorClicked(o)},!1),this.Editor.Listeners.on(document,"keydown",function(o){return e.documentKeydown(o)},!0),this.Editor.Listeners.on(document,"click",function(o){return e.documentClicked(o)},!1)}},{key:"documentKeydown",value:function(e){switch(e.keyCode){case p.default.keyCodes.ENTER:this.enterPressed(e);break;default:this.defaultBehaviour(e)}}},{key:"defaultBehaviour",value:function(e){var o=e.target.closest(".".concat(this.CSS.editorWrapper));o||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close())}},{key:"enterPressed",value:function(e){var o=this.Editor.BlockManager.currentBlockIndex>=0;if(o&&"BODY"===e.target.tagName){var t=this.Editor.BlockManager.insert();this.Editor.Caret.setToBlock(t),this.Editor.BlockManager.highlightCurrentNode(),this.Editor.Toolbar.move(),this.Editor.Toolbar.plusButton.show()}this.Editor.BlockSelection.clearSelection()}},{key:"documentClicked",value:function(e){var o=e.target,t=o.closest(".".concat(this.Editor.InlineToolbar.CSS.inlineToolbar)),n=o.closest(".".concat(this.CSS.editorWrapper));n||h.default.isAtEditor||(this.Editor.BlockManager.dropPointer(),this.Editor.Toolbar.close()),t||this.Editor.InlineToolbar.handleShowingEvent(e),h.default.isAtEditor&&this.Editor.BlockManager.setCurrentBlockByChildNode(h.default.anchorNode),this.Editor.BlockSelection.clearSelection()}},{key:"redactorClicked",value:function(e){var o=e.target;try{this.Editor.BlockManager.setCurrentBlockByChildNode(o),this.Editor.BlockManager.highlightCurrentNode()}catch(e){this.Editor.Caret.setToTheLastBlock()}e.stopImmediatePropagation(),e.stopPropagation(),this.Editor.Toolbar.open(),this.Editor.Toolbar.plusButton.hide(),this.Editor.BlockManager.currentBlock||this.Editor.BlockManager.insert();var t=this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),n=this.Editor.BlockManager.currentBlock.isEmpty;t&&n&&this.Editor.Toolbar.plusButton.show(),this.Editor.BlockSelection.clearSelection()}},{key:"appendSVGSprite",value:function(){var e=m.default.make("div");e.hidden=!0,e.style.display="none",e.innerHTML=c.default,m.default.append(this.nodes.wrapper,e)}},{key:"CSS",get:function(){return{editorWrapper:"codex-editor",editorZone:"codex-editor__redactor"}}}]),o}(f.default);n.default=_,_.displayName="UI",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/components/polyfills.ts": /*!*************************************!*\ !*** ./src/components/polyfills.ts ***! \*************************************/ @@ -1429,17 +1429,17 @@ e.exports=function(){var e=t(6),o=null;return{show:function(t){if(t.message){!fu * @license The MIT License (MIT) * @version 2.0.0 */ -var s=function(){function e(o){var t=o.data,n=(o.config,o.api);!function(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}(this,e),this.api=n,this._CSS={block:this.api.styles.block,wrapper:"ce-paragraph"},this._data={},this._element=this.drawView(),this.data=t}return n(e,null,[{key:"displayInToolbox",get:function(){return!1}}]),n(e,[{key:"drawView",value:function(){var e=document.createElement("DIV");return e.classList.add(this._CSS.wrapper,this._CSS.block),e.contentEditable=!0,e}},{key:"render",value:function(){return this._element}},{key:"merge",value:function(e){var o={text:this.data.text+e.text};this.data=o}},{key:"validate",value:function(e){return""!==e.text.trim()}},{key:"save",value:function(e){return{text:e.innerHTML}}},{key:"sanitize",get:function(){return{text:{a:{href:!0,target:"_blank",rel:"nofollow"},b:{},i:{},br:!0,span:{class:"inline-code"},mark:{class:"cdx-marker"}}}}},{key:"data",get:function(){var e=this._element.innerHTML;return this._data.text=e,this._data},set:function(e){this._data=e||{},this._element.innerHTML=this._data.text||""}}],[{key:"onPaste",get:function(){return{tags:["P"],handler:function(e){return{text:e.innerHTML}}}}}]),e}();e.exports=s},function(e,o,t){var n=t(2);"string"==typeof n&&(n=[[e.i,n,""]]),t(4)(n,{hmr:!0,transform:void 0,insertInto:void 0}),n.locals&&(e.exports=n.locals)},function(e,o,t){(e.exports=t(3)(!1)).push([e.i,".ce-paragraph {\n line-height: 1.6em;\n outline: none;\n}\n\n.ce-paragraph p:first-of-type{\n margin-top: 0;\n}\n\n.ce-paragraph p:last-of-type{\n margin-bottom: 0;\n}\n",""])},function(e,o){e.exports=function(e){var o=[];return o.toString=function(){return this.map(function(o){var t=function(e,o){var t=e[1]||"",n=e[3];if(!n)return t;if(o&&"function"==typeof btoa){var s=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(n),r=n.sources.map(function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"});return[t].concat(r).concat([s]).join("\n")}return[t].join("\n")}(o,e);return o[2]?"@media "+o[2]+"{"+t+"}":t}).join("")},o.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},s=0;s=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=v.bind(null,t,u,!1),s=v.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=a(e,o);return c(t,o),function(e){for(var s=[],r=0;r=0&&u.splice(o,1)}function p(e){var o=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),h(o,e.attrs),f(e,o),o}function h(e,o){Object.keys(o).forEach(function(t){e.setAttribute(t,o[t])})}function j(e,o){var t,n,s,r;if(o.transform&&e.css){if(!(r=o.transform(e.css)))return function(){};e.css=r}if(o.singleton){var u=l++;t=i||(i=p(o)),n=b.bind(null,t,u,!1),s=b.bind(null,t,u,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=function(e){var o=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",h(o,e.attrs),f(e,o),o}(o),n=function(e,o,t){var n=t.css,s=t.sourceMap,r=void 0===o.convertToAbsoluteUrls&&s;(o.convertToAbsoluteUrls||r)&&(n=d(n)),s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var i=new Blob([n],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(i),l&&URL.revokeObjectURL(l)}.bind(null,t,o),s=function(){m(t),t.href&&URL.revokeObjectURL(t.href)}):(t=p(o),n=function(e,o){var t=o.css,n=o.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,t),s=function(){m(t)});return n(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;n(e=o)}else s()}}e.exports=function(e,o){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(o=o||{}).attrs="object"==typeof o.attrs?o.attrs:{},o.singleton||"boolean"==typeof o.singleton||(o.singleton=s()),o.insertInto||(o.insertInto="head"),o.insertAt||(o.insertAt="bottom");var t=c(e,o);return a(t,o),function(e){for(var s=[],r=0;r1&&void 0!==arguments[1]?arguments[1]:"log",t=arguments.length>2?arguments[2]:void 0;t?e="[codex-editor]: "+e:["time","timeEnd"].includes(o)?e="[codex-editor]: ".concat(e):(t=e||"undefined",e="[codex-editor]: %o");try{"console"in window&&window.console[o]&&(t?window.console[o](e,t):window.console[o](e))}catch(e){}}},{key:"sequence",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,i,l,u=arguments;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){return(l=(0,r.default)(s.default.mark(function e(o,t,n){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.function(o.data);case 3:return e.next=5,t(void 0!==o.data?o.data:{});case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),n(void 0!==o.data?o.data:{});case 10:case"end":return e.stop()}},e,this,[[0,7]])}))).apply(this,arguments)},i=function(e,o,t){return l.apply(this,arguments)},t=u.length>1&&void 0!==u[1]?u[1]:function(){},n=u.length>2&&void 0!==u[2]?u[2]:function(){},e.next=6,o.reduce(function(){var e=(0,r.default)(s.default.mark(function e(o,r){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o;case 2:return e.abrupt("return",i(r,t,n));case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}(),Promise.resolve());case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"array",value:function(e){return Array.prototype.slice.call(e)}},{key:"isFunction",value:function(e){return"function"==typeof e}},{key:"isClass",value:function(e){return"function"==typeof e&&/^\s*class\s+/.test(e.toString())}},{key:"isEmpty",value:function(e){return 0===Object.keys(e).length&&e.constructor===Object}},{key:"isPromise",value:function(e){return Promise.resolve(e)===e}},{key:"isContentEditable",value:function(e){return"true"===e.contentEditable}},{key:"delay",value:function(e,o){return function(){var t=this,n=arguments;window.setTimeout(function(){return e.apply(t,n)},o)}}},{key:"getFileExtension",value:function(e){return e.name.split(".").pop()}},{key:"isValidMimeType",value:function(e){return/^[-\w]+\/([-+\w]+|\*)$/.test(e)}},{key:"debounce",value:function(e,o,t){var n,s=this,r=arguments;return function(){var i=s,l=r,u=t&&!n;window.clearTimeout(n),n=window.setTimeout(function(){n=null,t||e.apply(i,l)},o),u&&e.apply(i,l)}}},{key:"copyTextToClipboard",value:function(e){var o=u.default.make("div","codex-editor-clipboard",{innerHTML:e});document.body.appendChild(o);var t=window.getSelection(),n=document.createRange();n.selectNode(o),window.getSelection().removeAllRanges(),t.addRange(n),document.execCommand("copy"),document.body.removeChild(o)}},{key:"keyCodes",get:function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,LEFT:37,UP:38,DOWN:40,RIGHT:39,DELETE:46,META:91}}}]),e}();n.default=c,c.displayName="Util",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/styles/main.css": +/*! no static exports found */function(e,o,t){var n,s,r;s=[o,t(/*! @babel/runtime/regenerator */"./node_modules/@babel/runtime/regenerator/index.js"),t(/*! @babel/runtime/helpers/asyncToGenerator */"./node_modules/@babel/runtime/helpers/asyncToGenerator.js"),t(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js"),t(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js"),t(/*! ./dom */"./src/components/dom.ts")],void 0===(r="function"==typeof(n=function(n,s,r,i,l,u){"use strict";var d=t(/*! @babel/runtime/helpers/interopRequireDefault */"./node_modules/@babel/runtime/helpers/interopRequireDefault.js");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0,s=d(s),r=d(r),i=d(i),l=d(l),u=d(u);var a=function(){function e(){(0,i.default)(this,e)}return(0,l.default)(e,null,[{key:"log",value:function(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log",t=arguments.length>2?arguments[2]:void 0;t?e="[codex-editor]: "+e:["time","timeEnd"].includes(o)?e="[codex-editor]: ".concat(e):(t=e||"undefined",e="[codex-editor]: %o");try{"console"in window&&window.console[o]&&(t?window.console[o](e,t):window.console[o](e))}catch(e){}}},{key:"sequence",value:function(){var e=(0,r.default)(s.default.mark(function e(o){var t,n,i,l,u=arguments;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return l=function(){return(l=(0,r.default)(s.default.mark(function e(o,t,n){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o.function(o.data);case 3:return e.next=5,t(void 0!==o.data?o.data:{});case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),n(void 0!==o.data?o.data:{});case 10:case"end":return e.stop()}},e,this,[[0,7]])}))).apply(this,arguments)},i=function(e,o,t){return l.apply(this,arguments)},t=u.length>1&&void 0!==u[1]?u[1]:function(){},n=u.length>2&&void 0!==u[2]?u[2]:function(){},e.next=6,o.reduce(function(){var e=(0,r.default)(s.default.mark(function e(o,r){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o;case 2:return e.abrupt("return",i(r,t,n));case 3:case"end":return e.stop()}},e,this)}));return function(o,t){return e.apply(this,arguments)}}(),Promise.resolve());case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}},e,this)}));return function(o){return e.apply(this,arguments)}}()},{key:"array",value:function(e){return Array.prototype.slice.call(e)}},{key:"isFunction",value:function(e){return"function"==typeof e}},{key:"isClass",value:function(e){return"function"==typeof e&&/^\s*class\s+/.test(e.toString())}},{key:"isEmpty",value:function(e){return 0===Object.keys(e).length&&e.constructor===Object}},{key:"isPromise",value:function(e){return Promise.resolve(e)===e}},{key:"isContentEditable",value:function(e){return"true"===e.contentEditable}},{key:"delay",value:function(e,o){return function(){var t=this,n=arguments;window.setTimeout(function(){return e.apply(t,n)},o)}}},{key:"getFileExtension",value:function(e){return e.name.split(".").pop()}},{key:"isValidMimeType",value:function(e){return/^[-\w]+\/([-+\w]+|\*)$/.test(e)}},{key:"debounce",value:function(e,o,t){var n,s=this,r=arguments;return function(){var i=s,l=r,u=t&&!n;window.clearTimeout(n),n=window.setTimeout(function(){n=null,t||e.apply(i,l)},o),u&&e.apply(i,l)}}},{key:"copyTextToClipboard",value:function(e){var o=u.default.make("div","codex-editor-clipboard",{innerHTML:e});document.body.appendChild(o);var t=window.getSelection(),n=document.createRange();n.selectNode(o),window.getSelection().removeAllRanges(),t.addRange(n),document.execCommand("copy"),document.body.removeChild(o)}},{key:"keyCodes",get:function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,LEFT:37,UP:38,DOWN:40,RIGHT:39,DELETE:46,META:91}}}]),e}();n.default=a,a.displayName="Util",e.exports=o.default})?n.apply(o,s):n)||(e.exports=r)},"./src/styles/main.css": /*!*****************************!*\ !*** ./src/styles/main.css ***! \*****************************/ -/*! no static exports found */function(e,o,t){(e.exports=t(/*! ../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,":root {\n /**\n * Selection color\n */\n --selectionColor: #a8d6ff;\n\n /**\n * Toolbar buttons\n */\n --bg-light: #eff2f5;\n\n /**\n * All gray texts: placeholders, settings\n */\n --grayText: #707684;\n\n /**\n * Blue icons\n */\n --color-active-icon: #388AE5;\n\n /**\n * Gray border, loaders\n */\n --color-gray-border: rgba(201, 201, 204, 0.48);\n\n /**\n * Block content width\n */\n --content-width: 650px;\n\n /**\n * Toolbar buttons height and width\n */\n --toolbar-buttons-size: 34px;\n\n /**\n * Toolbar Plus Button and Toolbox buttons height and width\n */\n --toolbox-buttons-size: 24px;\n\n /**\n * Confirm deletion bg\n */\n --color-confirm: #E24A4A;\n}\n/**\n* Editor wrapper\n*/\n.codex-editor {\n position: relative;\n box-sizing: border-box;\n}\n.codex-editor .hide {\n display: none;\n }\n.codex-editor__redactor {\n padding-bottom: 300px;\n }\n.codex-editor-copyable {\n position: absolute;\n height: 1px;\n width: 1px;\n top: -400%;\n opacity: 0.001;\n }\n.codex-editor svg {\n fill: currentColor;\n vertical-align: middle;\n max-height: 100%;\n }\n/**\n * Set color for native selection\n */\n::-moz-selection{\n background-color: #a8d6ff;\n background-color: var(--selectionColor);\n}\n::selection{\n background-color: #a8d6ff;\n background-color: var(--selectionColor);\n}\n/**\n * Add placeholder to content editable elements with data attribute\n * data-placeholder=\"Hello world!\"\n */\n[contentEditable=true][data-placeholder]:empty::before{\n content: attr(data-placeholder);\n color: #707684;\n color: var(--grayText);\n font-weight: normal;\n}\n[contentEditable=true][data-placeholder]:empty:focus::before {\n opacity: 0.3;\n}\n.ce-toolbar {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n /*opacity: 0;*/\n /*visibility: hidden;*/\n transition: opacity 100ms ease;\n will-change: opacity, transform;\n display: none;\n}\n.ce-toolbar--opened {\n display: block;\n /*opacity: 1;*/\n /*visibility: visible;*/\n }\n.ce-toolbar__content {\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n position: relative;\n }\n.ce-toolbar__plus {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center\n }\n.ce-toolbar__plus:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbar__plus {\n\n position: absolute;\n left: calc(calc(24px + 10px) * -1);\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\n }\n.ce-toolbar__plus:hover,\n .ce-toolbar__plus--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbar__plus--active{\n animation: bounceIn 0.75s 1;\n animation-fill-mode: forwards;\n }\n.ce-toolbar__plus--hidden {\n display: none;\n }\n.ce-toolbar__plus,\n .ce-toolbar .ce-toolbox {\n top: 50%;\n transform: translateY(-50%);\n }\n/**\n * Block actions Zone\n * -------------------------\n */\n.ce-toolbar__actions {\n position: absolute;\n right: 0;\n top: 10px;\n padding-right: 16px;\n }\n.ce-toolbar__actions-buttons {\n text-align: right;\n }\n.ce-toolbar__settings-btn {\n display: inline-block;\n width: 24px;\n height: 24px;\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n }\n.ce-toolbox {\n position: absolute;\n visibility: hidden;\n transition: opacity 100ms ease;\n will-change: opacity;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.ce-toolbox--opened {\n opacity: 1;\n visibility: visible;\n }\n.ce-toolbox__button {\n color: #707684;\n color: var(--grayText);\n cursor: pointer;\n width: 24px;\n width: var(--toolbox-buttons-size);\n height: 24px;\n height: var(--toolbox-buttons-size);\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n }\n.ce-toolbox__button:not(:last-of-type){\n margin-right: 10px;\n }\n.ce-toolbox__button:hover,\n .ce-toolbox__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-toolbox__button--active{\n animation: bounceIn 0.75s 1;\n animation-fill-mode: forwards;\n }\n.ce-inline-toolbar {\n position: absolute;\n background-color: #FFFFFF;\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-inline-toolbar::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-inline-toolbar {\n padding: 6px;\n transform: translateX(-50%);\n display: none;\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\n}\n.ce-inline-toolbar--showed {\n display: block;\n }\n.ce-inline-toolbar [hidden] {\n display: none !important;\n }\n.ce-inline-tool {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.ce-inline-tool:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-inline-tool:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-inline-tool {\n line-height: normal;\n}\n.ce-inline-tool > svg,\n .ce-inline-tool .icon {\n margin: auto;\n }\n.ce-inline-tool--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-inline-tool--last {\n margin-right: 0 !important;\n }\n.ce-inline-tool--link .icon {\n margin-top: -2px;\n }\n.ce-inline-tool--link .icon--unlink {\n display: none;\n }\n.ce-inline-tool--unlink .icon--link {\n display: none;\n }\n.ce-inline-tool--unlink .icon--unlink {\n display: inline-block;\n }\n.ce-inline-tool-input {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n outline: none;\n border: 0;\n border-radius: 3px;\n margin: 6px 0 0;\n font-size: 13px;\n padding: 8px;\n width: 100%;\n box-sizing: border-box;\n display: none\n }\n.ce-inline-tool-input:-ms-input-placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input::placeholder {\n color: #707684;\n color: var(--grayText);\n }\n.ce-inline-tool-input--showed {\n display: block;\n }\n.ce-settings {\n position: absolute;\n background-color: #FFFFFF;\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\n border-radius: 4px;\n z-index: 2\n}\n.ce-settings::before {\n content: '';\n width: 15px;\n height: 15px;\n position: absolute;\n top: -7px;\n left: 50%;\n margin-left: -7px;\n transform: rotate(-45deg);\n background-color: #fff;\n z-index: -1;\n }\n.ce-settings {\n right: 5px;\n top: 35px;\n min-width: 124px\n}\n.ce-settings::before{\n left: auto;\n right: 12px;\n }\n.ce-settings {\n\n display: none;\n}\n.ce-settings--opened {\n display: block;\n animation-duration: 0.5s;\n animation-name: bounceIn;\n }\n.ce-settings__plugin-zone:not(:empty){\n padding: 6px 6px 0;\n }\n.ce-settings__default-zone:not(:empty){\n padding: 6px;\n }\n.ce-settings__button {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n }\n.ce-settings__button:not(:last-of-type){\n margin-right: 5px;\n }\n.ce-settings__button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.ce-settings__button {\n line-height: 32px;\n }\n.ce-settings__button > svg,\n .ce-settings__button .icon {\n margin: auto;\n }\n.ce-settings__button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--disabled {\n cursor: not-allowed !important;\n opacity: .3;\n }\n.ce-settings__button--selected {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.ce-settings__button--delete {\n transition: background-color 300ms ease;\n will-change: background-color;\n }\n.ce-settings__button--delete .icon {\n transition: transform 200ms ease-out;\n will-change: transform;\n }\n.ce-settings__button--confirm {\n background-color: #E24A4A;\n background-color: var(--color-confirm);\n color: #fff\n }\n.ce-settings__button--confirm:hover {\n background-color: rgb(213, 74, 74) !important;\n background-color: rgb(213, 74, 74) !important;\n }\n.ce-settings__button--confirm .icon {\n transform: rotate(90deg);\n }\n.ce-block:first-of-type {\n margin-top: 0;\n }\n.ce-block--focused {\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\n border-radius: 3px;\n }\n.ce-block--selected .ce-block__content {\n background: #a8d6ff;\n background: var(--selectionColor);\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\n animation: selectionBounce 0.2s 1;\n animation-fill-mode: forwards;\n }\n.ce-block--selected .ce-block__content img {\n opacity: 0.55;\n }\n.ce-block--stretched .ce-block__content {\n max-width: none;\n }\n.ce-block__content {\n position: relative;\n max-width: 650px;\n max-width: var(--content-width);\n margin: 0 auto;\n }\n.ce-block--drop-target .ce-block__content:before {\n content: '';\n position: absolute;\n top: 100%;\n left: -20px;\n margin-top: -1px;\n height: 8px;\n width: 8px;\n border: solid #388AE5;\n border: solid var(--color-active-icon);\n border-width: 1px 1px 0 0;\n transform-origin: right;\n transform: rotate(45deg);\n }\n.ce-block--drop-target .ce-block__content:after {\n content: '';\n position: absolute;\n top: 100%;\n height: 1px;\n width: 100%;\n color: #388AE5;\n color: var(--color-active-icon);\n background: repeating-linear-gradient(\n 90deg,\n #388AE5,\n #388AE5 1px,\n #fff 1px,\n #fff 6px\n );\n background: repeating-linear-gradient(\n 90deg,\n var(--color-active-icon),\n var(--color-active-icon) 1px,\n #fff 1px,\n #fff 6px\n );\n }\n.wobble {\n animation-name: wobble;\n animation-duration: 400ms;\n}\n/**\n * @author Nick Pettit - https://github.com/nickpettit/glide\n */\n@keyframes wobble {\n from {\n transform: translate3d(0, 0, 0);\n }\n\n 15% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes bounceIn {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 0% {\n transform: scale3d(0.9, 0.9, 0.9);\n }\n\n 20% {\n transform: scale3d(1.03, 1.03, 1.03);\n }\n\n 60% {\n transform: scale3d(1, 1, 1);\n }\n}\n@keyframes selectionBounce {\n from,\n 20%,\n 40%,\n 60%,\n 80%,\n to {\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n\n 50% {\n transform: scale3d(1.01, 1.01, 1.01);\n }\n\n 70% {\n transform: scale3d(1, 1, 1);\n }\n}\n/**\n * Block Tool wrapper\n */\n.cdx-block {\n padding: 0.7em 0;\n}\n/**\n * Input\n */\n.cdx-input {\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\n border-radius: 3px;\n padding: 10px 12px;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n}\n/**\n * Settings\n */\n.cdx-settings-button {\n display: -ms-inline-flexbox;\n display: inline-flex;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n border-radius: 3px;\n cursor: pointer;\n border: 0;\n outline: none;\n background-color: transparent;\n vertical-align: bottom;\n color: #707684;\n color: var(--grayText)\n}\n.cdx-settings-button:not(:last-of-type){\n margin-right: 5px;\n }\n.cdx-settings-button:hover {\n background-color: #eff2f5;\n background-color: var(--bg-light);\n }\n.cdx-settings-button > svg,\n .cdx-settings-button .icon {\n margin: auto;\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n.cdx-settings-button--active {\n color: #388AE5;\n color: var(--color-active-icon);\n }\n/**\n * Loader\n */\n.cdx-loader {\n position: relative;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border)\n}\n.cdx-loader::before {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n width: 18px;\n height: 18px;\n margin: -11px 0 0 -11px;\n border: 2px solid rgba(201, 201, 204, 0.48);\n border: 2px solid var(--color-gray-border);\n border-left-color: #388AE5;\n border-left-color: var(--color-active-icon);\n border-radius: 50%;\n animation: cdxRotation 1.2s infinite linear;\n }\n@keyframes cdxRotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n/**\n * Button\n */\n.cdx-button {\n padding: 13px;\n border-radius: 3px;\n border: 1px solid rgba(201, 201, 204, 0.48);\n border: 1px solid var(--color-gray-border);\n font-size: 14.9px;\n background: #fff;\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\n color: #707684;\n color: var(--grayText);\n text-align: center;\n cursor: pointer\n}\n.cdx-button:hover {\n background: #FBFCFE;\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\n }\n.cdx-button svg {\n height: 20px;\n margin-right: 0.2em;\n margin-top: -2px;\n }\n",""])},0: -/*!*************************!*\ - !*** multi ./src/codex ***! - \*************************/ -/*! no static exports found */function(e,o,t){e.exports=t(/*! ./src/codex */"./src/codex.js")}})}); +/*! no static exports found */function(e,o,t){(e.exports=t(/*! ../../node_modules/css-loader/lib/css-base.js */"./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,":root {\r\n /**\r\n * Selection color\r\n */\r\n --selectionColor: #a8d6ff;\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: rgba(201, 201, 204, 0.48);\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-copyable {\r\n position: absolute;\r\n height: 1px;\r\n width: 1px;\r\n top: -400%;\r\n opacity: 0.001;\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: #a8d6ff;\r\n background-color: var(--selectionColor);\r\n}\r\n::selection{\r\n background-color: #a8d6ff;\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: -webkit-inline-box;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\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 > svg,\r\n .ce-inline-tool .icon {\r\n margin: auto;\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::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 -webkit-animation-duration: 0.5s;\r\n animation-duration: 0.5s;\r\n -webkit-animation-name: bounceIn;\r\n animation-name: bounceIn;\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: -webkit-inline-box;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\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 > svg,\r\n .ce-settings__button .icon {\r\n margin: auto;\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--focused {\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--selected .ce-block__content {\r\n background: #a8d6ff;\r\n background: var(--selectionColor);\r\n -webkit-box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\r\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\r\n -webkit-animation: selectionBounce 0.2s 1;\r\n animation: selectionBounce 0.2s 1;\r\n -webkit-animation-fill-mode: forwards;\r\n animation-fill-mode: forwards;\r\n }\r\n.ce-block--selected .ce-block__content img {\r\n opacity: 0.55;\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.9, 0.9, 0.9);\r\n transform: scale3d(0.9, 0.9, 0.9);\r\n }\r\n\r\n 20% {\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 60% {\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.9, 0.9, 0.9);\r\n transform: scale3d(0.9, 0.9, 0.9);\r\n }\r\n\r\n 20% {\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 60% {\r\n -webkit-transform: scale3d(1, 1, 1);\r\n transform: scale3d(1, 1, 1);\r\n }\r\n}\r\n@-webkit-keyframes selectionBounce {\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 50% {\r\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\r\n transform: scale3d(1.01, 1.01, 1.01);\r\n }\r\n\r\n 70% {\r\n -webkit-transform: scale3d(1, 1, 1);\r\n transform: scale3d(1, 1, 1);\r\n }\r\n}\r\n@keyframes selectionBounce {\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 50% {\r\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\r\n transform: scale3d(1.01, 1.01, 1.01);\r\n }\r\n\r\n 70% {\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 rgba(201, 201, 204, 0.48);\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: -webkit-inline-box;\r\n display: -ms-inline-flexbox;\r\n display: inline-flex;\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 > svg,\r\n .cdx-settings-button .icon {\r\n margin: auto;\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 rgba(201, 201, 204, 0.48);\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 rgba(201, 201, 204, 0.48);\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/**\r\n * Button\r\n */\r\n.cdx-button {\r\n padding: 13px;\r\n border-radius: 3px;\r\n border: 1px solid rgba(201, 201, 204, 0.48);\r\n border: 1px solid var(--color-gray-border);\r\n font-size: 14.9px;\r\n background: #fff;\r\n -webkit-box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\r\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\r\n color: #707684;\r\n color: var(--grayText);\r\n text-align: center;\r\n cursor: pointer\r\n}\r\n.cdx-button:hover {\r\n background: #FBFCFE;\r\n -webkit-box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\r\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\r\n }\r\n.cdx-button svg {\r\n height: 20px;\r\n margin-right: 0.2em;\r\n margin-top: -2px;\r\n }\r\n",""])},0: +/*!*******************************************************!*\ + !*** multi @babel/polyfill/noConflict ./src/codex.ts ***! + \*******************************************************/ +/*! no static exports found */function(e,o,t){t(/*! @babel/polyfill/noConflict */"./node_modules/@babel/polyfill/noConflict.js"),e.exports=t(/*! ./src/codex.ts */"./src/codex.ts")}})}); //# sourceMappingURL=codex-editor.js.map \ No newline at end of file diff --git a/build/codex-editor.js.map b/build/codex-editor.js.map index 3d72efa3..ee9ad048 100644 --- a/build/codex-editor.js.map +++ b/build/codex-editor.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@babel/polyfill/lib/index.js","webpack://CodexEditor/./node_modules/@babel/register/lib/browser.js","webpack://CodexEditor/./node_modules/@babel/register/lib/index.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/inherits.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/@babel/runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/codex-notifier/dist/bundle.js","webpack://CodexEditor/./node_modules/core-js/es6/index.js","webpack://CodexEditor/./node_modules/core-js/fn/array/includes.js","webpack://CodexEditor/./node_modules/core-js/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/fn/object/values.js","webpack://CodexEditor/./node_modules/core-js/fn/promise/finally.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-end.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-start.js","webpack://CodexEditor/./node_modules/core-js/fn/symbol/async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-number-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-fill.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_bind.js","webpack://CodexEditor/./node_modules/core-js/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-weak.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails-is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/modules/_fix-re-wks.js","webpack://CodexEditor/./node_modules/core-js/modules/_flags.js","webpack://CodexEditor/./node_modules/core-js/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_inherit-if-required.js","webpack://CodexEditor/./node_modules/core-js/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-fround.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-sign.js","webpack://CodexEditor/./node_modules/core-js/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_strict-method.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-context.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-html.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-pad.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-trim.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-ws.js","webpack://CodexEditor/./node_modules/core-js/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed.js","webpack://CodexEditor/./node_modules/core-js/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.every.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.fill.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.filter.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find-index.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.for-each.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.join.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.last-index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.slice.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.some.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.sort.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.species.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.now.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.bind.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.has-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.name.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.acosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.asinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.atanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.clz32.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.fround.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.hypot.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.imul.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log10.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log2.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.tanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.trunc.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.epsilon.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-nan.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-precision.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-properties.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.freeze.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-frozen.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-sealed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.seal.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.has.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.flags.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.match.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.search.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.split.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.anchor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.big.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.blink.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.bold.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.code-point-at.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.ends-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontcolor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontsize.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.from-code-point.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.italics.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.link.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.raw.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.small.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.starts-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.strike.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sub.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sup.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.trim.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.data-view.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float64-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-set.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-end.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-start.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/web.dom.iterable.js","webpack://CodexEditor/./node_modules/core-js/modules/web.immediate.js","webpack://CodexEditor/./node_modules/core-js/modules/web.timers.js","webpack://CodexEditor/./node_modules/core-js/web/index.js","webpack://CodexEditor/./node_modules/css-loader/lib/css-base.js","webpack://CodexEditor/./node_modules/html-janitor/src/html-janitor.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/(webpack)/buildin/global.js","webpack://CodexEditor/./src/codex.js","webpack://CodexEditor/./src/components/__module.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-delete.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-down.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-up.ts","webpack://CodexEditor/./src/components/block.ts","webpack://CodexEditor/./src/components/core.js","webpack://CodexEditor/./src/components/dom.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-bold.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-italic.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-link.ts","webpack://CodexEditor/./src/components/modules sync nonrecursive [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$","webpack://CodexEditor/./src/components/modules/api-blocks.ts","webpack://CodexEditor/./src/components/modules/api-caret.ts","webpack://CodexEditor/./src/components/modules/api-events.ts","webpack://CodexEditor/./src/components/modules/api-listener.ts","webpack://CodexEditor/./src/components/modules/api-notifier.ts","webpack://CodexEditor/./src/components/modules/api-sanitizer.ts","webpack://CodexEditor/./src/components/modules/api-saver.ts","webpack://CodexEditor/./src/components/modules/api-selection.ts","webpack://CodexEditor/./src/components/modules/api-styles.ts","webpack://CodexEditor/./src/components/modules/api-toolbar.ts","webpack://CodexEditor/./src/components/modules/api.ts","webpack://CodexEditor/./src/components/modules/block-events.ts","webpack://CodexEditor/./src/components/modules/blockManager.js","webpack://CodexEditor/./src/components/modules/blockSelection.ts","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/notifier.ts","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.js","webpack://CodexEditor/./src/components/modules/sanitizer.ts","webpack://CodexEditor/./src/components/modules/saver.ts","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar-blockSettings.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","global","_babelPolyfill","console","warn","default","revert","args","register","node","assign","arr","Array","isArray","arr2","length","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","obj","iter","iterator","toString","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof2","g","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","e","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","result","keys","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","BACKSPACE","ENTER","ESCAPE","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","u","CMD","SHIFT","ALT","commands","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","show","message","getWrapper","document","body","appendChild","time","confirm","prompt","alert","setTimeout","remove","classList","add","hmr","transform","insertInto","locals","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","concat","join","all","atob","querySelector","HTMLIFrameElement","contentDocument","head","f","id","refs","parts","x","base","css","media","sourceMap","insertAt","nextSibling","insertBefore","firstChild","before","parentNode","removeChild","splice","b","createElement","attrs","setAttribute","singleton","h","URL","createObjectURL","revokeObjectURL","Blob","rel","convertToAbsoluteUrls","href","styleSheet","cssText","createTextNode","DEBUG","y","filter","Boolean","childNodes","location","protocol","host","pathname","replace","trim","test","style","innerHTML","cancelHandler","okHandler","okText","cancelText","placeholder","inputType","entries","getOwnPropertyDescriptors","String","padEnd","padStart","it","cof","msg","UNSCOPABLES","ArrayProto","forbiddenField","isObject","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","end","count","Math","min","inc","aLen","index","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","aFunction","memo","isRight","SPECIES","original","speciesConstructor","arraySlice","factories","partArgs","bound","construct","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","core","version","__e","$defineProperty","createDesc","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toPrimitive","hint","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","MATCH","re","exec","defined","wks","SYMBOL","fns","strfn","rxfn","RegExp","string","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","ITERATOR","iterFn","__g","documentElement","un","propertyIsEnumerable","Iterators","floor","isRegExp","ret","LIBRARY","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","isNode","last","notify","flush","parent","domain","exit","enter","nextTick","navigator","standalone","promise","toggle","observe","characterData","task","$$resolve","$$reject","$assign","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","str","$parseInt","parseInt","ws","hex","radix","newPromiseCapability","promiseCapability","bitmap","SRC","$toString","TPL","inspectSource","isFunction","check","buggy","tag","stat","shared","uid","copyright","toInteger","TO_STRING","pos","charCodeAt","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","max","number","valueOf","$typed","$buffer","propertyDesc","toIndex","classof","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","setProto","existingDescriptor","ownDesc","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","$at","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","$isView","isView","fin","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","getDesc","$values","finally","onFinally","$pad","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$task","MSIE","boundArgs","setInterval","useSourceMap","item","content","cssMapping","sourceMapping","toComment","sourceURLs","cssWithMappingToString","mediaQuery","alreadyImportedModules","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","HTMLJanitor","config","tagDefinitions","tags","validConfigValues","blockElementNames","isBlockElement","nodeName","inlineElementNames","isInlineElement","getAllowedAttrs","shouldRejectNode","allowedAttrs","shouldRejectAttr","attr","attrName","clean","sandbox","_sanitize","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","_sanitized","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","removeAttribute","previousElementSibling","nextElementSibling","eval","CodexEditor","configuration","_this","_classCallCheck2","onReady","editor","Core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","$","make","svg","handleClick","needConfirmation","events","off","blocks","stopPropagation","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","nextBlockElement","getBlockByIndex","holder","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","scrollUpOffset","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","compose","tunes","makeTunes","methodName","params","merge","save","pluginsContent","extractedBlock","measuringStart","performance","finishedExtraction","measuringEnd","_utils","isValid","_this3","tunesList","_blockTuneMoveUp","_blockTuneDelete","_blockTuneMoveDown","tune","tunesElement","createDocumentFragment","_dom","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","sanitize","contentless","emptyText","isEmpty","emptyMedia","hasMedia","focused","selected","wrapperStretched","dropTarget","onFail","_","holderId","tools","constructModules","configureModules","getModulesDiff","diff","moduleName","modulesToPrepare","_asyncToGenerator2","_regenerator","_callee","_context","prepare","t0","Renderer","initialBlock","initialBlockData","sanitizer","hideToolbar","onChange","Dom","tagName","_el$classList","classNames","_toConsumableArray2","width","height","icon","createElementNS","elements","prepend","el1","el2","temp","getElementById","atLast","child","sibling","ELEMENT_NODE","nodeChild","isSingleTag","isNativeInput","getDeepestNode","DOCUMENT_FRAGMENT_NODE","isElement","textContent","leafs","isNodeEmpty","shift","isLeaf","leaf","childElementCount","BoldInlineTool","commandName","buttonActive","buttonModifier","range","execCommand","selection","isActive","queryCommandState","ItalicInlineTool","LinkInlineTool","commandLink","commandUnlink","ENTER_KEY","buttonUnlink","inputShowed","inputOpened","inlineToolbar","toolbar","_selection","enterPressed","parentAnchor","findParentTag","expandToTag","unlink","closeActions","checkState","toggleActions","anchorTag","openActions","hrefAttr","getAttribute","needFocus","focus","clearSavedSelection","clearSaved","restore","preventDefault","validateURL","prepareLink","insertLink","stopImmediatePropagation","link","addProtocol","isInternal","isAnchor","substring","isProtocolRelative","./api-blocks.ts","./api-caret.ts","./api-events.ts","./api-listener.ts","./api-notifier.ts","./api-sanitizer.ts","./api-saver.ts","./api-selection.ts","./api-styles.ts","./api-toolbar.ts","./api.ts","./block-events.ts","./blockManager.js","./blockSelection.ts","./caret.js","./dragNDrop.ts","./events.js","./listeners.js","./modificationsObserver.ts","./notifier.ts","./paste.ts","./renderer.js","./sanitizer.ts","./saver.ts","./shortcuts.ts","./toolbar-blockSettings.js","./toolbar-inline.ts","./toolbar-toolbox.js","./toolbar.js","./tools.js","./ui.js","webpackContext","req","webpackContextResolve","BlocksAPI","_possibleConstructorReturn2","_getPrototypeOf2","BlockManager","Toolbar","move","blockIndex","removeBlock","insert","Caret","setToBlock","currentBlock","navigatePrevious","status","block","stretched","newBlock","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","ListenerAPI","eventType","useCapture","NotifierAPI","options","Notifier","SanitizerAPI","taintString","Sanitizer","SaverAPI","Saver","SelectionAPI","className","StylesAPI","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","ToolbarAPI","caret","notifier","saver","styles","classes","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","ESC","escapePressed","defaultHandler","needToolbarClosing","cmdKey","clearFocused","BlockSelection","clearSelection","InlineToolbar","handleShowingEvent","direction","opened","Toolbox","plusButton","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","_this4","blockToMergeIndex","blockToMergeInfo","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","isLastBlock","nextBlocks","previousBlocks","workingArea","second","secondBlock","deleteCount","previousBlock","insertAdjacentElement","nextBlock","children","needToSelectAll","Shortcuts","handleCommandA","handleCommandC","restoreSelection","anyBlockSelected","selectAllBlocks","selectBlockByIndex","_this$Editor","fakeClipboard","cleanHTML","sanitizerConfig","fragment","copyTextToClipboard","removeAllRanges","h1","h2","h3","h4","h5","h6","ol","ul","li","br","img","position","positions","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","createRange","Selection","selectionStart","selectionEnd","setStart","setEnd","addRange","_range$getBoundingCli","bottom","_window","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","current","siblings","contentEditable","force","_this$Editor$BlockMan","nextContentfulBlock","nextInput","isAtEnd","_this$Editor$BlockMan2","previousContentfulBlock","_ref2","previousInput","shadowCaret","sel","newRange","selectNode","isCollapsed","anchorNode","firstNode","firstLetterPosition","leftSiblings","getHigherLevelSiblings","nothingAtLeft","anchorOffset","lastNode","nothingAtRight","rightTrimmedText","DragNDrop","isStartedAtEditor","processDrop","dropEvent","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","alreadyExist","findOne","existingListeners","findAll","listenersOnElement","listenersWithType","listenersWithHandler","foundListeners","foundByElements","findByElement","mutationDebouncer","debounce","DebounceTimer","setObserver","_codexNotifier","_module","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref3","_slicedToArray2","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref4","_assertThisInitialize","_assertThisInitialize2","_assertThisInitialized2","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","items","plainData","getData","htmlData","customConfig","getAllInlineToolsConfig","cleanData","isHTMLString","processText","blockTools","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref5","_ref6","pattern","getBlock","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref7","_ref8","_ref8$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref9","_callee6","_context6","_this5","insertBlock","_x6","_x7","_caret","_this6","_this$Editor3","initialTool","getNodes","_Tools$blockTools$too","toolTags","getInlineToolsConfig","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","sanitizeConfig","composeToolConfig","deepSanitize","insertedBlock","currentToolSanitizeConfig","substitute","execResult","canReplaceCurrentBlock","_this$Editor6","_this7","reducer","destNode","DocumentFragment","isFragment","_ref10","_ref10$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref11","containsBlockElements","_ref12","chainData","_loop","function","sequence","configCache","inlineToolsConfigCache","blocksData","toolConfig","dataToSanitize","rules","cleanArray","cleanObject","cleanOneItem","sanitizerInstance","createHTMLJanitorInstance","sanitizeGetter","SANITIZE_CONFIG","baseConfig","toolRules","fieldName","rule","toolsConfig","getToolSettings","enableInlineTools","inlineToolName","inline","inlineTool","ruleForItem","arrayItem","currentIterationItem","isRule","_htmlJanitor","extractedData","sanitizeBlocks","allExtractedData","makeOutput","outputData","totalTime","groupCollapsed","extraction","groupEnd","registeredShortcuts","shortcut","newShortcut","_shortcuts","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","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","IS_INLINE","inlineTools","SHORTCUT","enableShortcuts","surround","toolsInstances","allTools","Map","constructInline","toolbox","activeButtonIndex","displayedToolsCount","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","forceClose","contentOffset","offsetTop","toolbarOpened","settingsTogglerClicked","plusButtonHidden","Paragraph","toolsSettings","toolsUnavailable","_inlineTools","sequenceData","getListOfPrepareFunctions","success","fallback","toolPreparationList","CONFIG","plugin","constructorOptions","notImplementedMethods","IS_CONTENTLESS","IS_PASTE_DISALLOWED","bold","italic","paragraph","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","keyDownOnEditor","hasPointerToBlock","highlightCurrentNode","clickedOnInlineToolbarButton","clickedInsideofEditor","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","getSelection","searchDepth","parentTag","focusNode","boundNodes","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","Util","chains","waitNextBlock","_callee2","successCallback","fallbackCallback","_context2","previousValue","currentValue","_x5","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","CTRL","SPACE"],"mappings":"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","file":"codex-editor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CodexEditor\"] = factory();\n\telse\n\t\troot[\"CodexEditor\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = \"\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\"","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nif (global._babelPolyfill && typeof console !== \"undefined\" && console.warn) {\n console.warn(\"@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended \" + \"and may have consequences if different versions of the polyfills are applied sequentially. \" + \"If you do need to load the polyfill more than once, use @babel/polyfill/noConflict \" + \"instead to bypass the warning.\");\n}\n\nglobal._babelPolyfill = true;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = register;\nexports.revert = revert;\n\nfunction register() {}\n\nfunction revert() {}","exports = module.exports = function (...args) {\n return register(...args);\n};\n\nexports.__esModule = true;\n\nconst node = require(\"./node\");\n\nconst register = node.default;\nObject.assign(exports, node);","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Library for handling keyboard shortcuts\n * @copyright undefined\n * @license MIT\n * @author CodeX (https://ifmo.su)\n * @version 1.0.0\n */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){for(var n=0;n1)for(var n in u)u[n].includes(e[t])&&(this.commands[n]=!0);else this.keys[e[t]]=!0}},{key:\"execute\",value:function(e){var t=e.ctrlKey||e.metaKey,n=e.shiftKey,r=e.altKey,o={CMD:t,SHIFT:n,ALT:r},u=void 0,c=!0;for(u in this.commands)c=c&&o[u];var a=void 0,s=!0;for(a in this.keys)s=s&&e.keyCode===i[a];c&&s&&this.callback(e)}},{key:\"remove\",value:function(){this.element.removeEventListener(\"keydown\",this.executeShortcut)}}]),e}();t.default=c}])});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.notifier=e():t.notifier=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";n(1),\n/*!\n * Codex JavaScript Notification module\n * https://github.com/codex-team/js-notifier\n */\nt.exports=function(){var t=n(6),e=\"cdx-notify--bounce-in\",r=null;return{show:function(n){if(n.message){!function(){if(r)return!0;r=t.getWrapper(),document.body.appendChild(r)}();var o=null,i=n.time||8e3;switch(n.type){case\"confirm\":o=t.confirm(n);break;case\"prompt\":o=t.prompt(n);break;default:o=t.alert(n),window.setTimeout(function(){o.remove()},i)}r.appendChild(o),o.classList.add(e)}}}}()},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,'.cdx-notify--error{background:#fffbfb!important}.cdx-notify--error::before{background:#fb5d5d!important}.cdx-notify__input{max-width:130px;padding:5px 10px;background:#f7f7f7;border:0;border-radius:3px;font-size:13px;color:#656b7c;outline:0}.cdx-notify__input:-ms-input-placeholder{color:#656b7c}.cdx-notify__input::placeholder{color:#656b7c}.cdx-notify__input:focus:-ms-input-placeholder{color:rgba(101,107,124,.3)}.cdx-notify__input:focus::placeholder{color:rgba(101,107,124,.3)}.cdx-notify__button{border:none;border-radius:3px;font-size:13px;padding:5px 10px;cursor:pointer}.cdx-notify__button:last-child{margin-left:10px}.cdx-notify__button--cancel{background:#f2f5f7;box-shadow:0 2px 1px 0 rgba(16,19,29,0);color:#656b7c}.cdx-notify__button--cancel:hover{background:#eee}.cdx-notify__button--confirm{background:#34c992;box-shadow:0 1px 1px 0 rgba(18,49,35,.05);color:#fff}.cdx-notify__button--confirm:hover{background:#33b082}.cdx-notify__btns-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-top:5px}.cdx-notify__cross{position:absolute;top:5px;right:5px;width:10px;height:10px;padding:5px;opacity:.54;cursor:pointer}.cdx-notify__cross::after,.cdx-notify__cross::before{content:\\'\\';position:absolute;left:9px;top:5px;height:12px;width:2px;background:#575d67}.cdx-notify__cross::before{transform:rotate(-45deg)}.cdx-notify__cross::after{transform:rotate(45deg)}.cdx-notify__cross:hover{opacity:1}.cdx-notifies{position:fixed;z-index:2;bottom:20px;left:20px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif}.cdx-notify{position:relative;width:220px;margin-top:15px;padding:13px 16px;background:#fff;box-shadow:0 11px 17px 0 rgba(23,32,61,.13);border-radius:5px;font-size:14px;line-height:1.4em;word-wrap:break-word}.cdx-notify::before{content:\\'\\';position:absolute;display:block;top:0;left:0;width:3px;height:calc(100% - 6px);margin:3px;border-radius:5px;background:0 0}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.cdx-notify--bounce-in{animation-name:bounceIn;animation-duration:.6s;animation-iteration-count:1}.cdx-notify--success{background:#fafffe!important}.cdx-notify--success::before{background:#41ffb1!important}',\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o=0&&s.splice(e,1)}function b(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(e,t.attrs),l(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function x(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var s=c++;n=a||(a=b(e)),r=h.bind(null,n,s,!1),o=h.bind(null,n,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(e,t.attrs),l(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),c=t.href;t.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,e),o=function(){p(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){p(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=u(t,e);return d(n,e),function(t){for(var o=[],i=0;i 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('html-janitor', factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.HTMLJanitor = factory();\n }\n}(this, function () {\n\n /**\n * @param {Object} config.tags Dictionary of allowed tags.\n * @param {boolean} config.keepNestedBlockElements Default false.\n */\n function HTMLJanitor(config) {\n\n var tagDefinitions = config['tags'];\n var tags = Object.keys(tagDefinitions);\n\n var validConfigValues = tags\n .map(function(k) { return typeof tagDefinitions[k]; })\n .every(function(type) { return type === 'object' || type === 'boolean' || type === 'function'; });\n\n if(!validConfigValues) {\n throw new Error(\"The configuration was invalid\");\n }\n\n this.config = config;\n }\n\n // TODO: not exhaustive?\n var blockElementNames = ['P', 'LI', 'TD', 'TH', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'PRE'];\n function isBlockElement(node) {\n return blockElementNames.indexOf(node.nodeName) !== -1;\n }\n\n var inlineElementNames = ['A', 'B', 'STRONG', 'I', 'EM', 'SUB', 'SUP', 'U', 'STRIKE'];\n function isInlineElement(node) {\n return inlineElementNames.indexOf(node.nodeName) !== -1;\n }\n\n HTMLJanitor.prototype.clean = function (html) {\n var sandbox = document.createElement('div');\n sandbox.innerHTML = html;\n\n this._sanitize(sandbox);\n\n return sandbox.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (parentNode) {\n var treeWalker = createTreeWalker(parentNode);\n var node = treeWalker.firstChild();\n if (!node) { return; }\n\n do {\n // Ignore nodes that have already been sanitized\n if (node._sanitized) {\n continue;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n // If this text node is just whitespace and the previous or next element\n // sibling is a block element, remove it\n // N.B.: This heuristic could change. Very specific to a bug with\n // `contenteditable` in Firefox: http://jsbin.com/EyuKase/1/edit?js,output\n // FIXME: make this an option?\n if (node.data.trim() === ''\n && ((node.previousElementSibling && isBlockElement(node.previousElementSibling))\n || (node.nextElementSibling && isBlockElement(node.nextElementSibling)))) {\n parentNode.removeChild(node);\n this._sanitize(parentNode);\n break;\n } else {\n continue;\n }\n }\n\n // Remove all comments\n if (node.nodeType === Node.COMMENT_NODE) {\n parentNode.removeChild(node);\n this._sanitize(parentNode);\n break;\n }\n\n var isInline = isInlineElement(node);\n var containsBlockElement;\n if (isInline) {\n containsBlockElement = Array.prototype.some.call(node.childNodes, isBlockElement);\n }\n\n // Block elements should not be nested (e.g.
  • ...); if\n // they are, we want to unwrap the inner block element.\n var isNotTopContainer = !! parentNode.parentNode;\n var isNestedBlockElement =\n isBlockElement(parentNode) &&\n isBlockElement(node) &&\n isNotTopContainer;\n\n var nodeName = node.nodeName.toLowerCase();\n\n var allowedAttrs = getAllowedAttrs(this.config, nodeName, node);\n\n var isInvalid = isInline && containsBlockElement;\n\n // Drop tag entirely according to the whitelist *and* if the markup\n // is invalid.\n if (isInvalid || shouldRejectNode(node, allowedAttrs)\n || (!this.config.keepNestedBlockElements && isNestedBlockElement)) {\n // Do not keep the inner text of SCRIPT/STYLE elements.\n if (! (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE')) {\n while (node.childNodes.length > 0) {\n parentNode.insertBefore(node.childNodes[0], node);\n }\n }\n parentNode.removeChild(node);\n\n this._sanitize(parentNode);\n break;\n }\n\n // Sanitize attributes\n for (var a = 0; a < node.attributes.length; a += 1) {\n var attr = node.attributes[a];\n\n if (shouldRejectAttr(attr, allowedAttrs, node)) {\n node.removeAttribute(attr.name);\n // Shift the array to continue looping.\n a = a - 1;\n }\n }\n\n // Sanitize children\n this._sanitize(node);\n\n // Mark node as sanitized so it's ignored in future runs\n node._sanitized = true;\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(node) {\n return document.createTreeWalker(node,\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n null, false);\n }\n\n function getAllowedAttrs(config, nodeName, node){\n if (typeof config.tags[nodeName] === 'function') {\n return config.tags[nodeName](node);\n } else {\n return config.tags[nodeName];\n }\n }\n\n function shouldRejectNode(node, allowedAttrs){\n if (typeof allowedAttrs === 'undefined') {\n return true;\n } else if (typeof allowedAttrs === 'boolean') {\n return !allowedAttrs;\n }\n\n return false;\n }\n\n function shouldRejectAttr(attr, allowedAttrs, node){\n var attrName = attr.name.toLowerCase();\n\n if (allowedAttrs === true){\n return false;\n } else if (typeof allowedAttrs[attrName] === 'function'){\n return !allowedAttrs[attrName](attr.value, node);\n } else if (typeof allowedAttrs[attrName] === 'undefined'){\n return true;\n } else if (allowedAttrs[attrName] === false) {\n return true;\n } else if (typeof allowedAttrs[attrName] === 'string') {\n return (allowedAttrs[attrName] !== attr.value);\n }\n\n return false;\n }\n\n return HTMLJanitor;\n\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\n/**\n * Apply polyfills\n */\nimport '@babel/register';\nif (!window || !window._babelPolyfill) require('@babel/polyfill');\nimport 'components/polyfills';\nimport Core from './components/core';\n\n/**\n * Codex Editor\n *\n * Short Description (눈_눈;)\n * @version 2.0\n *\n * @author CodeX-Team \n */\nexport default class CodexEditor {\n /** Editor version */\n static get version() {\n return VERSION;\n }\n\n /**\n * @constructor\n *\n * @param {EditorConfig|String} [configuration] - user configuration\n */\n constructor(configuration) {\n /**\n * Set default onReady function\n */\n let onReady = () => {};\n\n /**\n * If `onReady` was passed in `configuration` then redefine onReady function\n */\n if (typeof configuration === 'object' && typeof configuration.onReady === 'function') {\n onReady = configuration.onReady;\n }\n\n /**\n * Create a CodeX Editor instance\n */\n const editor = new Core(configuration);\n\n /**\n * We need to export isReady promise in the constructor\n * as it can be used before other API methods are exported\n * @type {Promise}\n */\n this.isReady = editor.isReady.then(() => {\n this.exportAPI(editor);\n onReady();\n });\n }\n\n /**\n * Export external API methods\n *\n * @param editor\n */\n exportAPI(editor) {\n const fieldsToExport = [ 'configuration' ];\n const destroy = () => {\n editor.moduleInstances.Listeners.removeAll();\n editor.moduleInstances.UI.destroy();\n editor.moduleInstances.ModificationsObserver.destroy();\n editor = null;\n\n for (const field in this) {\n delete this[field];\n }\n\n Object.setPrototypeOf(this, null);\n };\n\n fieldsToExport.forEach(field => {\n this[field] = editor[field];\n });\n\n this.destroy = destroy;\n\n Object.setPrototypeOf(this, editor.moduleInstances.API.methods);\n\n delete this['exportAPI'];\n }\n}\n","import IEditor from './interfaces/editor';\nimport IEditorConfig from './interfaces/editor-config';\nimport IModuleConfig from './interfaces/module-config';\n\n/**\n * @abstract\n * @class Module\n * @classdesc All modules inherits from this class.\n *\n * @typedef {Module} Module\n * @property {Object} config - Editor user settings\n * @property {IEditorConfig} Editor - List of Editor modules\n */\nexport default class Module {\n\n /**\n * Editor modules list\n * @type {IEditor}\n */\n protected Editor: IEditor;\n\n /**\n * Editor configuration object\n * @type {IEditorConfig}\n */\n protected config: IEditorConfig;\n\n /**\n * @constructor\n * @param {IModuleConfig}\n */\n constructor({config}: IModuleConfig) {\n if (new.target === Module) {\n throw new TypeError('Constructors for abstract class Module are not allowed.');\n }\n\n this.config = config;\n }\n\n /**\n * Editor modules setter\n * @param {IEditor} Editor\n */\n set state(Editor) {\n this.Editor = Editor;\n }\n}\n","/**\n * @class DeleteTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class DeleteTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {docs/api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n wrapper: 'ass',\n button: 'ce-settings__button',\n buttonDelete: 'ce-settings__button--delete',\n buttonConfirm: 'ce-settings__button--confirm',\n };\n\n /**\n * Delete confirmation\n */\n private needConfirmation: boolean;\n\n /**\n * set false confirmation state\n */\n private resetConfirmation: () => void;\n\n /**\n * Tune nodes\n */\n private nodes = {\n button: null,\n };\n\n /**\n * DeleteTune constructor\n *\n * @param {Object} api\n */\n constructor({api}) {\n this.api = api;\n\n this.resetConfirmation = () => {\n this.setConfirmation(false);\n };\n }\n\n /**\n * Create \"Delete\" button and add click event listener\n * @returns [Element}\n */\n public render() {\n this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {});\n this.nodes.button.appendChild($.svg('cross', 12, 12));\n this.api.listener.on(this.nodes.button, 'click', (event) => this.handleClick(event), false);\n return this.nodes.button;\n }\n\n /**\n * Delete block conditions passed\n * @param {MouseEvent} event\n */\n public handleClick(event: MouseEvent): void {\n\n /**\n * if block is not waiting the confirmation, subscribe on block-settings-closing event to reset\n * otherwise delete block\n */\n if (!this.needConfirmation) {\n this.setConfirmation(true);\n\n /**\n * Subscribe on event.\n * When toolbar block settings is closed but block deletion is not confirmed,\n * then reset confirmation state\n */\n this.api.events.on('block-settings-closed', this.resetConfirmation);\n\n } else {\n\n /**\n * Unsubscribe from block-settings closing event\n */\n this.api.events.off('block-settings-closed', this.resetConfirmation);\n\n this.api.blocks.delete();\n\n /**\n * Prevent firing ui~documentClicked that can drop currentBlock pointer\n */\n event.stopPropagation();\n }\n }\n\n /**\n * change tune state\n */\n private setConfirmation(state): void {\n this.needConfirmation = state;\n this.nodes.button.classList.add(this.CSS.buttonConfirm);\n }\n\n}\n","/**\n * @class MoveDownTune\n * @classdesc Editor's default tune - Moves down highlighted block\n *\n * @copyright 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveDownTune implements IBlockTune {\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-down',\n animation: 'wobble',\n };\n\n /**\n * MoveDownTune constructor\n *\n * @param {Object} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Return 'move down' button\n */\n public render() {\n const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveDownButton.appendChild($.svg('arrow-down', 14, 14));\n this.api.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false);\n return moveDownButton;\n }\n\n /**\n * Handle clicks on 'move down' button\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement) {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n // If Block is last do nothing\n if (currentBlockIndex === this.api.blocks.getBlocksCount() - 1) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1).holder,\n nextBlockCoords = nextBlockElement.getBoundingClientRect();\n\n let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight);\n\n /**\n * Next block ends on screen.\n * Increment scroll by next block's height to save element onscreen-position\n */\n if (nextBlockCoords.top < window.innerHeight) {\n\n scrollOffset = window.scrollY + nextBlockElement.offsetHeight;\n\n }\n\n window.scrollTo(0, scrollOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex + 1);\n\n }\n}\n","/**\n * @class MoveUpTune\n * @classdesc Editor's default tune that moves up selected block\n *\n * @copyright 2018\n */\nimport IBlockTune from '../interfaces/block-tune';\n\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class MoveUpTune implements IBlockTune {\n\n /**\n * Property that contains CodeX Editor API methods\n * @see {api.md}\n */\n private readonly api: any;\n\n /**\n * Styles\n * @type {{wrapper: string}}\n */\n private CSS = {\n button: 'ce-settings__button',\n wrapper: 'ce-tune-move-up',\n animation: 'wobble',\n };\n\n /**\n * MoveUpTune constructor\n *\n * @param {Object} api\n */\n public constructor({api}) {\n this.api = api;\n }\n\n /**\n * Create \"MoveUp\" button and add click event listener\n * @returns [HTMLElement}\n */\n public render(): HTMLElement {\n const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {});\n moveUpButton.appendChild($.svg('arrow-up', 14, 14));\n this.api.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false);\n return moveUpButton;\n }\n\n /**\n * Move current block up\n * @param {MouseEvent} event\n * @param {HTMLElement} button\n */\n public handleClick(event: MouseEvent, button: HTMLElement): void {\n\n const currentBlockIndex = this.api.blocks.getCurrentBlockIndex();\n\n if (currentBlockIndex === 0) {\n button.classList.add(this.CSS.animation);\n\n window.setTimeout( () => {\n button.classList.remove(this.CSS.animation);\n }, 500);\n return;\n }\n\n const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex).holder,\n previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder;\n\n /**\n * Here is two cases:\n * - when previous block has negative offset and part of it is visible on window, then we scroll\n * by window's height and add offset which is mathematically difference between two blocks\n *\n * - when previous block is visible and has offset from the window,\n * than we scroll window to the difference between this offsets.\n */\n const currentBlockCoords = currentBlockElement.getBoundingClientRect(),\n previousBlockCoords = previousBlockElement.getBoundingClientRect();\n\n let scrollUpOffset;\n\n if (previousBlockCoords.top > 0) {\n scrollUpOffset = Math.abs(currentBlockCoords.top) - Math.abs(previousBlockCoords.top);\n } else {\n scrollUpOffset = window.innerHeight - Math.abs(currentBlockCoords.top) + Math.abs(previousBlockCoords.top);\n }\n\n window.scrollBy(0, -1 * scrollUpOffset);\n\n /** Change blocks positions */\n this.api.blocks.swap(currentBlockIndex, currentBlockIndex - 1);\n }\n}\n","import IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune';\nimport $ from './dom';\nimport _ from './utils';\n\ntype Tool = any;\n\n/**\n * @class Block\n * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool\n *\n * @property {Tool} tool — current block tool (Paragraph, for example)\n * @property {Object} CSS — block`s css classes\n *\n */\n\n/** Import default tunes */\nimport MoveUpTune from './block-tunes/block-tune-move-up';\nimport DeleteTune from './block-tunes/block-tune-delete';\nimport MoveDownTune from './block-tunes/block-tune-move-down';\nimport {IAPI} from './interfaces/api';\n\n/**\n * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance\n *\n * @property tool - Tool instance\n * @property html - Returns HTML content of plugin\n * @property holder - Div element that wraps block content with Tool's content. Has `ce-block` CSS class\n * @property pluginsContent - HTML content that returns by Tool's render function\n */\nexport default class Block {\n\n /**\n * CSS classes for the Block\n * @return {{wrapper: string, content: string}}\n */\n static get CSS() {\n return {\n wrapper: 'ce-block',\n wrapperStretched: 'ce-block--stretched',\n content: 'ce-block__content',\n focused: 'ce-block--focused',\n selected: 'ce-block--selected',\n dropTarget: 'ce-block--drop-target',\n };\n }\n\n /**\n * Find and return all editable elements (contenteditables and native inputs) in the Tool HTML\n *\n * @returns {HTMLElement[]}\n */\n get inputs(): HTMLElement[] {\n const content = this.holder;\n const allowedInputTypes = ['text', 'password', 'email', 'number', 'search', 'tel', 'url'];\n\n const selector = '[contenteditable], textarea, input, '\n + allowedInputTypes.map((type) => `input[type=\"${type}\"]`).join(', ');\n\n const inputs = _.array(content.querySelectorAll(selector));\n\n /**\n * If inputs amount was changed we need to check if input index is bigger then inputs array length\n */\n if (this.inputIndex > inputs.length - 1) {\n this.inputIndex = inputs.length - 1;\n }\n\n return inputs;\n }\n\n /**\n * Return current Tool`s input\n *\n * @returns {HTMLElement}\n */\n get currentInput(): HTMLElement {\n return this.inputs[this.inputIndex];\n }\n\n /**\n * Set input index to the passed element\n *\n * @param {HTMLElement} element\n */\n set currentInput(element: HTMLElement) {\n const index = this.inputs.findIndex((input) => input === element || input.contains(element));\n\n if (index !== -1) {\n this.inputIndex = index;\n }\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get firstInput(): HTMLElement {\n return this.inputs[0];\n }\n\n /**\n * Return first Tool`s input\n *\n * @returns {HTMLElement}\n */\n get lastInput(): HTMLElement {\n const inputs = this.inputs;\n\n return inputs[inputs.length - 1];\n }\n\n /**\n * Return next Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get nextInput(): HTMLElement {\n return this.inputs[this.inputIndex + 1];\n }\n\n /**\n * Return previous Tool`s input or undefined if it doesn't exist\n *\n * @returns {HTMLElement}\n */\n get previousInput(): HTMLElement {\n return this.inputs[this.inputIndex - 1];\n }\n\n /**\n * Returns Plugins content\n * @return {Node}\n */\n get pluginsContent(): Node {\n const pluginsContent = this.holder.querySelector(`.${Block.CSS.content}`);\n\n if (pluginsContent && pluginsContent.childNodes.length) {\n return pluginsContent.childNodes[0];\n }\n\n return null;\n }\n\n /**\n * Get Block's JSON data\n * @return {Object}\n */\n get data(): object {\n return this.save();\n }\n\n /**\n * Returns tool's sanitizer config\n * @return {object}\n */\n get sanitize(): object {\n return this.tool.sanitize;\n }\n\n /**\n * is block mergeable\n * We plugin have merge function then we call it mergable\n * @return {boolean}\n */\n get mergeable(): boolean {\n return typeof this.tool.merge === 'function';\n }\n\n /**\n * Check block for emptiness\n * @return {Boolean}\n */\n get isEmpty(): boolean {\n /**\n * Allow Tool to represent decorative contentless blocks: for example \"* * *\"-tool\n * That Tools are not empty\n */\n if (this.class.contentless) {\n return false;\n }\n\n const emptyText = $.isEmpty(this.pluginsContent),\n emptyMedia = !this.hasMedia;\n\n return emptyText && emptyMedia;\n }\n\n /**\n * Check if block has a media content such as images, iframes and other\n * @return {Boolean}\n */\n get hasMedia(): boolean {\n /**\n * This tags represents media-content\n * @type {string[]}\n */\n const mediaTags = [\n 'img',\n 'iframe',\n 'video',\n 'audio',\n 'source',\n 'input',\n 'textarea',\n 'twitterwidget',\n ];\n\n return !!this.holder.querySelector(mediaTags.join(','));\n }\n\n /**\n * Set focused state\n * We don't need to mark Block as focused when it is empty\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set focused(state: boolean) {\n if (state === true && !this.isEmpty) {\n this.holder.classList.add(Block.CSS.focused);\n } else {\n this.holder.classList.remove(Block.CSS.focused);\n }\n }\n\n /**\n * Set selected state\n * We don't need to mark Block as Selected when it is empty\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\n */\n set selected(state: boolean) {\n if (state) {\n this.holder.classList.add(Block.CSS.selected);\n } else {\n this.holder.classList.remove(Block.CSS.selected);\n }\n }\n\n /**\n * Returns True if it is Selected\n * @return {boolean}\n */\n get selected(): boolean {\n return this.holder.classList.contains(Block.CSS.selected);\n }\n\n /**\n * Set stretched state\n * @param {Boolean} state - 'true' to enable, 'false' to disable stretched statte\n */\n set stretched(state: boolean) {\n this.holder.classList.toggle(Block.CSS.wrapperStretched, state);\n }\n\n public name: string;\n public tool: Tool;\n public class: any;\n public settings: object;\n public holder: HTMLDivElement;\n public tunes: IBlockTune[];\n private readonly api: IAPI;\n private inputIndex = 0;\n\n /**\n * @constructor\n * @param {String} toolName - Tool name that passed on initialization\n * @param {Object} toolInstance — passed Tool`s instance that rendered the Block\n * @param {Object} toolClass — Tool's class\n * @param {Object} settings - default settings\n * @param {Object} apiMethods - Editor API\n */\n constructor(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: IAPI) {\n this.name = toolName;\n this.tool = toolInstance;\n this.class = toolClass;\n this.settings = settings;\n this.api = apiMethods;\n this.holder = this.compose();\n\n /**\n * @type {IBlockTune[]}\n */\n this.tunes = this.makeTunes();\n }\n\n /**\n * Calls Tool's method\n *\n * Method checks tool property {MethodName}. Fires method with passes params If it is instance of Function\n *\n * @param {String} methodName\n * @param {Object} params\n */\n public call(methodName: string, params: object) {\n /**\n * call Tool's method with the instance context\n */\n if (this.tool[methodName] && this.tool[methodName] instanceof Function) {\n this.tool[methodName].call(this.tool, params);\n }\n }\n\n /**\n * Call plugins merge method\n * @param {Object} data\n */\n public mergeWith(data: object): Promise {\n return Promise.resolve()\n .then(() => {\n this.tool.merge(data);\n });\n }\n /**\n * Extracts data from Block\n * Groups Tool's save processing time\n * @return {Object}\n */\n public async save(): Promise {\n const extractedBlock = await this.tool.save(this.pluginsContent);\n\n /**\n * Measuring execution time\n */\n const measuringStart = window.performance.now();\n let measuringEnd;\n\n return Promise.resolve(extractedBlock)\n .then((finishedExtraction) => {\n /** measure promise execution */\n measuringEnd = window.performance.now();\n\n return {\n tool: this.name,\n data: finishedExtraction,\n time : measuringEnd - measuringStart,\n };\n })\n .catch(function(error) {\n _.log(`Saving proccess for ${this.tool.name} tool failed due to the ${error}`, 'log', 'red');\n });\n }\n\n /**\n * Uses Tool's validation method to check the correctness of output data\n * Tool's validation method is optional\n *\n * @description Method also can return data if it passed the validation\n *\n * @param {Object} data\n * @returns {Boolean|Object} valid\n */\n public validateData(data: object): object|false {\n let isValid = true;\n\n if (this.tool.validate instanceof Function) {\n isValid = this.tool.validate(data);\n }\n\n if (!isValid) {\n return false;\n }\n\n return data;\n }\n\n /**\n * Make an array with default settings\n * Each block has default tune instance that have states\n * @return {IBlockTune[]}\n */\n public makeTunes(): IBlockTune[] {\n const tunesList = [MoveUpTune, DeleteTune, MoveDownTune];\n\n // Pluck tunes list and return tune instances with passed Editor API and settings\n return tunesList.map( (tune: IBlockTuneConstructor) => {\n return new tune({\n api: this.api,\n settings: this.settings,\n });\n });\n }\n\n /**\n * Enumerates initialized tunes and returns fragment that can be appended to the toolbars area\n * @return {DocumentFragment}\n */\n public renderTunes(): DocumentFragment {\n const tunesElement = document.createDocumentFragment();\n\n this.tunes.forEach( (tune) => {\n $.append(tunesElement, tune.render());\n });\n\n return tunesElement;\n }\n\n /**\n * Toggle drop target state\n * @param {boolean} state\n */\n public set dropTarget(state) {\n this.holder.classList.toggle(Block.CSS.dropTarget, state);\n }\n\n /**\n * Make default Block wrappers and put Tool`s content there\n * @returns {HTMLDivElement}\n */\n private compose(): HTMLDivElement {\n const wrapper = $.make('div', Block.CSS.wrapper) as HTMLDivElement,\n contentNode = $.make('div', Block.CSS.content),\n pluginsContent = this.tool.render();\n\n contentNode.appendChild(pluginsContent);\n wrapper.appendChild(contentNode);\n return wrapper;\n }\n}\n","/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Dynamically imported utils\n *\n * @typedef {Dom} $ - {@link components/dom.js}\n * @typedef {Util} _ - {@link components/utils.js}\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\n// eslint-disable-next-line\nlet modules = editorModules.map( module => require('./modules/' + module ));\n\n/**\n * @class Core\n *\n * @classdesc CodeX Editor core class\n *\n * @property this.config - all settings\n * @property this.moduleInstances - constructed editor components\n *\n * @type {Core}\n */\nexport default class Core {\n /**\n * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config) {\n /**\n * Configuration object\n * @type {EditorConfig}\n */\n this.config = {};\n\n /**\n * @typedef {Object} EditorComponents\n * @property {BlockManager} BlockManager\n * @property {Tools} Tools\n * @property {Events} Events\n * @property {UI} UI\n * @property {Toolbar} Toolbar\n * @property {Toolbox} Toolbox\n * @property {BlockSettings} BlockSettings\n * @property {Renderer} Renderer\n * @property {InlineToolbar} InlineToolbar\n */\n this.moduleInstances = {};\n\n /**\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\n */\n let onReady, onFail;\n\n this.isReady = new Promise((resolve, reject) => {\n onReady = resolve;\n onFail = reject;\n });\n\n Promise.resolve()\n .then(() => {\n this.configuration = config;\n })\n .then(() => this.validate())\n .then(() => this.init())\n .then(() => this.start())\n .then(() => {\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\n\n setTimeout(() => {\n /**\n * Resolve this.isReady promise\n */\n onReady();\n }, 500);\n })\n .catch(error => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n\n /**\n * Reject this.isReady promise\n */\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {IEditorConfig|string|null} config\n */\n set configuration(config) {\n /**\n * Process zero-configuration or with only holderId\n */\n if (typeof config === 'string' || typeof config === 'undefined') {\n config = {\n holderId: config\n };\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = config.initialBlock || 'paragraph';\n\n /**\n * Initial block type\n * Uses in case when there is no blocks passed\n * @type {{type: (*), data: {text: null}}}\n */\n let initialBlockData = {\n type : this.config.initialBlock,\n data : {}\n };\n\n this.config.holderId = config.holderId || 'codex-editor';\n this.config.placeholder = config.placeholder || 'write your story...';\n this.config.sanitizer = config.sanitizer || {\n p: true,\n b: true,\n a: true\n };\n\n this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false;\n this.config.tools = config.tools || {};\n this.config.data = config.data || {};\n this.config.onReady = config.onReady || function () {};\n this.config.onChange = config.onChange || function () {};\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {};\n this.config.data.blocks = [ initialBlockData ];\n } else {\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\n this.config.data.blocks = [ initialBlockData ];\n }\n }\n }\n\n /**\n * Returns private property\n * @returns {EditorConfig}\n */\n get configuration() {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {void|Promise}\n */\n validate() {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n return Promise.reject('«holderId» param must being not empty');\n }\n\n /**\n * Check for a holder element's existence\n */\n if (!$.get(this.config.holderId)) {\n return Promise.reject(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\n }\n\n /**\n * Check Tools for a class containing\n */\n for (let toolName in this.config.tools) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction(tool.class)) {\n return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`);\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n init() {\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n this.constructModules();\n\n /**\n * Modules configuration\n */\n this.configureModules();\n }\n\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n constructModules() {\n modules.forEach( Module => {\n try {\n /**\n * We use class name provided by displayName property\n *\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\n */\n this.moduleInstances[Module.displayName] = new Module({\n config : this.configuration\n });\n } catch ( e ) {\n console.log('Module %o skipped because %o', Module, e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n configureModules() {\n for(let name in this.moduleInstances) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff( name );\n }\n }\n\n /**\n * Return modules without passed name\n */\n getModulesDiff( name ) {\n let diff = {};\n\n for(let moduleName in this.moduleInstances) {\n /**\n * Skip module with passed name\n */\n if (moduleName === name) {\n continue;\n }\n diff[moduleName] = this.moduleInstances[moduleName];\n }\n\n return diff;\n }\n\n /**\n * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n async start() {\n const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste', 'DragNDrop', 'ModificationsObserver', 'BlockSelection'];\n\n await modulesToPrepare.reduce(\n (promise, module) => promise.then(async () => {\n _.log(`Preparing ${module} module`, 'time');\n\n try {\n await this.moduleInstances[module].prepare();\n } catch (e) {\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\n }\n _.log(`Preparing ${module} module`, 'timeEnd');\n }),\n Promise.resolve()\n );\n\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\n }\n};\n","/**\n * DOM manipulations helper\n */\nexport default class Dom {\n /**\n * Check if passed tag has no closed tag\n * @param {HTMLElement} tag\n * @return {Boolean}\n */\n public static isSingleTag(tag: HTMLElement): boolean {\n return tag.tagName && [\n 'AREA',\n 'BASE',\n 'BR',\n 'COL',\n 'COMMAND',\n 'EMBED',\n 'HR',\n 'IMG',\n 'INPUT',\n 'KEYGEN',\n 'LINK',\n 'META',\n 'PARAM',\n 'SOURCE',\n 'TRACK',\n 'WBR',\n ].includes(tag.tagName);\n }\n\n /**\n * Helper for making Elements with classname and attributes\n *\n * @param {string} tagName - new Element tag name\n * @param {array|string} classNames - list or name of CSS classname(s)\n * @param {Object} attributes - any attributes\n * @return {Element}\n */\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element {\n const el = document.createElement(tagName);\n\n if ( Array.isArray(classNames) ) {\n el.classList.add(...classNames);\n } else if ( classNames ) {\n el.classList.add(classNames);\n }\n\n for (const attrName in attributes) {\n if (attributes.hasOwnProperty(attrName)) {\n el[attrName] = attributes[attrName];\n }\n }\n\n return el;\n }\n\n /**\n * Creates Text Node with the passed content\n * @param {String} content - text content\n * @return {Text}\n */\n public static text(content: string): Text {\n return document.createTextNode(content);\n }\n\n /**\n * Creates SVG icon linked to the sprite\n * @param {string} name - name (id) of icon from sprite\n * @param {number} width\n * @param {number} height\n * @return {SVGElement}\n */\n public static svg(name: string, width: number = 14, height: number = 14): SVGElement {\n const icon = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n icon.classList.add('icon', 'icon--' + name);\n icon.setAttribute('width', width + 'px');\n icon.setAttribute('height', height + 'px');\n icon.innerHTML = ``;\n\n return icon;\n }\n\n /**\n * Append one or several elements to the parent\n *\n * @param {Element|DocumentFragment} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static append(parent: Element|DocumentFragment, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements.forEach( (el) => parent.appendChild(el) );\n } else {\n parent.appendChild(elements);\n }\n }\n\n /**\n * Append element or a couple to the beginning of the parent elements\n *\n * @param {Element} parent - where to append\n * @param {Element|Element[]} elements - element or elements list\n */\n public static prepend(parent: Element, elements: Element|Element[]): void {\n if ( Array.isArray(elements) ) {\n elements = elements.reverse();\n elements.forEach( (el) => parent.prepend(el) );\n } else {\n parent.prepend(elements);\n }\n }\n\n /**\n * Swap two elements in parent\n * @param {HTMLElement} el1 - from\n * @param {HTMLElement} el2 - to\n */\n public static swap(el1: HTMLElement, el2: HTMLElement): void {\n // create marker element and insert it where el1 is\n const temp = document.createElement('div'),\n parent = el1.parentNode;\n\n parent.insertBefore(temp, el1);\n\n // move el1 to right before el2\n parent.insertBefore(el1, el2);\n\n // move el2 to right before where el1 used to be\n parent.insertBefore(el2, temp);\n\n // remove temporary marker node\n parent.removeChild(temp);\n }\n\n /**\n * Selector Decorator\n *\n * Returns first match\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n *\n * @returns {Element}\n */\n public static find(el: Element|Document = document, selector: string): Element {\n return el.querySelector(selector);\n }\n\n /**\n * Get Element by Id\n *\n * @param {string} id\n * @returns {HTMLElement | null}\n */\n public static get(id: string): HTMLElement {\n return document.getElementById(id);\n }\n\n /**\n * Selector Decorator.\n *\n * Returns all matches\n *\n * @param {Element} el - element we searching inside. Default - DOM Document\n * @param {String} selector - searching string\n * @returns {NodeList}\n */\n public static findAll(el: Element|Document = document, selector: string): NodeList {\n return el.querySelectorAll(selector);\n }\n\n /**\n * Search for deepest node which is Leaf.\n * Leaf is the vertex that doesn't have any child nodes\n *\n * @description Method recursively goes throw the all Node until it finds the Leaf\n *\n * @param {Node} node - root Node. From this vertex we start Deep-first search\n * {@link https://en.wikipedia.org/wiki/Depth-first_search}\n * @param {Boolean} atLast - find last text node\n * @return {Node} - it can be text Node or Element Node, so that caret will able to work with it\n */\n public static getDeepestNode(node: Node, atLast: boolean = false): Node {\n /**\n * Current function have two directions:\n * - starts from first child and every time gets first or nextSibling in special cases\n * - starts from last child and gets last or previousSibling\n * @type {string}\n */\n const child = atLast ? 'lastChild' : 'firstChild',\n sibling = atLast ? 'previousSibling' : 'nextSibling';\n\n if (node && node.nodeType === Node.ELEMENT_NODE && node[child]) {\n let nodeChild = node[child];\n\n /**\n * special case when child is single tag that can't contain any content\n */\n if (Dom.isSingleTag(nodeChild as HTMLElement) && !Dom.isNativeInput(nodeChild)) {\n /**\n * 1) We need to check the next sibling. If it is Node Element then continue searching for deepest\n * from sibling\n *\n * 2) If single tag's next sibling is null, then go back to parent and check his sibling\n * In case of Node Element continue searching\n *\n * 3) If none of conditions above happened return parent Node Element\n */\n if (nodeChild[sibling]) {\n nodeChild = nodeChild[sibling];\n } else if (nodeChild.parentNode[sibling]) {\n nodeChild = nodeChild.parentNode[sibling];\n } else {\n return nodeChild.parentNode;\n }\n }\n\n return this.getDeepestNode(nodeChild, atLast);\n }\n\n return node;\n }\n\n /**\n * Check if object is DOM node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isElement(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Check if object is DocumentFragmemt node\n *\n * @param {Object} node\n * @returns {boolean}\n */\n public static isFragment(node: any): boolean {\n return node && typeof node === 'object' && node.nodeType && node.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n\n /**\n * Checks target if it is native input\n * @param {Element|String|Node} target - HTML element or string\n * @return {Boolean}\n */\n public static isNativeInput(target: any): boolean {\n const nativeInputs = [\n 'INPUT',\n 'TEXTAREA',\n ];\n\n return target && target.tagName ? nativeInputs.includes(target.tagName) : false;\n }\n\n /**\n * Checks node if it is empty\n *\n * @description Method checks simple Node without any childs for emptiness\n * If you have Node with 2 or more children id depth, you better use {@link Dom#isEmpty} method\n *\n * @param {Node} node\n * @return {Boolean} true if it is empty\n */\n public static isNodeEmpty(node: Node): boolean {\n let nodeText;\n\n if ( this.isElement(node) && this.isNativeInput(node) ) {\n nodeText = (node as HTMLInputElement).value;\n } else {\n nodeText = node.textContent.replace('\\u200B', '');\n }\n\n return nodeText.trim().length === 0;\n }\n\n /**\n * checks node if it is doesn't have any child nodes\n * @param {Node} node\n * @return {boolean}\n */\n public static isLeaf(node: Node): boolean {\n if (!node) {\n return false;\n }\n\n return node.childNodes.length === 0;\n }\n\n /**\n * breadth-first search (BFS)\n * {@link https://en.wikipedia.org/wiki/Breadth-first_search}\n *\n * @description Pushes to stack all DOM leafs and checks for emptiness\n *\n * @param {Node} node\n * @return {boolean}\n */\n public static isEmpty(node: Node): boolean {\n const treeWalker = [],\n leafs = [];\n\n if (!node) {\n return true;\n }\n\n if (!node.childNodes.length) {\n return this.isNodeEmpty(node);\n }\n\n treeWalker.push(node.firstChild);\n\n while ( treeWalker.length > 0 ) {\n node = treeWalker.shift();\n\n if (!node) { continue; }\n\n if ( this.isLeaf(node) ) {\n leafs.push(node);\n } else {\n treeWalker.push(node.firstChild);\n }\n\n while ( node && node.nextSibling ) {\n node = node.nextSibling;\n\n if (!node) { continue; }\n\n treeWalker.push(node);\n }\n\n /**\n * If one of childs is not empty, checked Node is not empty too\n */\n if (node && !this.isNodeEmpty(node)) {\n return false;\n }\n }\n\n return leafs.every( (leaf) => this.isNodeEmpty(leaf) );\n }\n\n /**\n * Check if string contains html elements\n *\n * @returns {boolean}\n * @param {String} str\n */\n public static isHTMLString(str: string): boolean {\n const wrapper = Dom.make('div');\n\n wrapper.innerHTML = str;\n\n return wrapper.childElementCount > 0;\n }\n\n /**\n * Return length of node`s text content\n *\n * @param {Node} node\n * @returns {number}\n */\n public static getContentLength(node: Node): number {\n if (Dom.isNativeInput(node)) {\n return (node as HTMLInputElement).value.length;\n }\n\n if (node.nodeType === Node.TEXT_NODE) {\n return (node as Text).length;\n }\n\n return node.textContent.length;\n }\n\n /**\n * Return array of names of block html elements\n *\n * @returns {string[]}\n */\n static get blockElements(): string[] {\n return [\n 'address',\n 'article',\n 'aside',\n 'blockquote',\n 'canvas',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'hr',\n 'li',\n 'main',\n 'nav',\n 'noscript',\n 'ol',\n 'output',\n 'p',\n 'pre',\n 'ruby',\n 'section',\n 'table',\n 'tr',\n 'tfoot',\n 'ul',\n 'video',\n ];\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\n\n/**\n * Bold Tool\n *\n * Inline Toolbar Tool\n *\n * Makes selected text bolder\n */\nexport default class BoldInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n b: {},\n };\n }\n\n /**\n * Native Document's command that uses for Bold\n */\n private readonly commandName: string = 'bold';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--bold',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: undefined,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('bold', 13, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+B';\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\n\n/**\n * Italic Tool\n *\n * Inline Toolbar Tool\n *\n * Style selected text with italic\n */\nexport default class ItalicInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n i: {},\n };\n }\n\n /**\n * Native Document's command that uses for Italic\n */\n private readonly commandName: string = 'italic';\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--italic',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement} = {\n button: null,\n };\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('italic', 6, 15));\n return this.nodes.button;\n }\n\n /**\n * Wrap range with tag\n * @param {Range} range\n */\n public surround(range: Range): void {\n document.execCommand(this.commandName);\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection: Selection): boolean {\n const isActive = document.queryCommandState(this.commandName);\n\n this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);\n return isActive;\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+I';\n }\n}\n","import InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\ndeclare var $: any;\ndeclare var _: any;\n\n/**\n * Link Tool\n *\n * Inline Toolbar Tool\n *\n * Wrap selected text with tag\n */\nexport default class LinkInlineTool implements InlineTool {\n\n /**\n * Specifies Tool as Inline Toolbar Tool\n *\n * @return {boolean}\n */\n public static isInline = true;\n\n /**\n * Sanitizer Rule\n * Leave tags\n * @return {object}\n */\n static get sanitize(): ISanitizerConfig {\n return {\n a: {\n href: true,\n target: '_blank',\n rel: 'nofollow',\n },\n };\n }\n\n /**\n * Native Document's commands for link/unlink\n */\n private readonly commandLink: string = 'createLink';\n private readonly commandUnlink: string = 'unlink';\n\n /**\n * Enter key code\n */\n private readonly ENTER_KEY: number = 13;\n\n /**\n * Styles\n */\n private readonly CSS = {\n button: 'ce-inline-tool',\n buttonActive: 'ce-inline-tool--active',\n buttonModifier: 'ce-inline-tool--link',\n buttonUnlink: 'ce-inline-tool--unlink',\n input: 'ce-inline-tool-input',\n inputShowed: 'ce-inline-tool-input--showed',\n };\n\n /**\n * Elements\n */\n private nodes: {button: HTMLButtonElement, input: HTMLInputElement} = {\n button: null,\n input: null,\n };\n\n /**\n * SelectionUtils instance\n */\n private selection: SelectionUtils;\n\n /**\n * Input opening state\n */\n private inputOpened: boolean = false;\n\n /**\n * Available Inline Toolbar methods (open/close)\n */\n private inlineToolbar: any;\n\n /**\n * @param {{api: IAPI}} - CodeX Editor API\n */\n constructor({api}) {\n this.inlineToolbar = api.toolbar;\n this.selection = new SelectionUtils();\n }\n\n /**\n * Create button for Inline Toolbar\n */\n public render(): HTMLElement {\n this.nodes.button = document.createElement('button');\n this.nodes.button.type = 'button';\n this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier);\n this.nodes.button.appendChild($.svg('link', 15, 14));\n this.nodes.button.appendChild($.svg('unlink', 16, 18));\n return this.nodes.button;\n }\n\n /**\n * Input for the link\n */\n public renderActions(): HTMLElement {\n this.nodes.input = document.createElement('input');\n this.nodes.input.placeholder = 'Add a link';\n this.nodes.input.classList.add(this.CSS.input);\n this.nodes.input.addEventListener('keydown', (event) => {\n if (event.keyCode === this.ENTER_KEY ) {\n this.enterPressed(event);\n }\n });\n return this.nodes.input;\n }\n\n /**\n * Handle clicks on the Inline Toolbar icon\n * @param {Range} range\n */\n public surround(range: Range): void {\n /**\n * Range will be null when user makes second click on the 'link icon' to close opened input\n */\n if (range) {\n /**\n * Save selection before change focus to the input\n */\n this.selection.save();\n const parentAnchor = this.selection.findParentTag('A');\n\n /**\n * Unlink icon pressed\n */\n if (parentAnchor) {\n this.selection.expandToTag(parentAnchor);\n this.unlink();\n this.closeActions();\n this.checkState();\n this.inlineToolbar.close();\n return;\n }\n }\n\n this.toggleActions();\n }\n\n /**\n * Check selection and set activated state to button if there are tag\n * @param {Selection} selection\n */\n public checkState(selection?: Selection): boolean {\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.nodes.button.classList.add(this.CSS.buttonUnlink);\n this.nodes.button.classList.add(this.CSS.buttonActive);\n this.openActions();\n\n /**\n * Fill input value with link href\n */\n const hrefAttr = anchorTag.getAttribute('href');\n this.nodes.input.value = hrefAttr !== 'null' ? hrefAttr : '';\n\n this.selection.save();\n } else {\n this.nodes.button.classList.remove(this.CSS.buttonUnlink);\n this.nodes.button.classList.remove(this.CSS.buttonActive);\n }\n\n return !!anchorTag;\n }\n\n /**\n * Function called with Inline Toolbar closing\n */\n public clear(): void {\n this.closeActions();\n }\n\n /**\n * Set a shortcut\n */\n public get shortcut(): string {\n return 'CMD+K';\n }\n\n private toggleActions(): void {\n if (!this.inputOpened) {\n this.openActions(true);\n } else {\n this.closeActions(false);\n }\n }\n\n /**\n * @param {boolean} needFocus - on link creation we need to focus input. On editing - nope.\n */\n private openActions(needFocus: boolean = false): void {\n this.nodes.input.classList.add(this.CSS.inputShowed);\n if (needFocus) {\n this.nodes.input.focus();\n }\n this.inputOpened = true;\n }\n\n /**\n * Close input\n * @param {boolean} clearSavedSelection — we don't need to clear saved selection\n * on toggle-clicks on the icon of opened Toolbar\n */\n private closeActions(clearSavedSelection: boolean = true): void {\n this.nodes.input.classList.remove(this.CSS.inputShowed);\n this.nodes.input.value = '';\n if (clearSavedSelection) {\n this.selection.clearSaved();\n }\n this.inputOpened = false;\n }\n\n /**\n * Enter pressed on input\n * @param {KeyboardEvent} event\n */\n private enterPressed(event: KeyboardEvent): void {\n let value = this.nodes.input.value || '';\n\n if (!value.trim()) {\n this.selection.restore();\n this.unlink();\n event.preventDefault();\n this.closeActions();\n }\n\n if (!this.validateURL(value)) {\n /**\n * @todo show notification 'Incorrect Link'\n */\n _.log('Incorrect Link pasted', 'warn', value);\n return;\n }\n\n value = this.prepareLink(value);\n\n this.selection.restore();\n this.insertLink(value);\n\n /**\n * Preventing events that will be able to happen\n */\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n this.closeActions();\n this.inlineToolbar.close();\n this.checkState();\n }\n\n /**\n * Detects if passed string is URL\n * @param {string} str\n * @return {Boolean}\n */\n private validateURL(str: string): boolean {\n /**\n * Don't allow spaces\n */\n return !/\\s/.test(str);\n }\n\n /**\n * Process link before injection\n * - sanitize\n * - add protocol for links like 'google.com'\n * @param {string} link - raw user input\n */\n private prepareLink(link: string): string {\n link = link.trim();\n link = this.addProtocol(link);\n return link;\n }\n\n /**\n * Add 'http' protocol to the links like 'vc.ru', 'google.com'\n * @param {String} link\n */\n private addProtocol(link: string): string {\n /**\n * If protocol already exists, do nothing\n */\n if (/^(\\w+):\\/\\//.test(link)) {\n return link;\n }\n\n /**\n * We need to add missed HTTP protocol to the link, but skip 2 cases:\n * 1) Internal links like \"/general\"\n * 2) Anchors looks like \"#results\"\n * 3) Protocol-relative URLs like \"//google.com\"\n */\n const isInternal = /^\\/[^\\/\\s]/.test(link),\n isAnchor = link.substring(0, 1) === '#',\n isProtocolRelative = /^\\/\\/[^\\/\\s]/.test(link);\n\n if (!isInternal && !isAnchor && !isProtocolRelative) {\n link = 'http://' + link;\n }\n\n return link;\n }\n\n /**\n * Inserts tag with \"href\"\n * @param {string} link - \"href\" value\n */\n private insertLink(link: string): void {\n\n /**\n * Edit all link, not selected part\n */\n const anchorTag = this.selection.findParentTag('A');\n\n if (anchorTag) {\n this.selection.expandToTag(anchorTag);\n }\n\n document.execCommand(this.commandLink, false, link);\n }\n\n /**\n * Removes tag\n */\n private unlink(): void {\n document.execCommand(this.commandUnlink);\n }\n}\n","var map = {\n\t\"./api-blocks.ts\": \"./src/components/modules/api-blocks.ts\",\n\t\"./api-caret.ts\": \"./src/components/modules/api-caret.ts\",\n\t\"./api-events.ts\": \"./src/components/modules/api-events.ts\",\n\t\"./api-listener.ts\": \"./src/components/modules/api-listener.ts\",\n\t\"./api-notifier.ts\": \"./src/components/modules/api-notifier.ts\",\n\t\"./api-sanitizer.ts\": \"./src/components/modules/api-sanitizer.ts\",\n\t\"./api-saver.ts\": \"./src/components/modules/api-saver.ts\",\n\t\"./api-selection.ts\": \"./src/components/modules/api-selection.ts\",\n\t\"./api-styles.ts\": \"./src/components/modules/api-styles.ts\",\n\t\"./api-toolbar.ts\": \"./src/components/modules/api-toolbar.ts\",\n\t\"./api.ts\": \"./src/components/modules/api.ts\",\n\t\"./block-events.ts\": \"./src/components/modules/block-events.ts\",\n\t\"./blockManager.js\": \"./src/components/modules/blockManager.js\",\n\t\"./blockSelection.ts\": \"./src/components/modules/blockSelection.ts\",\n\t\"./caret.js\": \"./src/components/modules/caret.js\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events.js\": \"./src/components/modules/events.js\",\n\t\"./listeners.js\": \"./src/components/modules/listeners.js\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./notifier.ts\": \"./src/components/modules/notifier.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer.js\": \"./src/components/modules/renderer.js\",\n\t\"./sanitizer.ts\": \"./src/components/modules/sanitizer.ts\",\n\t\"./saver.ts\": \"./src/components/modules/saver.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar-blockSettings.js\": \"./src/components/modules/toolbar-blockSettings.js\",\n\t\"./toolbar-inline.ts\": \"./src/components/modules/toolbar-inline.ts\",\n\t\"./toolbar-toolbox.js\": \"./src/components/modules/toolbar-toolbox.js\",\n\t\"./toolbar.js\": \"./src/components/modules/toolbar.js\",\n\t\"./tools.js\": \"./src/components/modules/tools.js\",\n\t\"./ui.js\": \"./src/components/modules/ui.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/components/modules sync [^_](api-blocks.ts|api-caret.ts|api-events.ts|api-listener.ts|api-notifier.ts|api-sanitizer.ts|api-saver.ts|api-selection.ts|api-styles.ts|api-toolbar.ts|api.ts|block-events.ts|blockManager.js|blockSelection.ts|caret.js|dragNDrop.ts|events.js|listeners.js|modificationsObserver.ts|notifier.ts|paste.ts|renderer.js|sanitizer.ts|saver.ts|shortcuts.ts|toolbar-blockSettings.js|toolbar-inline.ts|toolbar-toolbox.js|toolbar.js|tools.js|ui.js)$\";","declare var Module: any;\n\nimport { IBlocksAPI } from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module implements IBlocksAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IBlocksAPI}\n */\n get methods(): IBlocksAPI {\n return {\n clear: () => this.clear(),\n render: (data: IInputOutputData) => this.render(data),\n delete: () => this.delete(),\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\n getBlocksCount: () => this.getBlocksCount(),\n stretchBlock: (index: number, status: boolean) => this.stretchBlock(index, status),\n insertNewBlock: () => this.insertNewBlock(),\n };\n }\n\n /**\n * Returns Blocks count\n * @return {number}\n */\n public getBlocksCount(): number {\n return this.Editor.BlockManager.blocks.length;\n }\n\n /**\n * Returns current block index\n * @return {number}\n */\n public getCurrentBlockIndex(): number {\n return this.Editor.BlockManager.currentBlockIndex;\n }\n\n /**\n * Returns Current Block\n * @param {Number} index\n *\n * @return {Object}\n */\n public getBlockByIndex(index: number): object {\n return this.Editor.BlockManager.getBlockByIndex(index);\n }\n\n /**\n * Call Block Manager method that swap Blocks\n * @param {number} fromIndex - position of first Block\n * @param {number} toIndex - position of second Block\n */\n public swap(fromIndex: number, toIndex: number): void {\n this.Editor.BlockManager.swap(fromIndex, toIndex);\n\n /**\n * Move toolbar\n * DO not close the settings\n */\n this.Editor.Toolbar.move(false);\n }\n\n /**\n * Deletes Block\n * @param blockIndex\n */\n public delete(blockIndex?: number): void {\n this.Editor.BlockManager.removeBlock(blockIndex);\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Clear Editor's area\n */\n public clear(): void {\n this.Editor.BlockManager.clear(true);\n }\n\n /**\n * Fills Editor with Blocks data\n * @param {IInputOutputData} data — Saved Editor data\n */\n public render(data: IInputOutputData): void {\n this.Editor.BlockManager.clear();\n this.Editor.Renderer.render(data.blocks);\n }\n\n /**\n * Stretch Block's content\n * @param {number} index\n * @param {boolean} status - true to enable, false to disable\n */\n public stretchBlock(index: number, status: boolean): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status !== undefined ? status : true;\n }\n\n /**\n * Insert new Block\n * After set caret to this Block\n */\n public insertNewBlock() {\n const newBlock = this.Editor.BlockManager.insert();\n this.Editor.Caret.setToBlock(newBlock);\n }\n}\n","declare var Module: any;\n\nimport {ICaretAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module implements ICaretAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ICaretAPI}\n */\n get methods(): ICaretAPI {\n return {};\n }\n}\n","declare var Module: any;\n\nimport {IEventsAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module implements IEventsAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IEventsAPI}\n */\n get methods(): IEventsAPI {\n return {\n emit: (eventName: string, data: object) => this.emit(eventName, data),\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\n };\n }\n\n /**\n * Subscribe on Events\n * @param {String} eventName\n * @param {Function} callback\n */\n public on(eventName, callback): void {\n this.Editor.Events.on(eventName, callback);\n }\n\n /**\n * Emit event with data\n * @param {String} eventName\n * @param {Object} data\n */\n public emit(eventName, data): void {\n this.Editor.Events.emit(eventName, data);\n }\n\n /**\n * Unsubscribe from Event\n * @param {String} eventName\n * @param {Function} callback\n */\n public off(eventName, callback): void {\n this.Editor.Events.off(eventName, callback);\n }\n\n}\n","declare var Module: any;\n\nimport {IListenerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides with methods working with DOM Listener\n */\nexport default class ListenerAPI extends Module implements IListenerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IListenerAPI {\n return {\n on: (element, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\n off: (element, eventType, handler) => this.off(element, eventType, handler),\n };\n }\n\n /**\n * adds DOM event listener\n *\n * @param {HTMLElement} element\n * @param {string} eventType\n * @param {() => void} handler\n * @param {boolean} useCapture\n */\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\n }\n\n /**\n * Removes DOM listener from element\n *\n * @param element\n * @param eventType\n * @param handler\n */\n public off(element, eventType, handler): void {\n this.Editor.Listeners.off(element, eventType, handler);\n }\n}\n","import Module from '../__module';\nimport {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\nexport default class NotifierAPI extends Module {\n\n /**\n * Available methods\n */\n get methods() {\n return {\n show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options),\n };\n }\n\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n return this.Editor.Notifier.show(options);\n }\n}\n","declare var Module: any;\n\nimport {ISanitizerAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class API\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module implements ISanitizerAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISanitizerAPI}\n */\n get methods(): ISanitizerAPI {\n return {\n clean: (taintString, config) => this.clean(taintString, config),\n };\n }\n\n public clean(taintString, config) {\n return this.Editor.Sanitizer.clean(taintString, config);\n }\n\n}\n","declare var Module: any;\n\nimport {ISaverAPI} from '../interfaces/api';\nimport IInputOutputData from '../interfaces/input-output-data';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module implements ISaverAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISaverAPI}\n */\n get methods(): ISaverAPI {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): IInputOutputData {\n return this.Editor.Saver.save();\n }\n}\n","declare var Module: any;\n\nimport {ISelectionAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\nimport Selection from '../selection';\n\n/**\n * @class API\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module implements ISelectionAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {ISelectionAPI}\n */\n get methods(): ISelectionAPI {\n return {\n findParentTag: (tagName: string, className: string) => this.findParentTag(tagName, className),\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\n };\n }\n\n /**\n * Looks ahead from selection and find passed tag with class name\n * @param {string} tagName - tag to find\n * @param {string} className - tag's class name\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className: string): HTMLElement|null {\n return new Selection().findParentTag(tagName, className);\n }\n\n /**\n * Expand selection to passed tag\n * @param {HTMLElement} node - tag that should contain selection\n */\n public expandToTag(node: HTMLElement): void {\n new Selection().expandToTag(node);\n }\n\n}\n","declare var Module: any;\n\nimport IModuleConfig from '../interfaces/module-config';\nimport {IStylesAPI} from '../interfaces/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n\n /**\n * Save Editor config\n * API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n get classes(): IStylesAPI {\n return {\n /**\n * Base Block styles\n */\n block: 'cdx-block',\n\n /**\n * Inline Tools styles\n */\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonActive: 'ce-inline-tool--active',\n\n /**\n * UI elements\n */\n input: 'cdx-input',\n loader: 'cdx-loader',\n button: 'cdx-button',\n\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","declare var Module: any;\n\nimport {IToolbarAPI} from '../interfaces/api';\nimport IModuleConfig from '../interfaces/module-config';\n\n/**\n * @class ToolbarsAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module implements IToolbarAPI {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n */\n constructor({config}: IModuleConfig) {\n super({config});\n }\n\n /**\n * Available methods\n * @return {IToolbarAPI}\n */\n get methods(): IToolbarAPI {\n return {\n close: () => this.close(),\n open: () => this.open(),\n };\n }\n\n /**\n * Open toolbar\n */\n public open(): void {\n this.Editor.Toolbar.open();\n }\n\n /**\n * Close toolbar and all included elements\n */\n public close(): void {\n this.Editor.Toolbar.close();\n }\n\n}\n","/**\n * @module API\n * @copyright 2018\n *\n * Each block has an Editor API instance to use provided public methods\n * if you cant to read more about how API works, please see docs\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nimport { IAPI } from '../interfaces/api';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n\n /**\n * Save Editor config. API provides passed configuration to the Blocks\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n public get methods(): IAPI {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listener: this.Editor.ListenerAPI.methods,\n notifier: this.Editor.NotifierAPI.methods,\n sanitizer: this.Editor.SanitizerAPI.methods,\n saver: this.Editor.SaverAPI.methods,\n selection: this.Editor.SelectionAPI.methods,\n styles: this.Editor.StylesAPI.classes,\n toolbar: this.Editor.ToolbarAPI.methods,\n };\n }\n}\n","/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\ndeclare var $: any;\ndeclare var _: any;\n\nexport default class BlockEvents extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * All keydowns on Block\n * @param {KeyboardEvent} event - keydown\n */\n public keydown(event: KeyboardEvent): void {\n /**\n * Run common method for all keydown events\n */\n this.beforeKeydownProcessing(event);\n\n /**\n * Fire keydown processor by event.keyCode\n */\n switch (event.keyCode) {\n case _.keyCodes.BACKSPACE:\n this.backspace(event);\n break;\n\n case _.keyCodes.ENTER:\n this.enter(event);\n break;\n\n case _.keyCodes.DOWN:\n case _.keyCodes.RIGHT:\n this.arrowRightAndDown(event);\n break;\n\n case _.keyCodes.UP:\n case _.keyCodes.LEFT:\n this.arrowLeftAndUp(event);\n break;\n\n case _.keyCodes.TAB:\n this.tabPressed(event);\n break;\n\n case _.keyCodes.ESC:\n this.escapePressed(event);\n break;\n default:\n this.defaultHandler();\n break;\n }\n }\n\n /**\n * Fires on keydown before event processing\n * @param {KeyboardEvent} event - keydown\n */\n public beforeKeydownProcessing(event): void {\n /**\n * Do not close Toolbox on Tabs or on Enter with opened Toolbox\n */\n if (!this.needToolbarClosing(event)) {\n return;\n }\n\n this.Editor.Toolbar.close();\n\n const cmdKey = event.ctrlKey || event.metaKey;\n const altKey = event.altKey;\n const shiftKey = event.shiftKey;\n\n /** clear selecton when it is not CMD, SHIFT, ALT keys */\n if (cmdKey || altKey || shiftKey) {\n return;\n }\n\n /**\n * Clear all highlightings\n */\n this.Editor.BlockManager.clearFocused();\n\n /** Clear Block selection and restore caret */\n this.Editor.BlockSelection.clearSelection(true);\n }\n\n /**\n * Key up on Block:\n * - shows Inline Toolbar if something selected\n */\n public keyup(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Mouse up on Block:\n * - shows Inline Toolbar if something selected\n */\n public mouseUp(event): void {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n /**\n * Open Toolbox to leaf Tools\n * @param {KeyboardEvent} event\n */\n public tabPressed(event): void {\n\n const {currentBlock} = this.Editor.BlockManager;\n\n /** Prevent Default behaviour */\n event.preventDefault();\n event.stopPropagation();\n\n /** this property defines leaf direction */\n const shiftKey = event.shiftKey,\n direction = shiftKey ? 'left' : 'right';\n\n if (this.Editor.Toolbar.opened && currentBlock.isEmpty) {\n this.Editor.Toolbox.open();\n } else if (currentBlock.isEmpty) {\n this.Editor.Toolbar.open();\n this.Editor.Toolbar.plusButton.show();\n this.Editor.Toolbox.open();\n }\n\n if (this.Editor.Toolbox.opened) {\n this.Editor.Toolbox.leaf(direction);\n }\n }\n\n /**\n * Escape pressed\n * @param event\n */\n public escapePressed(event): void { }\n\n /**\n * Add drop target styles\n *\n * @param {DragEvent} e\n */\n public dragOver(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\n\n block.dropTarget = true;\n }\n\n /**\n * Remove drop target style\n *\n * @param {DragEvent} e\n */\n public dragLeave(e: DragEvent) {\n const block = this.Editor.BlockManager.getBlockByChildNode(e.target);\n\n block.dropTarget = false;\n }\n\n /**\n * ENTER pressed on block\n * @param {KeyboardEvent} event - keydown\n */\n private enter(event: KeyboardEvent): void {\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\n\n /**\n * Don't handle Enter keydowns when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n if (this.Editor.Toolbox.opened && this.Editor.Toolbox.getActiveTool) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n this.Editor.Toolbox.toolButtonActivate(event, this.Editor.Toolbox.getActiveTool);\n return;\n }\n\n /**\n * Allow to create linebreaks by Shift+Enter\n */\n if (event.shiftKey) {\n return;\n }\n /**\n * Split the Current Block into two blocks\n * Renew local current node after split\n */\n const newCurrent = this.Editor.BlockManager.split();\n\n this.Editor.Caret.setToBlock(newCurrent);\n\n /**\n * If new Block is empty\n */\n if (this.Editor.Tools.isInitial(newCurrent.tool) && newCurrent.isEmpty) {\n /**\n * Show Toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Show Plus Button\n */\n this.Editor.Toolbar.plusButton.show();\n }\n\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n\n /**\n * Handle backspace keydown on Block\n * @param {KeyboardEvent} event - keydown\n */\n private backspace(event: KeyboardEvent): void {\n const BM = this.Editor.BlockManager;\n const currentBlock = this.Editor.BlockManager.currentBlock,\n tool = this.Editor.Tools.toolsAvailable[currentBlock.name];\n\n /**\n * Don't handle Backspaces when Tool sets enableLineBreaks to true.\n * Uses for Tools like where line breaks should be handled by default behaviour.\n */\n if (tool && tool[this.Editor.Tools.apiSettings.IS_ENABLED_LINE_BREAKS]) {\n return;\n }\n\n const isFirstBlock = BM.currentBlockIndex === 0,\n canMergeBlocks = this.Editor.Caret.isAtStart && !isFirstBlock;\n\n /** If current Block is empty just remove this Block */\n if (this.Editor.BlockManager.currentBlock.isEmpty) {\n this.Editor.BlockManager.removeBlock();\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n * After BlockManager removes the Block (which is current now),\n * pointer that references to the current Block, now points to the Next\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n return;\n }\n\n if (!canMergeBlocks) {\n return;\n }\n\n // preventing browser default behaviour\n event.preventDefault();\n\n const targetBlock = BM.getBlockByIndex(BM.currentBlockIndex - 1),\n blockToMerge = BM.currentBlock;\n\n /**\n * Blocks that can be merged:\n * 1) with the same Name\n * 2) Tool has 'merge' method\n *\n * other case will handle as usual ARROW LEFT behaviour\n */\n if (blockToMerge.name !== targetBlock.name || !targetBlock.mergeable) {\n if (this.Editor.Caret.navigatePrevious()) {\n this.Editor.Toolbar.close();\n }\n\n return;\n }\n\n this.Editor.Caret.createShadow(targetBlock.pluginsContent);\n BM.mergeBlocks(targetBlock, blockToMerge)\n .then( () => {\n /** Restore caret position after merge */\n this.Editor.Caret.restoreCaret(targetBlock.pluginsContent);\n targetBlock.pluginsContent.normalize();\n this.Editor.Toolbar.close();\n });\n }\n\n /**\n * Handle right and down keyboard keys\n */\n private arrowRightAndDown(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigateNext()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Handle left and up keyboard keys\n */\n private arrowLeftAndUp(event: KeyboardEvent): void {\n if (this.Editor.Caret.navigatePrevious()) {\n /**\n * Default behaviour moves cursor by 1 character, we need to prevent it\n */\n event.preventDefault();\n }\n }\n\n /**\n * Default keydown handler\n */\n private defaultHandler(): void {}\n\n /**\n * Cases when we need to close Toolbar\n */\n private needToolbarClosing(event) {\n const toolboxItemSelected = (event.keyCode === _.keyCodes.ENTER && this.Editor.Toolbox.opened),\n flippingToolboxItems = event.keyCode === _.keyCodes.TAB;\n\n return !(event.shiftKey || flippingToolboxItems || toolboxItemSelected);\n }\n\n}\n","/**\n * @class BlockManager\n * @classdesc Manage editor`s blocks storage and appearance\n *\n * @module BlockManager\n *\n * @version 2.0.0\n */\n\nimport Block from '../block';\n\n/**\n * @typedef {BlockManager} BlockManager\n * @property {Number} currentBlockIndex - Index of current working block\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\n */\nexport default class BlockManager extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = null;\n\n /**\n * Index of current working block\n *\n * @type {number}\n * @private\n */\n this.currentBlockIndex = -1;\n }\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n prepare() {\n return new Promise(resolve => {\n let blocks = new Blocks(this.Editor.UI.nodes.redactor);\n\n /**\n * We need to use Proxy to overload set/get [] operator.\n * So we can use array-like syntax to access blocks\n *\n * @example\n * this._blocks[0] = new Block(...);\n *\n * block = this._blocks[0];\n *\n * @todo proxy the enumerate method\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = new Proxy(blocks, {\n set: Blocks.set,\n get: Blocks.get\n });\n\n resolve();\n });\n }\n\n /**\n * Creates Block instance by tool name\n *\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\n * @param {Object} data - constructor params\n * @param {Object} settings - block settings\n *\n * @return {Block}\n */\n composeBlock(toolName, data, settings) {\n let toolInstance = this.Editor.Tools.construct(toolName, data),\n toolClass = this.Editor.Tools.available[toolName],\n block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n return block;\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n bindEvents(block) {\n this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true);\n this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event));\n this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event));\n this.Editor.Listeners.on(block.holder, 'dragover', (event) => this.Editor.BlockEvents.dragOver(event));\n this.Editor.Listeners.on(block.holder, 'dragleave', (event) => this.Editor.BlockEvents.dragLeave(event));\n }\n\n /**\n * Insert new block into _blocks\n *\n * @param {String} toolName — plugin name, by default method inserts initial block type\n * @param {Object} data — plugin data\n * @param {Object} settings - default settings\n *\n * @return {Block}\n */\n insert(toolName = this.config.initialBlock, data = {}, settings = {}) {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n const newIndex = ++this.currentBlockIndex;\n const block = this.composeBlock(toolName, data, settings);\n\n this._blocks[newIndex] = block;\n return block;\n }\n\n /**\n * Always inserts at the end\n * @return {Block}\n */\n insertAtEnd() {\n /**\n * Define new value for current block index\n */\n this.currentBlockIndex = this.blocks.length - 1;\n\n /**\n * Insert initial typed block\n */\n return this.insert();\n }\n\n /**\n * Merge two blocks\n * @param {Block} targetBlock - previous block will be append to this block\n * @param {Block} blockToMerge - block that will be merged with target block\n *\n * @return {Promise} - the sequence that can be continued\n */\n mergeBlocks(targetBlock, blockToMerge) {\n let blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n return Promise.resolve()\n .then( () => {\n if (blockToMerge.isEmpty) {\n return;\n }\n\n return blockToMerge.data\n .then((blockToMergeInfo) => {\n targetBlock.mergeWith(blockToMergeInfo.data);\n });\n })\n .then( () => {\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n });\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n removeBlock(index) {\n if (!index) {\n index = this.currentBlockIndex;\n }\n this._blocks.remove(index);\n\n /**\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\n */\n if (!this.blocks.length) {\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n }\n\n /**\n * Split current Block\n * 1. Extract content from Caret position to the Block`s end\n * 2. Insert a new Block below current one with extracted content\n *\n * @return {Block}\n */\n split() {\n let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(),\n wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n let data = {\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\n };\n\n /**\n * Renew current Block\n * @type {Block}\n */\n return this.insert(this.config.initialBlock, data);\n }\n\n /**\n * Replace current working block\n *\n * @param {String} toolName — plugin name\n * @param {Object} data — plugin data\n *\n * @return {Block}\n */\n replace(toolName, data = {}) {\n let block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * returns last Block\n * @return {Block}\n */\n get lastBlock() {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n getBlockByIndex(index) {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n getBlock(element) {\n if (!$.isElement(element)) {\n element = element.parentNode;\n }\n\n let nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n get currentBlock() {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n get nextBlock() {\n let isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\n\n if (isLastBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex + 1];\n }\n\n /**\n * Return first Block with inputs after current Block\n *\n * @returns {Block | undefined}\n */\n get nextContentfulBlock() {\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\n\n return nextBlocks.find(block => !!block.inputs.length);\n }\n\n /**\n * Return first Block with inputs before current Block\n *\n * @returns {Block | undefined}\n */\n get previousContentfulBlock() {\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\n\n return previousBlocks.find(block => !!block.inputs.length);\n }\n\n /**\n * Returns previous Block instance\n * @return {Block|null}\n */\n get previousBlock() {\n let isFirstBlock = this.currentBlockIndex === 0;\n\n if (isFirstBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex - 1];\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n highlightCurrentNode() {\n /**\n * Remove previous selected Block's state\n */\n this.clearFocused();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.focused = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n clearFocused() {\n this.blocks.forEach( block => block.focused = false);\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n get blocks() {\n return this._blocks.array;\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Element|Text} childNode - look ahead from this node.\n * @param {string} caretPosition - position where to set caret\n * @throws Error - when passed Node is not included at the Block\n */\n setCurrentBlockByChildNode(childNode, caretPosition = 'default') {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock);\n\n this.Editor.Caret.setToInput(childNode, caretPosition);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Return block which contents passed node\n *\n * @param {Node} childNode\n * @return {Block}\n */\n getBlockByChildNode(childNode) {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const firstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`);\n\n return this.blocks.find(block => block.holder === firstLevelBlock);\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n swap(fromIndex, toIndex) {\n /** Move up current Block */\n this._blocks.swap(fromIndex, toIndex);\n\n /** Now actual block moved up so that current block index decreased */\n this.currentBlockIndex = toIndex;\n }\n\n /**\n * Sets current Block Index -1 which means unknown\n * and clear highlightings\n */\n dropPointer() {\n this.currentBlockIndex = -1;\n this.clearFocused();\n }\n\n /**\n * Clears Editor\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\n * we don't need to add empty initial block\n * 2) in api.blocks.clear we should add empty block\n */\n clear(needAddInitialBlock = false) {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n};\n\n/**\n * @class Blocks\n * @classdesc Class to work with Block instances array\n *\n * @private\n *\n * @property {HTMLElement} workingArea — editor`s working node\n *\n */\nclass Blocks {\n /**\n * @constructor\n *\n * @param {HTMLElement} workingArea — editor`s working node\n */\n constructor(workingArea) {\n this.blocks = [];\n this.workingArea = workingArea;\n }\n\n /**\n * Push back new Block\n *\n * @param {Block} block\n */\n push(block) {\n this.blocks.push(block);\n this.workingArea.appendChild(block.holder);\n }\n\n /**\n * Swaps blocks with indexes first and second\n * @param {Number} first - first block index\n * @param {Number} second - second block index\n */\n swap(first, second) {\n let secondBlock = this.blocks[second];\n\n /**\n * Change in DOM\n */\n $.swap(this.blocks[first].holder, secondBlock.holder);\n\n /**\n * Change in array\n */\n this.blocks[second] = this.blocks[first];\n this.blocks[first] = secondBlock;\n }\n\n /**\n * Insert new Block at passed index\n *\n * @param {Number} index — index to insert Block\n * @param {Block} block — Block to insert\n * @param {Boolean} replace — it true, replace block on given index\n */\n insert(index, block, replace = false) {\n if (!this.length) {\n this.push(block);\n return;\n }\n\n if (index > this.length) {\n index = this.length;\n }\n\n if (replace) {\n this.blocks[index].holder.remove();\n }\n\n let deleteCount = replace ? 1 : 0;\n\n this.blocks.splice(index, deleteCount, block);\n\n if (index > 0) {\n let previousBlock = this.blocks[index - 1];\n\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\n } else {\n let nextBlock = this.blocks[index + 1];\n\n if (nextBlock) {\n nextBlock.holder.insertAdjacentElement('beforebegin', block.holder);\n } else {\n this.workingArea.appendChild(block.holder);\n }\n }\n }\n\n /**\n * Remove block\n * @param {Number|null} index\n */\n remove(index) {\n if (isNaN(index)) {\n index = this.length - 1;\n }\n\n this.blocks[index].holder.remove();\n this.blocks.splice(index, 1);\n }\n\n /**\n * Remove all blocks\n */\n removeAll() {\n this.workingArea.innerHTML = '';\n this.blocks.length = 0;\n }\n\n /**\n * Insert Block after passed target\n *\n * @todo decide if this method is necessary\n *\n * @param {Block} targetBlock — target after wich Block should be inserted\n * @param {Block} newBlock — Block to insert\n */\n insertAfter(targetBlock, newBlock) {\n let index = this.blocks.indexOf(targetBlock);\n\n this.insert(index + 1, newBlock);\n }\n\n /**\n * Get Block by index\n *\n * @param {Number} index — Block index\n * @returns {Block}\n */\n get(index) {\n return this.blocks[index];\n }\n\n /**\n * Return index of passed Block\n *\n * @param {Block} block\n * @returns {Number}\n */\n indexOf(block) {\n return this.blocks.indexOf(block);\n }\n\n /**\n * Get length of Block instances array\n *\n * @returns {Number}\n */\n get length() {\n return this.blocks.length;\n }\n\n /**\n * Get Block instances array\n *\n * @returns {Block[]}\n */\n get array() {\n return this.blocks;\n }\n\n /**\n * Get blocks html elements array\n *\n * @returns {HTMLElement[]}\n */\n get nodes() {\n return _.array(this.workingArea.children);\n }\n\n /**\n * Proxy trap to implement array-like setter\n *\n * @example\n * blocks[0] = new Block(...)\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — block index\n * @param {Block} block — Block to set\n * @returns {Boolean}\n */\n static set(instance, index, block) {\n if (isNaN(Number(index))) {\n return false;\n }\n\n instance.insert(index, block);\n\n return true;\n }\n\n /**\n * Proxy trap to implement array-like getter\n *\n * @param {Blocks} instance — Blocks instance\n * @param {Number|String} index — Block index\n * @returns {Block|*}\n */\n static get(instance, index) {\n if (isNaN(Number(index))) {\n return instance[index];\n }\n\n return instance.get(index);\n }\n}\n","/**\n * @class BlockSelection\n * @classdesc Manages Block selection with shortcut CMD+A and with mouse\n *\n * @module BlockSelection\n * @version 1.0.0\n */\ndeclare var Module: any;\ndeclare var _: any;\ndeclare var $: any;\n\nimport SelectionUtils from '../selection';\n\nexport default class BlockSelection extends Module {\n /**\n * Flag used to define block selection\n * First CMD+A defines it as true and then second CMD+A selects all Blocks\n * @type {boolean}\n */\n private needToSelectAll: boolean = false;\n\n /**\n * SelectionUtils instance\n * @type {SelectionUtils}\n */\n private selection: SelectionUtils;\n\n /**\n * Module Preparation\n * Registers Shortcuts CMD+A and CMD+C\n * to select all and copy them\n */\n public prepare(): void {\n const { Shortcuts } = this.Editor;\n\n /** Selection shortcut */\n Shortcuts.add({\n name: 'CMD+A',\n handler: (event) => {\n this.handleCommandA(event);\n },\n });\n\n /** shortcut to copy all selected blocks */\n Shortcuts.add({\n name: 'CMD+C',\n handler: (event) => {\n this.handleCommandC(event);\n },\n });\n\n this.selection = new SelectionUtils();\n }\n\n /**\n * Clear selection from Blocks\n */\n public clearSelection(restoreSelection = false) {\n const { BlockManager } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.findIndex( (block) => block.selected === true) !== -1;\n\n if (!anyBlockSelected) {\n return;\n }\n\n this.needToSelectAll = false;\n BlockManager.blocks.forEach( (block) => block.selected = false);\n\n /**\n * restore selection when Block is already selected\n * but someone tries to write something.\n */\n if (restoreSelection) {\n this.selection.restore();\n }\n }\n\n /**\n * First CMD+A Selects current focused blocks,\n * and consequent second CMD+A keypress selects all blocks\n *\n * @param {keydown} event\n */\n private handleCommandA(event): void {\n /** Prevent default selection */\n event.preventDefault();\n\n if (this.needToSelectAll) {\n this.selectAllBlocks();\n this.needToSelectAll = false;\n } else {\n this.selectBlockByIndex();\n this.needToSelectAll = true;\n }\n }\n\n /**\n * Copying selected blocks\n * Before putting to the clipboard we sanitize all blocks and then copy to the clipboard\n *\n * @param event\n */\n private handleCommandC(event): void {\n const { BlockManager, Sanitizer } = this.Editor;\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\n\n if (!anyBlockSelected) {\n return;\n }\n\n const fakeClipboard = $.make('div');\n\n BlockManager.blocks.filter( (block) => block.selected )\n .forEach( (block) => {\n /**\n * Make

    tag that holds clean HTML\n */\n const cleanHTML = Sanitizer.clean(block.holder.innerHTML, this.sanitizerConfig);\n const fragment = $.make('p');\n\n fragment.innerHTML = cleanHTML;\n fakeClipboard.appendChild(fragment);\n });\n\n _.copyTextToClipboard(fakeClipboard.innerHTML);\n }\n\n /**\n * Select All Blocks\n * Each Block has selected setter that makes Block copyable\n */\n private selectAllBlocks() {\n const { BlockManager } = this.Editor;\n\n BlockManager.blocks.forEach( (block) => block.selected = true);\n }\n\n /**\n * select Block\n * @param {number?} index - Block index according to the BlockManager's indexes\n */\n private selectBlockByIndex(index?) {\n const { BlockManager } = this.Editor;\n\n /**\n * Remove previous focused Block's state\n */\n BlockManager.clearFocused();\n\n let block;\n\n if (isNaN(index)) {\n block = BlockManager.currentBlock;\n } else {\n block = BlockManager.getBlockByIndex(index);\n }\n\n /** Save selection */\n this.selection.save();\n SelectionUtils.get()\n .removeAllRanges();\n\n block.selected = true;\n }\n\n /**\n * Sanitizer Config\n * @return {SanitizerConfig}\n */\n private get sanitizerConfig() {\n return {\n p: {},\n h1: {},\n h2: {},\n h3: {},\n h4: {},\n h5: {},\n h6: {},\n ol: {},\n ul: {},\n li: {},\n br: true,\n img: {\n src: true,\n width: true,\n height: true,\n },\n a: {\n href: true,\n },\n b: {},\n i: {},\n u: {},\n };\n }\n}\n","/**\n * @class Caret\n * @classdesc Contains methods for working Caret\n *\n * Uses Range methods to manipulate with caret\n *\n * @module Caret\n *\n * @version 2.0.0\n */\n\nimport Selection from '../selection';\n\n/**\n * @typedef {Caret} Caret\n */\nexport default class Caret extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Elements styles that can be useful for Caret Module\n */\n static get CSS() {\n return {\n shadowCaret: 'cdx-shadow-caret'\n };\n };\n\n /**\n * Allowed caret positions in input\n *\n * @static\n * @returns {{START: string, END: string, DEFAULT: string}}\n */\n static get positions() {\n return {\n START: 'start',\n END: 'end',\n DEFAULT: 'default'\n };\n }\n\n /**\n * Method gets Block instance and puts caret to the text node with offset\n * There two ways that method applies caret position:\n * - first found text node: sets at the beginning, but you can pass an offset\n * - last found text node: sets at the end of the node. Also, you can customize the behaviour\n *\n * @param {Block} block - Block class\n * @param {String} position - position where to set caret. If default - leave default behaviour and apply offset if it's passed\n * @param {Number} offset - caret offset regarding to the text node\n */\n setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) {\n const {BlockManager} = this.Editor;\n let element;\n\n switch(position) {\n case Caret.positions.START:\n element = block.firstInput;\n break;\n case Caret.positions.END:\n element = block.lastInput;\n break;\n default:\n element = block.currentInput;\n }\n\n if (!element) {\n return;\n }\n\n const nodeToSet = $.getDeepestNode(element, position === Caret.positions.END);\n const contentLength = $.getContentLength(nodeToSet);\n\n switch (true) {\n case position === Caret.positions.START:\n offset = 0;\n break;\n case position === Caret.positions.END:\n case offset > contentLength:\n offset = contentLength;\n break;\n }\n\n /**\n * @todo try to fix via Promises or use querySelectorAll to not to use timeout\n */\n _.delay( () => {\n this.set(nodeToSet, offset);\n }, 20)();\n\n BlockManager.setCurrentBlockByChildNode(block.holder);\n BlockManager.currentBlock.currentInput = element;\n }\n\n /**\n * Set caret to the current input of current Block.\n *\n * @param {HTMLElement} input - input where caret should be set\n * @param {String} position - position of the caret. If default - leave default behaviour and apply offset if it's passed\n * @param {number} offset - caret offset regarding to the text node\n */\n setToInput(input, position = Caret.positions.DEFAULT, offset = 0) {\n const {currentBlock} = this.Editor.BlockManager;\n const nodeToSet = $.getDeepestNode(input);\n\n switch (position) {\n case Caret.positions.START:\n this.set(nodeToSet, 0);\n break;\n\n case Caret.positions.END:\n const contentLength = $.getContentLength(nodeToSet);\n\n this.set(nodeToSet, contentLength);\n break;\n\n default:\n if (offset) {\n this.set(nodeToSet, offset);\n }\n }\n\n currentBlock.currentInput = input;\n }\n\n /**\n * Creates Document Range and sets caret to the element with offset\n * @param {Element} element - target node.\n * @param {Number} offset - offset\n */\n set( element, offset = 0) {\n const range = document.createRange(),\n selection = Selection.get();\n\n /** if found deepest node is native input */\n if ($.isNativeInput(element)) {\n element.focus();\n element.selectionStart = element.selectionEnd = offset;\n return;\n }\n\n range.setStart(element, offset);\n range.setEnd(element, offset);\n\n selection.removeAllRanges();\n selection.addRange(range);\n\n\n /** If new cursor position is not visible, scroll to it */\n const {top, bottom} = range.getBoundingClientRect();\n const {innerHeight} = window;\n\n if (top < 0) window.scrollBy(0, top);\n if (bottom > innerHeight) window.scrollBy(0, bottom - innerHeight);\n };\n\n /**\n * Set Caret to the last Block\n * If last block is not empty, append another empty block\n */\n setToTheLastBlock() {\n let lastBlock = this.Editor.BlockManager.lastBlock;\n\n if (!lastBlock) return;\n\n /**\n * If last block is empty and it is an initialBlock, set to that.\n * Otherwise, append new empty block and set to that\n */\n if (lastBlock.isEmpty) {\n this.setToBlock(lastBlock);\n } else {\n const newBlock = this.Editor.BlockManager.insertAtEnd();\n\n this.setToBlock(newBlock);\n }\n }\n\n /**\n * Extract content fragment of current Block from Caret position to the end of the Block\n */\n extractFragmentFromCaretPosition() {\n let selection = Selection.get();\n\n if (selection.rangeCount) {\n const selectRange = selection.getRangeAt(0);\n const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput;\n\n\n selectRange.deleteContents();\n\n if (currentBlockInput) {\n let range = selectRange.cloneRange(true);\n\n range.selectNodeContents(currentBlockInput);\n range.setStart(selectRange.endContainer, selectRange.endOffset);\n return range.extractContents();\n }\n }\n }\n\n /**\n * Get all first-level (first child of [contenteditabel]) siblings from passed node\n * Then you can check it for emptiness\n *\n * @example\n *

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

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

    <-- first (and deepest) node is \n *
    \n */\n if ($.isEmpty(lastNode)) {\n let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'right'),\n nothingAtRight = leftSiblings.every( node => $.isEmpty(node) );\n\n if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) {\n return true;\n }\n }\n\n /**\n * Workaround case:\n * hello | <--- anchorOffset will be 5, but textContent.length will be 6.\n * Why not regular .trim():\n * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset\n */\n let rightTrimmedText = lastNode.textContent.replace(/\\s+$/, '');\n\n /**\n * We use >= comparison for case:\n * \"Hello |\" <--- selection.anchorOffset is 7, but rightTrimmedText is 6\n */\n return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length;\n }\n\n /**\n * Inserts shadow element after passed element where caret can be placed\n * @param {Node} element\n */\n createShadow(element) {\n let shadowCaret = document.createElement('span');\n\n shadowCaret.classList.add(Caret.CSS.shadowCaret);\n element.insertAdjacentElement('beforeEnd', shadowCaret);\n }\n\n /**\n * Restores caret position\n * @param {Node} element\n */\n restoreCaret(element) {\n let shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`);\n\n if (!shadowCaret) {\n return;\n }\n\n /**\n * After we set the caret to the required place\n * we need to clear shadow caret\n *\n * - make new range\n * - select shadowed span\n * - use extractContent to remove it from DOM\n */\n let sel = new Selection();\n\n sel.expandToTag(shadowCaret);\n\n setTimeout(() => {\n let newRange = document.createRange();\n\n newRange.selectNode(shadowCaret);\n newRange.extractContents();\n }, 50);\n }\n}\n","import SelectionUtils from '../selection';\n\ndeclare var Module: any;\n\nexport default class DragNDrop extends Module {\n\n /**\n * If drag has been started at editor, we save it\n *\n * @type Boolean\n * @private\n */\n private isStartedAtEditor = false;\n\n /**\n * Bind events\n *\n * @private\n */\n public prepare(): void {\n this.bindEvents();\n }\n\n /**\n * Add drag events listeners to editor zone\n * @private\n */\n private bindEvents(): void {\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'drop', this.processDrop, true);\n\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragstart', (dragEvent: DragEvent) => {\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed) {\n this.isStartedAtEditor = true;\n }\n\n this.Editor.InlineToolbar.close();\n });\n\n /* Prevent default browser behavior to allow drop on non-contenteditable elements */\n this.Editor.Listeners.on(this.Editor.UI.nodes.holder, 'dragover', (e) => e.preventDefault(), true);\n }\n\n /**\n * Handle drop event\n *\n * @param {DragEvent} dropEvent\n */\n private processDrop = async (dropEvent: DragEvent): Promise => {\n const {\n BlockManager,\n Paste,\n } = this.Editor;\n\n dropEvent.preventDefault();\n\n BlockManager.blocks.forEach((block) => block.dropTarget = false);\n\n if (SelectionUtils.isAtEditor && !SelectionUtils.isCollapsed && this.isStartedAtEditor) {\n document.execCommand('delete');\n }\n\n this.isStartedAtEditor = false;\n\n /**\n * Try to set current block by drop target.\n * If drop target (error will be thrown) is not part of the Block, set last Block as current.\n */\n try {\n BlockManager.setCurrentBlockByChildNode(dropEvent.target, 'end');\n } catch (e) {\n BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, 'end');\n }\n\n Paste.processDataTransfer(dropEvent.dataTransfer, true);\n }\n}\n","/**\n * @module eventDispatcher\n *\n * Has two important methods:\n * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one\n * - {Function} emit - fires all subscribers with data\n * - {Function off - unsubsribes callback\n *\n * @version 1.0.0\n *\n * @typedef {Events} Events\n * @property {Object} subscribers - all subscribers grouped by event name\n */\nexport default class Events extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n this.subscribers = {};\n }\n\n /**\n * Subscribe any event on callback\n *\n * @param {String} eventName - event name\n * @param {Function} callback - subscriber\n */\n on(eventName, callback) {\n if (!(eventName in this.subscribers)) {\n this.subscribers[eventName] = [];\n }\n\n // group by events\n this.subscribers[eventName].push(callback);\n }\n\n /**\n * Emit callbacks with passed data\n *\n * @param {String} eventName - event name\n * @param {Object} data - subscribers get this data when they were fired\n */\n emit(eventName, data) {\n if (!this.subscribers[eventName]) {\n return;\n }\n\n this.subscribers[eventName].reduce(function (previousData, currentHandler) {\n let newData = currentHandler(previousData);\n\n return newData ? newData : previousData;\n }, data);\n }\n\n /**\n * Unsubsribe callback from event\n *\n * @param eventName\n * @param callback\n */\n off(eventName, callback) {\n for(let i = 0; i < this.subscribers[eventName].length; i++) {\n if (this.subscribers[eventName][i] === callback) {\n delete this.subscribers[eventName][i];\n break;\n }\n }\n }\n\n /**\n * Destroyer\n * clears subsribers list\n */\n destroy() {\n this.subscribers = null;\n }\n}\n","/**\n * Codex Editor Listeners module\n *\n * @module Listeners\n *\n * Module-decorator for event listeners assignment\n *\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Listeners} Listeners\n * @property {Array} allListeners\n */\nexport default class Listeners extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.allListeners = [];\n }\n\n /**\n * Assigns event listener on element\n *\n * @param {Element} element - DOM element that needs to be listened\n * @param {String} eventType - event type\n * @param {Function} handler - method that will be fired on event\n * @param {Boolean} useCapture - use event bubbling\n */\n on(element, eventType, handler, useCapture = false) {\n let assignedEventData = {\n element,\n eventType,\n handler,\n useCapture\n };\n\n let alreadyExist = this.findOne(element, eventType, handler);\n\n if (alreadyExist) return;\n\n this.allListeners.push(assignedEventData);\n element.addEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Removes event listener from element\n *\n * @param {Element} element - DOM element that we removing listener\n * @param {String} eventType - event type\n * @param {Function} handler - remove handler, if element listens several handlers on the same event type\n * @param {Boolean} useCapture - use event bubbling\n */\n off(element, eventType, handler, useCapture = false) {\n let existingListeners = this.findAll(element, eventType, handler);\n\n for (let i = 0; i < existingListeners.length; i++) {\n let index = this.allListeners.indexOf(existingListeners[i]);\n\n if (index > 0) {\n this.allListeners.splice(index, 1);\n }\n }\n\n element.removeEventListener(eventType, handler, useCapture);\n }\n\n /**\n * Search method: looks for listener by passed element\n * @param {Element} element - searching element\n * @returns {Array} listeners that found on element\n */\n findByElement(element) {\n let listenersOnElement = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.element === element) {\n listenersOnElement.push(listener);\n }\n }\n\n return listenersOnElement;\n }\n\n /**\n * Search method: looks for listener by passed event type\n * @param {String} eventType\n * @return {Array} listeners that found on element\n */\n findByType(eventType) {\n let listenersWithType = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.type === eventType) {\n listenersWithType.push(listener);\n }\n }\n\n return listenersWithType;\n }\n\n /**\n * Search method: looks for listener by passed handler\n * @param {Function} handler\n * @return {Array} listeners that found on element\n */\n findByHandler(handler) {\n let listenersWithHandler = [];\n\n for (let i = 0; i < this.allListeners.length; i++) {\n let listener = this.allListeners[i];\n\n if (listener.handler === handler) {\n listenersWithHandler.push(listener);\n }\n }\n\n return listenersWithHandler;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Element|null}\n */\n findOne(element, eventType, handler) {\n let foundListeners = this.findAll(element, eventType, handler);\n\n return foundListeners.length > 0 ? foundListeners[0] : null;\n }\n\n /**\n * @param {Element} element\n * @param {String} eventType\n * @param {Function} handler\n * @return {Array}\n */\n findAll(element, eventType, handler) {\n let found,\n foundByElements = element ? this.findByElement(element) : [];\n // foundByEventType = eventType ? this.findByType(eventType) : [],\n // foundByHandler = handler ? this.findByHandler(handler) : [];\n\n if (element && eventType && handler) {\n found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler );\n } else if (element && eventType) {\n found = foundByElements.filter( event => event.eventType === eventType);\n } else {\n found = foundByElements;\n }\n\n return found;\n }\n\n /**\n * Removes all listeners\n */\n removeAll() {\n this.allListeners.map( (current) => {\n current.element.removeEventListener(current.eventType, current.handler);\n });\n\n this.allListeners = [];\n }\n}\n","/**\n * @module ModificationsObserver\n *\n * Handles any mutations\n * and gives opportunity to handle outside\n */\n\nimport IEditorConfig from '../interfaces/editor-config';\n\ndeclare const Module: any;\ndeclare const _: any;\n\nexport default class ModificationsObserver extends Module {\n\n /**\n * Debounce Timer\n * @type {number}\n */\n public static readonly DebounceTimer = 450;\n\n /**\n * Used to prevent several mutation callback execution\n * @type {Function}\n */\n private mutationDebouncer = _.debounce( () => {\n this.config.onChange.call();\n }, ModificationsObserver.DebounceTimer);\n\n /**\n * Constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Clear timeout and set null to mutationDebouncer property\n */\n public destroy() {\n this.mutationDebouncer = null;\n }\n\n /**\n * Preparation method\n * @return {Promise}\n */\n public async prepare(): Promise {\n /**\n * wait till Browser render Editor's Blocks\n */\n window.setTimeout( () => {\n this.setObserver();\n }, 1000);\n }\n\n /**\n * setObserver\n *\n * sets 'DOMSubtreeModified' listener on Editor's UI.nodes.redactor\n * so that User can handle outside from API\n */\n private setObserver(): void {\n const {Listeners, UI} = this.Editor;\n\n /**\n * Set Listener to the Editor
    element that holds only Blocks\n */\n Listeners.on(UI.nodes.redactor, 'DOMSubtreeModified', () => {\n this.mutationDebouncer();\n }, false);\n }\n}\n","import Module from '../__module';\n\n/**\n * Use external package module for notifications\n *\n * @see https://github.com/codex-team/js-notifier\n */\nimport notifier, {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\n\n/**\n * Notifier module\n */\nexport default class Notifier extends Module {\n\n /**\n * Show web notification\n *\n * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} options\n */\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\n notifier.show(options);\n }\n}\n","import 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.getAllInlineToolsConfig());\n\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {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.getInlineToolsConfig(tool));\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {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, Sanitizer} = this.Editor,\n {content, tool} = dataToInsert;\n\n if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) {\n const blockData = await this.processPattern(content.textContent);\n\n if (blockData) {\n this.splitBlock();\n let insertedBlock;\n\n const sanitizeConfig = Sanitizer.composeToolConfig(tool);\n\n if (!_.isEmpty(sanitizeConfig)) {\n blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);\n }\n\n if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n const currentToolSanitizeConfig = Sanitizer.getInlineToolsConfig(BlockManager.currentBlock.name);\n\n /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, Sanitizer.clean(content.innerHTML, currentToolSanitizeConfig));\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: 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","/**\n * Codex Editor Renderer Module\n *\n * @module Renderer\n * @author CodeX Team\n *\n * @version 2.0.0\n */\nexport default class Renderer extends Module {\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * @typedef {Object} RendererBlocks\n * @property {String} type - tool name\n * @property {Object} data - tool data\n */\n\n /**\n * @example\n *\n * blocks: [\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Hello from Codex!'\n * }\n * },\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Leave feedback if you like it!'\n * }\n * },\n * ]\n *\n */\n\n /**\n * Make plugin blocks from array of plugin`s data\n * @param {RendererBlocks[]} blocks\n */\n render(blocks) {\n let chainData = [];\n\n for (let i = 0; i < blocks.length; i++) {\n chainData.push({\n function: () => this.insertBlock(blocks[i])\n });\n }\n\n return _.sequence(chainData);\n }\n\n /**\n * Get plugin instance\n * Add plugin instance to BlockManager\n * Insert block to working zone\n *\n * @param {Object} item\n * @returns {Promise.}\n * @private\n */\n insertBlock(item) {\n let tool = item.type,\n data = item.data,\n settings = item.settings;\n\n if (tool in this.Editor.Tools.available) {\n try {\n this.Editor.BlockManager.insert(tool, data, settings);\n } catch (error) {\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\n Promise.reject(error);\n }\n } else {\n /**\n * @todo show warning notification message\n *\n * `${tool} blocks was skipped.`\n */\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\n }\n\n return Promise.resolve();\n }\n}\n","/**\n * CodeX Sanitizer\n *\n * @module Sanitizer\n * Clears HTML from taint tags\n *\n * @version 2.0.0\n *\n * @example\n * Module can be used within two ways:\n * 1) When you have an instance\n * - this.Editor.Sanitizer.clean(yourTaintString);\n * 2) As static method\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\n *\n * {@link SanitizerConfig}\n */\n\nimport ISanitizerConfig from '../interfaces/sanitizer-config';\n\n/**\n * @typedef {Object} SanitizerConfig\n * @property {Object} tags - define tags restrictions\n *\n * @example\n *\n * tags : {\n * p: true,\n * a: {\n * href: true,\n * rel: \"nofollow\",\n * target: \"_blank\"\n * }\n * }\n */\n\ndeclare const Module: any;\ndeclare const _: any;\n\nimport HTMLJanitor from 'html-janitor';\nimport IBlockToolData from '../interfaces/tools/block-tool-data';\nimport IInlineTool from '../interfaces/tools/inline-tool';\n\nexport default class Sanitizer extends Module {\n /**\n * Memoize tools config\n */\n private configCache: {[toolName: string]: ISanitizerConfig} = {};\n\n /**\n * Cached inline tools config\n */\n private inlineToolsConfigCache: ISanitizerConfig | null = null;\n\n /**\n * Initializes Sanitizer module\n * Sets default configuration if custom not exists\n *\n * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library\n *\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Sanitize Blocks\n *\n * Enumerate blocks and clean data\n *\n * @param {{tool, data: IBlockToolData}[]} blocksData[]\n */\n public sanitizeBlocks(\n blocksData: Array<{tool: string, data: IBlockToolData}>,\n ): Array<{tool: string, data: IBlockToolData}> {\n\n return blocksData.map((block) => {\n const toolConfig = this.composeToolConfig(block.tool);\n\n if (_.isEmpty(toolConfig)) {\n return block;\n }\n\n block.data = this.deepSanitize(block.data, toolConfig);\n\n return block;\n });\n }\n\n /**\n * Method recursively reduces Block's data and cleans with passed rules\n *\n * @param {IBlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string\n * @param {ISanitizerConfig} rules - object with sanitizer rules\n */\n public deepSanitize(dataToSanitize: any, rules: ISanitizerConfig): any {\n /**\n * BlockData It may contain 3 types:\n * - Array\n * - Object\n * - Primitive\n */\n if (Array.isArray(dataToSanitize)) {\n /**\n * Array: call sanitize for each item\n */\n return this.cleanArray(dataToSanitize, rules);\n } else if (typeof dataToSanitize === 'object') {\n /**\n * Objects: just clean object deeper.\n */\n return this.cleanObject(dataToSanitize, rules);\n } else {\n /**\n * Primitives (number|string|boolean): clean this item\n *\n * Clean only strings\n */\n if (typeof dataToSanitize === 'string') {\n return this.cleanOneItem(dataToSanitize, rules);\n }\n return dataToSanitize;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * Method allows to use default config\n *\n * @param {string} taintString - taint string\n * @param {SanitizerConfig} customConfig - allowed tags\n *\n * @return {string} clean HTML\n */\n public clean(taintString: string, customConfig: ISanitizerConfig = {}): string {\n\n const sanitizerConfig = {\n tags: customConfig,\n };\n\n /**\n * API client can use custom config to manage sanitize process\n */\n const sanitizerInstance = this.createHTMLJanitorInstance(sanitizerConfig);\n return sanitizerInstance.clean(taintString);\n }\n\n /**\n * Merge with inline tool config\n *\n * @param {string} toolName\n * @param {ISanitizerConfig} toolRules\n * @return {ISanitizerConfig}\n */\n public composeToolConfig(toolName: string): ISanitizerConfig {\n /**\n * If cache is empty, then compose tool config and put it to the cache object\n */\n if (this.configCache[toolName]) {\n return this.configCache[toolName];\n }\n\n const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;\n const toolClass = this.Editor.Tools.available[toolName];\n const baseConfig = this.getInlineToolsConfig(toolName);\n\n /**\n * If Tools doesn't provide sanitizer config or it is empty\n */\n if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {\n return baseConfig;\n }\n\n const toolRules = toolClass.sanitize;\n\n const toolConfig = {};\n for (const fieldName in toolRules) {\n if (toolRules.hasOwnProperty(fieldName)) {\n const rule = toolRules[fieldName];\n if (typeof rule === 'object') {\n toolConfig[fieldName] = Object.assign({}, baseConfig, rule);\n } else {\n toolConfig[fieldName] = rule;\n }\n }\n }\n this.configCache[toolName] = toolConfig;\n\n return toolConfig;\n }\n\n /**\n * Returns Sanitizer config\n * When Tool's \"inlineToolbar\" value is True, get all sanitizer rules from all tools,\n * otherwise get only enabled\n */\n public getInlineToolsConfig(name: string): ISanitizerConfig {\n const {Tools} = this.Editor;\n\n const toolsConfig = Tools.getToolSettings(name),\n enableInlineTools = toolsConfig.inlineToolbar || [];\n\n let config = {};\n\n if (typeof enableInlineTools === 'boolean' && enableInlineTools) {\n /**\n * getting all tools sanitizer rule\n */\n config = this.getAllInlineToolsConfig();\n } else {\n /**\n * getting only enabled\n */\n enableInlineTools.map( (inlineToolName) => {\n config = Object.assign(config, Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG]);\n });\n }\n\n return config;\n }\n\n /**\n * Return general config for all inline tools\n */\n public getAllInlineToolsConfig(): ISanitizerConfig {\n const {Tools} = this.Editor;\n\n if (this.inlineToolsConfigCache) {\n return this.inlineToolsConfigCache;\n }\n\n const config: ISanitizerConfig = {};\n\n Object.entries(Tools.inline)\n .forEach( ([name, inlineTool]: [string, IInlineTool]) => {\n Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]);\n });\n\n this.inlineToolsConfigCache = config;\n\n return this.inlineToolsConfigCache;\n }\n\n /**\n * Clean array\n * @param {array} array - [1, 2, {}, []]\n * @param {object} ruleForItem\n */\n private cleanArray(array: any[], ruleForItem: ISanitizerConfig): any[] {\n return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem));\n }\n\n /**\n * Clean object\n * @param {object} object - {level: 0, text: 'adada', items: [1,2,3]}}\n * @param {object} rules - { b: true } or true|false\n * @return {object}\n */\n private cleanObject(object: any, rules: ISanitizerConfig|{[field: string]: ISanitizerConfig}): any {\n const cleanData = {};\n\n for (const fieldName in object) {\n if (!object.hasOwnProperty(fieldName)) {\n continue;\n }\n\n const currentIterationItem = object[fieldName];\n\n /**\n * Get object from config by field name\n * - if it is a HTML Janitor rule, call with this rule\n * - otherwise, call with parent's config\n */\n const ruleForItem = this.isRule(rules[fieldName] as ISanitizerConfig) ? rules[fieldName] : rules;\n\n cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as ISanitizerConfig);\n }\n return cleanData;\n }\n\n /**\n * @param {string} taintString\n * @param {ISanitizerConfig|boolean} rule\n * @return {string}\n */\n private cleanOneItem(taintString: string, rule: ISanitizerConfig|boolean): string {\n if (typeof rule === 'object') {\n return this.clean(taintString, rule);\n } else if (rule === false) {\n return this.clean(taintString, {});\n } else {\n return taintString;\n }\n }\n\n /**\n * Check if passed item is a HTML Janitor rule:\n * { a : true }, {}, false, true, function(){} — correct rules\n * undefined, null, 0, 1, 2 — not a rules\n * @param config\n */\n private isRule(config: ISanitizerConfig): boolean {\n return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function';\n }\n\n /**\n * If developer uses editor's API, then he can customize sanitize restrictions.\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\n * At least, if there is no config overrides, that API uses Default configuration\n *\n * @uses https://www.npmjs.com/package/html-janitor\n *\n * @param {SanitizerConfig} config - sanitizer extension\n */\n private createHTMLJanitorInstance(config: {tags: ISanitizerConfig}): any {\n if (config) {\n return new HTMLJanitor(config);\n }\n return null;\n }\n}\n","/**\n * Codex Editor Saver\n *\n * @module Saver\n * @author Codex Team\n * @version 2.0.0\n */\n\n/**\n * @typedef {Object} SavedData\n * @property {Date} time - saving proccess time\n * @property {Object} blocks - extracted data\n * @property {String} version - CodexEditor version\n */\ninterface SavedData {\n time: number;\n blocks: object[];\n version: string;\n}\n\n/**\n * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data\n *\n * @typedef {Saver} Saver\n * @property {Element} html - Editor HTML content\n * @property {String} json - Editor JSON output\n */\n\ndeclare const Module: any;\ndeclare const VERSION: string;\n\nexport default class Saver extends Module {\n /**\n * @constructor\n * @param config\n */\n constructor({config}) {\n super({config});\n\n this.output = null;\n this.blocksData = [];\n }\n\n /**\n * Composes new chain of Promises to fire them alternatelly\n * @return {SavedData}\n */\n public save(): Promise {\n const blocks = this.Editor.BlockManager.blocks,\n chainData = [];\n\n blocks.forEach((block) => {\n chainData.push(block.data);\n });\n\n return Promise.all(chainData)\n .then((extractedData) => this.Editor.Sanitizer.sanitizeBlocks(extractedData))\n .then((allExtractedData) => this.makeOutput(allExtractedData))\n .then((outputData) => {\n return outputData;\n });\n }\n\n /**\n * Creates output object with saved data, time and version of editor\n * @param {Object} allExtractedData\n * @return {SavedData}\n */\n private makeOutput(allExtractedData): SavedData {\n let totalTime = 0;\n const blocks = [];\n\n console.groupCollapsed('[CodexEditor saving]:');\n\n allExtractedData.forEach((extraction) => {\n /** Group process info */\n console.log(`«${extraction.tool}» saving info`, extraction);\n totalTime += extraction.time;\n blocks.push({\n type: extraction.tool,\n data: extraction.data,\n });\n });\n\n console.log('Total', totalTime);\n console.groupEnd();\n\n return {\n time: +new Date(),\n version: VERSION,\n blocks,\n };\n }\n}\n","\nimport Shortcut from '@codexteam/shortcuts';\nimport {IShortcut, IShortcuts} from '../interfaces/shortcuts';\nimport IEditorConfig from '../interfaces/editor-config';\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\ndeclare var Module: any;\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module implements IShortcuts {\n /**\n * All registered shortcuts\n * @type {IShortcut[]}\n */\n private registeredShortcuts: IShortcut[];\n\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n this.registeredShortcuts = [];\n }\n\n /**\n * Register shortcut\n * @param {IShortcut} shortcut\n */\n public add(shortcut: IShortcut): void {\n const { UI } = this.Editor;\n\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: UI.nodes.redactor,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {IShortcut} shortcut\n */\n public remove(shortcut: string): void {\n // Remove\n }\n}\n","/**\n * Block Settings\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n */\nexport default class BlockSettings extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper: null,\n toolSettings: null,\n defaultSettings: null\n };\n }\n\n /**\n * Module Events\n * @return {{opened: string, closed: string}}\n */\n get events() {\n return {\n opened: 'block-settings-opened',\n closed: 'block-settings-closed',\n };\n }\n\n /**\n * Block Settings CSS\n * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}}\n */\n static get CSS() {\n return {\n // Settings Panel\n wrapper: 'ce-settings',\n wrapperOpened: 'ce-settings--opened',\n toolSettings: 'ce-settings__plugin-zone',\n defaultSettings: 'ce-settings__default-zone',\n\n button: 'ce-settings__button'\n };\n }\n\n /**\n * Panel with block settings with 2 sections:\n * - Tool's Settings\n * - Default Settings [Move, Remove, etc]\n *\n * @return {Element}\n */\n make() {\n this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper);\n\n this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings);\n this.nodes.defaultSettings = $.make('div', BlockSettings.CSS.defaultSettings);\n\n $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]);\n }\n\n /**\n * Add Tool's settings\n */\n addToolSettings() {\n if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') {\n $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings());\n }\n }\n\n /**\n * Add default settings\n */\n addDefaultSettings() {\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\n }\n\n /**\n * Is Block Settings opened or not\n * @returns {boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\n }\n\n /**\n * Open Block Settings pane\n */\n open() {\n this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened);\n\n /**\n * Fill Tool's settings\n */\n this.addToolSettings();\n\n /**\n * Add default settings that presents for all Blocks\n */\n this.addDefaultSettings();\n\n /** Tell to subscribers that block settings is opened */\n this.Editor.Events.emit(this.events.opened);\n }\n\n /**\n * Close Block Settings pane\n */\n close() {\n this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened);\n\n /** Clear settings */\n this.nodes.toolSettings.innerHTML = '';\n this.nodes.defaultSettings.innerHTML = '';\n\n /** Tell to subscribers that block settings is closed */\n this.Editor.Events.emit(this.events.closed);\n }\n}\n","import ITool from '../interfaces/tools/tool';\n\ndeclare var Module: any;\ndeclare var $: any;\n\nimport EditorConfig from '../interfaces/editor-config';\nimport InlineTool from '../interfaces/tools/inline-tool';\nimport SelectionUtils from '../selection';\nimport _ from '../utils';\n\n/**\n * Inline toolbar with actions that modifies selected text fragment\n *\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\n * | B i [link] [mark] |\n * |________________________|\n */\nexport default class InlineToolbar extends Module {\n\n /**\n * CSS styles\n */\n public CSS = {\n inlineToolbar: 'ce-inline-toolbar',\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\n buttonsWrapper: 'ce-inline-toolbar__buttons',\n actionsWrapper: 'ce-inline-toolbar__actions',\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonLast: 'ce-inline-tool--last',\n };\n\n /**\n * Inline Toolbar elements\n */\n private nodes = {\n wrapper: null,\n buttons: null,\n /**\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\n * For example, input for the 'link' tool or textarea for the 'comment' tool\n */\n actions: null,\n };\n\n /**\n * Margin above/below the Toolbar\n */\n private readonly toolbarVerticalMargin: number = 20;\n\n /**\n * Tools instances\n */\n private toolsInstances: Map;\n\n /**\n * @constructor\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n }\n\n /**\n * Inline Toolbar Tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = this.inlineTools;\n\n this.toolsInstances = new Map();\n for (const tool in allTools) {\n if (allTools.hasOwnProperty(tool)) {\n this.toolsInstances.set(tool, allTools[tool]);\n }\n }\n }\n\n return this.toolsInstances;\n }\n\n /**\n * Making DOM\n */\n public make() {\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\n\n /**\n * Append Inline Toolbar to the Editor\n */\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Append Inline Toolbar Tools\n */\n this.addTools();\n\n }\n\n /**\n * Moving / appearance\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Shows Inline Toolbar by keyup/mouseup\n * @param {KeyboardEvent|MouseEvent} event\n */\n public handleShowingEvent(event): void {\n if (!this.allowedToShow(event)) {\n this.close();\n return;\n }\n\n this.move();\n this.open();\n\n /** Check Tools state for selected fragment */\n this.checkToolsState();\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Move Toolbar to the selected text\n */\n public move(): void {\n const selectionRect = SelectionUtils.rect as DOMRect;\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\n const newCoords = {\n x: selectionRect.x - wrapperOffset.left,\n y: selectionRect.y\n + selectionRect.height\n // + window.scrollY\n - wrapperOffset.top\n + this.toolbarVerticalMargin,\n };\n\n /**\n * If we know selections width, place InlineToolbar to center\n */\n if (selectionRect.width) {\n newCoords.x += Math.floor(selectionRect.width / 2);\n }\n\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\n }\n\n /**\n * Shows Inline Toolbar\n */\n private open() {\n /**\n * Filter inline-tools and show only allowed by Block's Tool\n */\n this.filterTools();\n\n /**\n * Show Inline Toolbar\n */\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\n\n /**\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\n */\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Hides Inline Toolbar\n */\n private close() {\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Need to show Inline Toolbar or not\n * @param {KeyboardEvent|MouseEvent} event\n */\n private allowedToShow(event): boolean {\n /**\n * Tags conflicts with window.selection function.\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\n */\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\n\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\n return false;\n }\n\n const currentSelection = SelectionUtils.get(),\n selectedText = SelectionUtils.text;\n\n // old browsers\n if (!currentSelection || !currentSelection.anchorNode) {\n return false;\n }\n\n // empty selection\n if (currentSelection.isCollapsed || selectedText.length < 1) {\n return false;\n }\n\n // is enabled by current Block's Tool\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\n\n if (!currentBlock) {\n return false;\n }\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n }\n\n /**\n * Show only allowed Tools\n */\n private filterTools(): void {\n const currentSelection = SelectionUtils.get(),\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode);\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n\n /**\n * All Inline Toolbar buttons\n * @type {HTMLElement[]}\n */\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\n\n /**\n * Show previously hided\n */\n buttons.forEach((button) => {\n button.hidden = false;\n button.classList.remove(this.CSS.inlineToolButtonLast);\n });\n\n /**\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\n */\n if (Array.isArray(inlineToolbarSettings)) {\n buttons.forEach((button) => {\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\n });\n }\n\n /**\n * Tick for removing right-margin from last visible button.\n * Current generation of CSS does not allow to filter :visible elements\n */\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\n\n if (lastVisibleButton) {\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\n }\n }\n\n /**\n * Working with Tools\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Fill Inline Toolbar with Tools\n */\n private addTools(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n this.addTool(toolName, toolInstance);\n });\n }\n\n /**\n * Add tool button and activate clicks\n */\n private addTool(toolName: string, tool: InlineTool): void {\n const {\n Listeners,\n Tools,\n } = this.Editor;\n\n const button = tool.render();\n\n if (!button) {\n _.log('Render method must return an instance of Node', 'warn', toolName);\n return;\n }\n\n button.dataset.tool = toolName;\n this.nodes.buttons.appendChild(button);\n\n if (typeof tool.renderActions === 'function') {\n const actions = tool.renderActions();\n this.nodes.actions.appendChild(actions);\n }\n\n Listeners.on(button, 'click', (event) => {\n this.toolClicked(tool);\n event.preventDefault();\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * Get internal inline tools\n */\n const internalTools: string[] = Object\n .entries(Tools.internalTools)\n .filter(([name, toolClass]: [string, ITool]) => toolClass[Tools.apiSettings.IS_INLINE])\n .map(([name, toolClass]: [string, ITool]) => name);\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (internalTools.includes(toolName)) {\n shortcut = this.inlineTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[Tools.apiSettings.SHORTCUT];\n }\n\n if (shortcut) {\n this.enableShortcuts(tool, shortcut);\n }\n }\n\n /**\n * Enable Tool shortcut with Editor Shortcuts Module\n * @param {InlineTool} tool - Tool instance\n * @param {string} shortcut - shortcut according to the Shortcut Module format\n */\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n const {currentBlock} = this.Editor.BlockManager;\n\n /**\n * Editor is not focused\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * We allow to fire shortcut with empty selection (isCollapsed=true)\n * it can be used by tools like «Mention» that works without selection:\n * Example: by SHIFT+@ show dropdown and insert selected username\n */\n // if (SelectionUtils.isCollapsed) return;\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\n return;\n }\n\n event.preventDefault();\n this.toolClicked(tool);\n },\n });\n }\n\n /**\n * Inline Tool button clicks\n * @param {InlineTool} tool - Tool's instance\n */\n private toolClicked(tool: InlineTool): void {\n const range = SelectionUtils.range;\n\n tool.surround(range);\n this.checkToolsState();\n }\n\n /**\n * Check Tools` state by selection\n */\n private checkToolsState(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\n\n /**\n * Get inline tools tools\n * Tools that has isInline is true\n */\n private get inlineTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n}\n","import IEditorConfig from '../interfaces/editor-config';\n\n/**\n * @class Toolbox\n * @classdesc Holder for Tools\n *\n * @typedef {Toolbox} Toolbox\n * @property {Boolean} opened - opening state\n * @property {Object} nodes - Toolbox nodes\n * @property {Object} CSS - CSS class names\n *\n */\nexport default class Toolbox extends Module {\n /**\n * @constructor\n * @param {IEditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n toolbox: null,\n buttons: []\n };\n\n /**\n * Opening state\n * @type {boolean}\n */\n this.opened = false;\n\n /**\n * Active button index\n * -1 equals no chosen Tool\n * @type {number}\n */\n this.activeButtonIndex = -1;\n\n /**\n * How many tools displayed in Toolbox\n * @type {number}\n */\n this.displayedToolsCount = 0;\n }\n\n /**\n * CSS styles\n * @return {{toolbox: string, toolboxButton: string, toolboxOpened: string}}\n */\n static get CSS() {\n return {\n toolbox: 'ce-toolbox',\n toolboxButton: 'ce-toolbox__button',\n toolboxButtonActive : 'ce-toolbox__button--active',\n toolboxOpened: 'ce-toolbox--opened',\n };\n }\n\n /**\n * Makes the Toolbox\n */\n make() {\n this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox);\n $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox);\n\n this.addTools();\n }\n\n /**\n * Iterates available tools and appends them to the Toolbox\n */\n addTools() {\n let tools = this.Editor.Tools.toolsAvailable;\n\n for (let toolName in tools) {\n this.addTool(toolName, tools[toolName]);\n }\n }\n\n /**\n * Append Tool to the Toolbox\n *\n * @param {string} toolName - tool name\n * @param {IBlockTool} tool - tool class\n */\n addTool(toolName, tool) {\n const api = this.Editor.Tools.apiSettings;\n\n if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) {\n _.log('Toolbar icon is missed. Tool %o skipped', 'warn', toolName);\n return;\n }\n\n /**\n * @todo Add checkup for the render method\n */\n // if (typeof tool.render !== 'function') {\n // _.log('render method missed. Tool %o skipped', 'warn', tool);\n // return;\n // }\n\n /**\n * Skip tools that pass 'displayInToolbox=false'\n */\n if (!tool[api.IS_DISPLAYED_IN_TOOLBOX]) {\n return;\n }\n\n let button = $.make('li', [ Toolbox.CSS.toolboxButton ], {\n title: toolName\n });\n\n button.innerHTML = tool.toolboxIcon;\n\n $.append(this.nodes.toolbox, button);\n\n this.nodes.toolbox.appendChild(button);\n this.nodes.buttons.push(button);\n\n /**\n * Add click listener\n */\n this.Editor.Listeners.on(button, 'click', (event) => {\n this.toolButtonActivate(event, toolName);\n });\n\n /**\n * Enable shortcut\n */\n const toolSettings = this.Editor.Tools.getToolSettings(toolName);\n\n if (toolSettings && toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]) {\n this.enableShortcut(tool, toolName, toolSettings[this.Editor.Tools.apiSettings.SHORTCUT]);\n }\n\n /** Increment Tools count */\n this.displayedToolsCount++;\n }\n\n /**\n * Enable shortcut Block Tool implemented shortcut\n * @param {IBlockTool} tool - Tool class\n * @param {String} toolName - Tool name\n * @param {String} shortcut - shortcut according to the Shortcut Module format\n */\n enableShortcut(tool, toolName, shortcut) {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n event.preventDefault();\n this.insertNewBlock(tool, toolName);\n }\n });\n }\n\n /**\n * Inserts new block\n * Can be called when button clicked on Toolbox or by Shortcut\n *\n * @param {IBlockTool} tool - Tool Class\n * @param {String} toolName - Tool name\n */\n insertNewBlock(tool, toolName) {\n /**\n * @type {Block}\n */\n const currentBlock = this.Editor.BlockManager.currentBlock;\n\n /**\n * We do replace if:\n * - block is empty\n * - block is not irreplaceable\n * @type {Array}\n */\n let newBlock;\n\n if (!tool[this.Editor.Tools.apiSettings.IS_IRREPLACEBLE_TOOL] && currentBlock.isEmpty) {\n newBlock = this.Editor.BlockManager.replace(toolName);\n } else {\n newBlock = this.Editor.BlockManager.insert(toolName);\n }\n\n /**\n * Apply callback before inserting html\n */\n newBlock.call('appendCallback', {});\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * close toolbar when node is changed\n */\n this.Editor.Toolbar.close();\n }\n\n /**\n * Toolbox Tool's button click handler\n *\n * @param {MouseEvent|KeyboardEvent} event\n * @param {string} toolName\n */\n toolButtonActivate(event, toolName) {\n const tool = this.Editor.Tools.toolsClasses[toolName];\n\n this.insertNewBlock(tool, toolName);\n }\n\n /**\n * Open Toolbox with Tools\n */\n open() {\n if (this.isEmpty) {\n return;\n }\n\n this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened);\n this.opened = true;\n }\n\n /**\n * Close Toolbox\n */\n close() {\n this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened);\n this.opened = false;\n\n /** remove active item pointer */\n this.activeButtonIndex = -1;\n const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`);\n\n if (activeButton) {\n activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n }\n\n /**\n * Close Toolbox\n */\n toggle() {\n if (!this.opened) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * Leaf\n * flip through the toolbox items\n * @param {String} direction - leaf direction, right is default\n */\n leaf(direction = 'right') {\n const childNodes = this.nodes.toolbox.childNodes;\n\n /**\n * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox\n */\n if (this.activeButtonIndex === -1) {\n /**\n * Normalize \"previous\" Tool index depending on direction.\n * We need to do this to highlight \"first\" Tool correctly\n *\n * Order of Tools: [0] [1] ... [n - 1]\n * [0 = n] because of: n % n = 0 % n\n *\n * Direction 'right': for [0] the [n - 1] is a previous index\n * [n - 1] -> [0]\n *\n * Direction 'left': for [n - 1] the [0] is a previous index\n * [n - 1] <- [0]\n *\n * @type {number}\n */\n this.activeButtonIndex = direction === 'right' ? -1 : 0;\n } else {\n /**\n * If we have chosen Tool then remove highlighting\n */\n childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * Count index for next Tool\n */\n if (direction === 'right') {\n /**\n * If we go right then choose next (+1) Tool\n * @type {number}\n */\n this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length;\n } else {\n /**\n * If we go left then choose previous (-1) Tool\n * Before counting module we need to add length before because of \"The JavaScript Modulo Bug\"\n * @type {number}\n */\n this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length;\n }\n\n /**\n * Highlight new chosen Tool\n */\n childNodes[this.activeButtonIndex].classList.add(Toolbox.CSS.toolboxButtonActive);\n }\n\n /**\n * get tool name when it is selected\n * In case when nothing selection returns null\n *\n * @return {String|null}\n */\n get getActiveTool() {\n const childNodes = this.nodes.toolbox.childNodes;\n\n if (this.activeButtonIndex === -1) {\n return null;\n }\n\n return childNodes[this.activeButtonIndex].title;\n }\n\n /**\n * Returns True if Toolbox is Empty and nothing to show\n * @return {boolean}\n */\n get isEmpty() {\n return this.displayedToolsCount === 0;\n }\n}\n","/**\n *\n * «Toolbar» is the node that moves up/down over current block\n *\n * ______________________________________ Toolbar ____________________________________________\n * | |\n * | ..................... Content .................... ......... Block Actions .......... |\n * | . . . . |\n * | . . . [Open Settings] . |\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\n * | . . . [Settings Panel] . |\n * | .................................................. .................................. |\n * | |\n * |___________________________________________________________________________________________|\n *\n *\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\n *\n * _______________ Toolbox _______________\n * | |\n * | [Header] [Image] [List] [Quote] ... |\n * |_______________________________________|\n *\n *\n * Settings Panel — is an Element with block settings:\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n *\n *\n * @class\n * @classdesc Toolbar module\n *\n * @typedef {Toolbar} Toolbar\n * @property {Object} nodes\n * @property {Element} nodes.wrapper - Toolbar main element\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\n * @property {Element} nodes.toolbox - Container for tools\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\n * @property {Element} nodes.settings - Settings Panel\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\n */\nexport default class Toolbar extends Module {\n /**\n * @constructor\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n wrapper : null,\n content : null,\n actions : null,\n\n // Content Zone\n plusButton : null,\n\n // Actions Zone\n blockActionsButtons: null,\n settingsToggler : null,\n };\n }\n\n /**\n * CSS styles\n * @return {Object}\n * @constructor\n */\n static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\n\n toolbarOpened: 'ce-toolbar--opened',\n\n // Content Zone\n plusButton: 'ce-toolbar__plus',\n plusButtonHidden: 'ce-toolbar__plus--hidden',\n\n // Actions Zone\n blockActionsButtons: 'ce-toolbar__actions-buttons',\n settingsToggler: 'ce-toolbar__settings-btn',\n };\n }\n\n /**\n * Makes toolbar\n */\n make() {\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\n\n /**\n * Make Content Zone and Actions Zone\n */\n ['content', 'actions'].forEach( el => {\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\n $.append(this.nodes.wrapper, this.nodes[el]);\n });\n\n\n /**\n * Fill Content Zone:\n * - Plus Button\n * - Toolbox\n */\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\n $.append(this.nodes.content, this.nodes.plusButton);\n this.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false);\n\n\n /**\n * Make a Toolbox\n */\n this.Editor.Toolbox.make();\n\n /**\n * Fill Actions Zone:\n * - Settings Toggler\n * - Remove Block Button\n * - Settings Panel\n */\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\n const settingsIcon = $.svg('dots', 18, 4);\n\n $.append(this.nodes.settingsToggler, settingsIcon);\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\n\n /**\n * Make and append Settings Panel\n */\n this.Editor.BlockSettings.make();\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\n\n /**\n * Append toolbar to the Editor\n */\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Bind events on the Toolbar elements\n */\n this.bindEvents();\n }\n\n /**\n * Move Toolbar to the Current Block\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\n */\n move(forceClose = true) {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n let currentBlock = this.Editor.BlockManager.currentBlock.holder;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * Set Toolbar Min Height as Block's height\n * Plus Button and Toolbox positioned at the center of the Toolbar\n */\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\n\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n /**\n * Move Toolbar to the Top coordinate of Block\n */\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button\n */\n open() {\n /**\n * Wait Block rendering for correct height computing\n */\n setTimeout(() => {\n this.move();\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n }, 50);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n get opened() {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n close() {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n /**\n * Plus Button public methods\n * @return {{hide: function(): void, show: function(): void}}\n */\n get plusButton() {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => {\n if (this.Editor.Toolbox.isEmpty) {\n return;\n }\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\n }\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n plusButtonClicked() {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n bindEvents() {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => {\n this.settingsTogglerClicked(event);\n });\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n settingsTogglerClicked() {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","import BoldInlineTool from '../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\n\nconst Paragraph = require('../tools/paragraph/dist/bundle');\n\n/**\n * @module Codex Editor Tools Submodule\n *\n * Creates Instances from Plugins and binds external config to the instances\n */\n\n/**\n * Each Tool must contain the following important objects:\n *\n * @typedef {Object} ToolConfig {@link docs/tools.md}\n * @property {String} iconClassname - this a icon in toolbar\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list |\n * @property render @todo add description\n * @property save @todo add description\n * @property settings @todo add description\n * @property validate - method that validates output data before saving\n */\n\n/**\n * @typedef {Function} Tool {@link docs/tools.md}\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\n * @property {String} iconClassName - CSS class name for the Toolbox button\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\n * @property render\n * @property save\n * @property settings\n * @property validate\n *\n * @todo update according to current API\n * @todo describe Tool in the {@link docs/tools.md}\n */\n\n/**\n * Class properties:\n *\n * @typedef {Tools} Tools\n * @property {Tools[]} toolsAvailable - available Tools\n * @property {Tools[]} toolsUnavailable - unavailable Tools\n * @property {object} toolsClasses - all classes\n * @property {object} toolsSettings - Tools settings\n * @property {EditorConfig} config - Editor config\n */\nexport default class Tools extends Module {\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n this.toolsClasses = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\n */\n this.toolsSettings = {};\n\n /**\n * Available tools list\n * {name: Class, ...}\n * @type {Object}\n */\n this.toolsAvailable = {};\n\n /**\n * Tools that rejected a prepare method\n * {name: Class, ... }\n * @type {Object}\n */\n this.toolsUnavailable = {};\n\n /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n this._inlineTools = null;\n }\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n get available() {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n get unavailable() {\n return this.toolsUnavailable;\n }\n\n /**\n * Return Tools for the Inline Toolbar\n * @return {Object} - object of Inline Tool's classes\n */\n get inline() {\n if (this._inlineTools) {\n return this._inlineTools;\n }\n\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (!tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n /**\n * Some Tools validation\n */\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\n const notImplementedMethods = inlineToolRequiredMethods.filter( method => !this.constructInline(tool)[method]);\n\n if (notImplementedMethods.length) {\n _.log(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods);\n return false;\n }\n\n return true;\n });\n\n /**\n * collected inline tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n /**\n * Cache prepared Tools\n */\n this._inlineTools = result;\n\n return this._inlineTools;\n }\n\n /**\n * Return editor block tools\n */\n get blockTools() {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n return true;\n });\n\n /**\n * collected block tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n return result;\n }\n\n /**\n * Constant for available Tools Settings\n * @return {object}\n */\n get apiSettings() {\n return {\n CONFIG: 'config',\n IS_CONTENTLESS: 'contentless',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n SANITIZE_CONFIG: 'sanitize'\n };\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n prepare() {\n /**\n * Assign internal tools\n */\n Object.assign(this.config.tools, this.internalTools);\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n return Promise.reject('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for(let toolName in this.config.tools) {\n /**\n * If Tool is an object not a Tool's class then\n * save class and settings separately\n */\n if (typeof this.config.tools[toolName] === 'object') {\n /**\n * Save Tool's class from 'class' field\n * @type {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName].class;\n\n /**\n * Save Tool's settings\n * @type {IToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName];\n\n /**\n * Remove Tool's class from settings\n */\n delete this.toolsSettings[toolName].class;\n } else {\n /**\n * Save Tool's class\n * @type {ITool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName];\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n let sequenceData = this.getListOfPrepareFunctions();\n\n /**\n * if sequence data contains nothing then resolve current chain and run other module prepare\n */\n if (sequenceData.length === 0) {\n return Promise.resolve();\n }\n\n /**\n * to see how it works {@link Util#sequence}\n */\n return _.sequence(sequenceData, (data) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\n }\n\n /**\n * Binds prepare function of plugins with user or default config\n * @return {Array} list of functions that needs to be fired sequentially\n */\n getListOfPrepareFunctions() {\n let toolPreparationList = [];\n\n for(let toolName in this.toolsClasses) {\n let toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function : toolClass.prepare,\n data : {\n toolName,\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG]\n }\n });\n } else {\n /**\n * If Tool hasn't a prepare method, mark it as available\n */\n this.toolsAvailable[toolName] = toolClass;\n }\n }\n\n return toolPreparationList;\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n success(data) {\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * @param {ChainData.data} data - append tool to unavailable list\n */\n fallback(data) {\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * Return Tool`s instance\n *\n * @param {String} tool — tool name\n * @param {IBlockToolData} data — initial data\n * @return {IBlockTool}\n */\n construct(tool, data) {\n const plugin = this.toolsClasses[tool];\n\n /**\n * Configuration to be passed to the Tool's constructor\n */\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\n\n /**\n * @type {{api: IAPI, config: ({}), data: IBlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data: data\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {IInlineTool} tool\n * @return {IInlineTool} — instance\n */\n constructInline(tool) {\n /**\n * @type {{api: IAPI}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods\n };\n\n return new tool(constructorOptions);\n }\n\n /**\n * Check if passed Tool is an instance of Initial Block Tool\n * @param {Tool} tool - Tool to check\n * @return {Boolean}\n */\n isInitial(tool) {\n return tool instanceof this.available[this.config.initialBlock];\n }\n\n /**\n * Return Tool's config by name\n * @param {string} toolName\n * @return {IToolSettings}\n */\n getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n\n /**\n * Returns internal tools\n * Includes Bold, Italic, Link and Paragraph\n */\n get internalTools() {\n return {\n bold: BoldInlineTool,\n italic: ItalicInlineTool,\n link: LinkInlineTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true\n }\n };\n }\n}\n","/**\n * Module UI\n *\n * @type {UI}\n */\n\n/**\n * Prebuilded sprite of SVG icons\n */\nimport sprite from '../../../build/sprite.svg';\n\nimport Selection from '../selection';\n\n/**\n * @class\n *\n * @classdesc Makes CodeX Editor UI:\n * \n * \n * \n * \n * \n *\n * @typedef {UI} UI\n * @property {EditorConfig} config - editor configuration {@link CodexEditor#configuration}\n * @property {Object} Editor - available editor modules {@link CodexEditor#moduleInstances}\n * @property {Object} nodes -\n * @property {Element} nodes.holder - element where we need to append redactor\n * @property {Element} nodes.wrapper - \n * @property {Element} nodes.redactor - \n */\nexport default class UI extends Module {\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.nodes = {\n holder: null,\n wrapper: null,\n redactor: null\n };\n }\n\n /**\n * Making main interface\n */\n async prepare() {\n await this.make();\n\n /**\n * Append SVG sprite\n */\n await this.appendSVGSprite();\n\n /**\n * Make toolbar\n */\n await this.Editor.Toolbar.make();\n\n /**\n * Make the Inline toolbar\n */\n await this.Editor.InlineToolbar.make();\n\n /**\n * Load and append CSS\n */\n await this.loadStyles();\n\n /**\n * Bind events for the UI elements\n */\n await this.bindEvents();\n }\n\n /**\n * CodeX Editor UI CSS class names\n * @return {{editorWrapper: string, editorZone: string, block: string}}\n */\n get CSS() {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Makes CodeX Editor interface\n * @return {Promise}\n */\n async make() {\n /**\n * Element where we need to append CodeX Editor\n * @type {Element}\n */\n this.nodes.holder = document.getElementById(this.config.holderId);\n\n if (!this.nodes.holder) {\n throw Error(\"Holder wasn't found by ID: #\" + this.config.holderId);\n }\n\n /**\n * Create and save main UI elements\n */\n this.nodes.wrapper = $.make('div', this.CSS.editorWrapper);\n this.nodes.redactor = $.make('div', this.CSS.editorZone);\n\n this.nodes.wrapper.appendChild(this.nodes.redactor);\n this.nodes.holder.appendChild(this.nodes.wrapper);\n }\n\n /**\n * Appends CSS\n */\n loadStyles() {\n /**\n * Load CSS\n */\n let styles = require('../../styles/main.css');\n\n /**\n * Make tag\n */\n let tag = $.make('style', null, {\n textContent: styles.toString()\n });\n\n /**\n * Append styles at the top of HEAD tag\n */\n $.prepend(document.head, tag);\n }\n\n /**\n * Bind events on the CodeX Editor interface\n */\n bindEvents() {\n this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false );\n this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true );\n this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false );\n }\n\n /**\n * All keydowns on document\n * @param {Event} event\n */\n documentKeydown(event) {\n switch (event.keyCode) {\n case _.keyCodes.ENTER:\n this.enterPressed(event);\n break;\n default:\n this.defaultBehaviour(event);\n break;\n }\n }\n\n /**\n * Ignore all other document's keydown events\n * @param {KeyboardEvent} event\n */\n defaultBehaviour(event) {\n const keyDownOnEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\n\n /**\n * Ignore keydowns on document\n * clear pointer and close toolbar\n */\n if (!keyDownOnEditor) {\n /**\n * Remove all highlights and remove caret\n */\n this.Editor.BlockManager.dropPointer();\n\n /**\n * Close Toolbar\n */\n this.Editor.Toolbar.close();\n }\n }\n\n /**\n * Enter pressed on document\n * @param event\n */\n enterPressed(event) {\n let hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0;\n\n /**\n * If Caret is not set anywhere, event target on Enter is always Element that we handle\n * In our case it is document.body\n *\n * So, BlockManager points some Block and Enter press is on Body\n * We can create a new block\n */\n if (hasPointerToBlock && event.target.tagName === 'BODY') {\n /**\n * Insert initial typed Block\n */\n const newBlock = this.Editor.BlockManager.insert();\n\n this.Editor.Caret.setToBlock(newBlock);\n\n /**\n * And highlight\n */\n this.Editor.BlockManager.highlightCurrentNode();\n\n /**\n * Move toolbar and show plus button because new Block is empty\n */\n this.Editor.Toolbar.move();\n this.Editor.Toolbar.plusButton.show();\n }\n\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on document\n * @param {MouseEvent} event - Click\n */\n documentClicked(event) {\n /**\n * Close Inline Toolbar when nothing selected\n * Do not fire check on clicks at the Inline Toolbar buttons\n */\n const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\n const clickedInsideofEditor = event.target.closest(`.${this.CSS.editorWrapper}`);\n\n /** Clear highlightings and pointer on BlockManager */\n if (!clickedInsideofEditor && !Selection.isAtEditor) {\n this.Editor.BlockManager.dropPointer();\n this.Editor.Toolbar.close();\n }\n\n if (!clickedOnInlineToolbarButton) {\n this.Editor.InlineToolbar.handleShowingEvent(event);\n }\n\n if (Selection.isAtEditor) {\n this.Editor.BlockManager.setCurrentBlockByChildNode(Selection.anchorNode);\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * All clicks on the redactor zone\n *\n * @param {MouseEvent} event\n *\n * @description\n * 1. Save clicked Block as a current {@link BlockManager#currentNode}\n * it uses for the following:\n * - add CSS modifier for the selected Block\n * - on Enter press, we make a new Block under that\n *\n * 2. Move and show the Toolbar\n *\n * 3. Set a Caret\n *\n * 4. By clicks on the Editor's bottom zone:\n * - if last Block is empty, set a Caret to this\n * - otherwise, add a new empty Block and set a Caret to that\n *\n * 5. Hide the Inline Toolbar\n *\n * @see selectClickedBlock\n *\n */\n redactorClicked(event) {\n const clickedNode = event.target;\n\n /**\n * Select clicked Block as Current\n */\n try {\n /**\n * Renew Current Block\n */\n this.Editor.BlockManager.setCurrentBlockByChildNode(clickedNode);\n\n /**\n * Highlight Current Node\n */\n this.Editor.BlockManager.highlightCurrentNode();\n } catch (e) {\n /**\n * If clicked outside first-level Blocks, set Caret to the last empty Block\n */\n this.Editor.Caret.setToTheLastBlock();\n }\n\n event.stopImmediatePropagation();\n event.stopPropagation();\n\n /**\n * Move and open toolbar\n */\n this.Editor.Toolbar.open();\n\n /**\n * Hide the Plus Button\n */\n this.Editor.Toolbar.plusButton.hide();\n\n if (!this.Editor.BlockManager.currentBlock) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * Show the Plus Button if:\n * - Block is an initial-block (Text)\n * - Block is empty\n */\n let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool),\n isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty;\n\n if (isInitialBlock && isEmptyBlock) {\n this.Editor.Toolbar.plusButton.show();\n }\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Append prebuilded sprite with SVG icons\n */\n appendSVGSprite() {\n let spriteHolder = $.make('div');\n\n spriteHolder.hidden = true;\n spriteHolder.style.display = 'none';\n spriteHolder.innerHTML = sprite;\n\n $.append(this.nodes.wrapper, spriteHolder);\n }\n\n /**\n * Clean editor`s UI\n */\n destroy() {\n this.nodes.holder.innerHTML = '';\n }\n}\n","'use strict';\n\n/**\n * Extend Element interface to include prefixed and experimental properties\n */\ninterface Element {\n matchesSelector: (selector: string) => boolean;\n mozMatchesSelector: (selector: string) => boolean;\n oMatchesSelector: (selector: string) => boolean;\n\n prepend: (nodes: Node|Node[]|any) => void;\n}\n\n/**\n * The Element.matches() method returns true if the element\n * would be selected by the specified selector string;\n * otherwise, returns false.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill}\n */\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.matchesSelector ||\n Element.prototype.mozMatchesSelector ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.oMatchesSelector ||\n Element.prototype.webkitMatchesSelector ||\n function(s) {\n const matches = (this.document || this.ownerDocument).querySelectorAll(s);\n let i = matches.length;\n\n while (--i >= 0 && matches.item(i) !== this) {\n }\n\n return i > -1;\n };\n}\n\n/**\n * The Element.closest() method returns the closest ancestor\n * of the current element (or the current element itself) which\n * matches the selectors given in parameter.\n * If there isn't such an ancestor, it returns null.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill}\n */\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n let el = this;\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (el.matches(s)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null);\n\n return null;\n };\n}\n\n/**\n * The ParentNode.prepend method inserts a set of Node objects\n * or DOMString objects before the first child of the ParentNode.\n * DOMString objects are inserted as equivalent Text nodes.\n *\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/prepend#Polyfill}\n */\nif (!Element.prototype.prepend) {\n Element.prototype.prepend = function prepend(nodes: Node|Node[]|any) {\n const docFrag = document.createDocumentFragment();\n\n if (!Array.isArray(nodes)) {\n nodes = [ nodes ];\n }\n\n nodes.forEach((node: Node|any) => {\n const isNode = node instanceof Node;\n\n docFrag.appendChild(isNode ? node : document.createTextNode(String(node)));\n });\n\n this.insertBefore(docFrag, this.firstChild);\n };\n}\n","/**\n * TextRange interface fot IE9-\n */\nimport _ from './utils';\n\ninterface TextRange {\n boundingTop: number;\n boundingLeft: number;\n boundingBottom: number;\n boundingRight: number;\n boundingHeight: number;\n boundingWidth: number;\n}\n\n/**\n * Interface for object returned by document.selection in IE9-\n */\ninterface MSSelection {\n createRange: () => TextRange;\n type: string;\n}\n\n/**\n * Extends Document interface for IE9-\n */\ninterface Document {\n selection?: MSSelection;\n}\n\n/**\n * Working with selection\n * @typedef {Selection} Selection\n */\nexport default class SelectionUtils {\n\n /**\n * Editor styles\n * @return {{editorWrapper: string, editorZone: string}}\n * @constructor\n */\n static get CSS(): {editorWrapper: string, editorZone: string} {\n return {\n editorWrapper : 'codex-editor',\n editorZone : 'codex-editor__redactor',\n };\n }\n\n /**\n * Returns selected anchor\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorNode}\n * @return {Node|null}\n */\n static get anchorNode(): Node|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorNode : null;\n }\n\n /**\n * Returns selection offset according to the anchor node\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Selection/anchorOffset}\n * @return {Number|null}\n */\n static get anchorOffset(): number|null {\n const selection = window.getSelection();\n\n return selection ? selection.anchorOffset : null;\n }\n\n /**\n * Is current selection range collapsed\n * @return {boolean|null}\n */\n static get isCollapsed(): boolean|null {\n const selection = window.getSelection();\n\n return selection ? selection.isCollapsed : null;\n }\n\n /**\n * Check current selection if it is at Editor's zone\n * @return {boolean}\n */\n static get isAtEditor(): boolean {\n const selection = SelectionUtils.get();\n\n /**\n * Something selected on document\n */\n let selectedNode = (selection.anchorNode || selection.focusNode) as HTMLElement;\n\n if (selectedNode && selectedNode.nodeType === Node.TEXT_NODE) {\n selectedNode = selectedNode.parentNode as HTMLElement;\n }\n\n let editorZone = null;\n if (selectedNode) {\n editorZone = selectedNode.closest(`.${SelectionUtils.CSS.editorZone}`);\n }\n\n /**\n * SelectionUtils is not out of Editor because Editor's wrapper was found\n */\n return editorZone && editorZone.nodeType === Node.ELEMENT_NODE;\n }\n\n /**\n * Return first range\n * @return {Range|null}\n */\n static get range(): Range {\n const selection = window.getSelection();\n\n return selection && selection.rangeCount ? selection.getRangeAt(0) : null;\n }\n\n /**\n * Calculates position and size of selected text\n * @return {{x, y, width, height, top?, left?, bottom?, right?}}\n */\n static get rect(): DOMRect|ClientRect {\n let sel: Selection|MSSelection = (document as Document).selection,\n range: TextRange|Range;\n\n let rect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n } as DOMRect;\n\n if (sel && sel.type !== 'Control') {\n sel = sel as MSSelection;\n range = sel.createRange() as TextRange;\n rect.x = range.boundingLeft;\n rect.y = range.boundingTop;\n rect.width = range.boundingWidth;\n rect.height = range.boundingHeight;\n\n return rect;\n }\n\n if (!window.getSelection) {\n _.log('Method window.getSelection is not supported', 'warn');\n return rect;\n }\n\n sel = window.getSelection();\n\n if (!sel.rangeCount) {\n _.log('Method SelectionUtils.rangeCount() is not supported', 'warn');\n return rect;\n }\n\n range = sel.getRangeAt(0).cloneRange() as Range;\n\n if (range.getBoundingClientRect) {\n rect = range.getBoundingClientRect() as DOMRect;\n }\n // Fall back to inserting a temporary element\n if (rect.x === 0 && rect.y === 0) {\n const span = document.createElement('span');\n\n if (span.getBoundingClientRect) {\n // Ensure span has dimensions and position by\n // adding a zero-width space character\n span.appendChild( document.createTextNode('\\u200b') );\n range.insertNode(span);\n rect = span.getBoundingClientRect() as DOMRect;\n\n const spanParent = span.parentNode;\n\n spanParent.removeChild(span);\n\n // Glue any broken text nodes back together\n spanParent.normalize();\n }\n }\n\n return rect;\n }\n\n /**\n * Returns selected text as String\n * @returns {string}\n */\n static get text(): string {\n return window.getSelection ? window.getSelection().toString() : '';\n }\n\n /**\n * Returns window SelectionUtils\n * {@link https://developer.mozilla.org/ru/docs/Web/API/Window/getSelection}\n * @return {Selection}\n */\n public static get(): Selection {\n return window.getSelection();\n }\n\n public instance: Selection = null;\n public selection: Selection = null;\n\n /**\n * This property can store SelectionUtils's range for restoring later\n * @type {Range|null}\n */\n public savedSelectionRange: Range = null;\n\n /**\n * Save SelectionUtils's range\n */\n public save(): void {\n this.savedSelectionRange = SelectionUtils.range;\n }\n\n /**\n * Restore saved SelectionUtils's range\n */\n public restore(): void {\n if (!this.savedSelectionRange) {\n return;\n }\n\n const sel = window.getSelection();\n\n sel.removeAllRanges();\n sel.addRange(this.savedSelectionRange);\n }\n\n /**\n * Clears saved selection\n */\n public clearSaved(): void {\n this.savedSelectionRange = null;\n }\n\n /**\n * Looks ahead to find passed tag from current selection\n *\n * @param {String} tagName - tag to found\n * @param {String} [className] - tag's class name\n * @param {Number} [searchDepth] - count of tags that can be included. For better performance.\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string, searchDepth = 10): HTMLElement|null {\n const selection = window.getSelection();\n let parentTag = null;\n\n /**\n * If selection is missing or no anchorNode or focusNode were found then return null\n */\n if (!selection || !selection.anchorNode || !selection.focusNode) {\n return null;\n }\n\n /**\n * Define Nodes for start and end of selection\n */\n const boundNodes = [\n /** the Node in which the selection begins */\n selection.anchorNode as HTMLElement,\n /** the Node in which the selection ends */\n selection.focusNode as HTMLElement,\n ];\n\n /**\n * For each selection parent Nodes we try to find target tag [with target class name]\n * It would be saved in parentTag variable\n */\n boundNodes.forEach((parent) => {\n /** Reset tags limit */\n let searchDepthIterable = searchDepth;\n\n while (searchDepthIterable > 0 && parent.parentNode) {\n /**\n * Check tag's name\n */\n if (parent.tagName === tagName) {\n /**\n * Save the result\n */\n parentTag = parent;\n\n /**\n * Optional additional check for class-name mismatching\n */\n if (className && parent.classList && !parent.classList.contains(className)) {\n parentTag = null;\n }\n\n /**\n * If we have found required tag with class then go out from the cycle\n */\n if (parentTag) {\n break;\n }\n }\n\n /**\n * Target tag was not found. Go up to the parent and check it\n */\n parent = parent.parentNode as HTMLElement;\n searchDepthIterable--;\n }\n });\n\n /**\n * Return found tag or null\n */\n return parentTag;\n }\n\n /**\n * Expands selection range to the passed parent node\n *\n * @param {HTMLElement} element\n */\n public expandToTag(element: HTMLElement): void {\n const selection = window.getSelection();\n\n selection.removeAllRanges();\n const range = document.createRange();\n\n range.selectNodeContents(element);\n selection.addRange(range);\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Paragraph=e():t.Paragraph=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";var r=function(){function t(t,e){for(var n=0;n=0&&u.splice(e,1)}function h(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),v(e,t.attrs),p(t,e),e}function v(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function b(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var u=s++;n=a||(a=h(e)),r=m.bind(null,n,u,!1),o=m.bind(null,n,u,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",v(e,t.attrs),p(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=l(t,e);return c(n,e),function(t){for(var o=[],i=0;i any;\n}\n\n/**\n * Codex Editor Util\n */\nexport default class Util {\n /**\n * Custom logger\n *\n * @param {string} msg - message\n * @param {string} type - logging type 'log'|'warn'|'error'|'info'\n * @param {*} args - argument to log with a message\n */\n public static log(msg: string, type: string = 'log', args?: any): void {\n\n if (!args) {\n if (['time', 'timeEnd'].includes(type)) {\n msg = `[codex-editor]: ${msg}`;\n } else {\n args = msg || 'undefined';\n msg = '[codex-editor]: %o';\n }\n } else {\n msg = '[codex-editor]: ' + msg;\n }\n\n try {\n if ( 'console' in window && window.console[ type ] ) {\n if ( args ) { window.console[ type ]( msg, args ); } else { window.console[ type ]( msg ); }\n }\n } catch (e) {\n // do nothing\n }\n }\n\n /**\n * Returns basic keycodes as constants\n * @return {{}}\n */\n static get keyCodes(): object {\n return {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n LEFT: 37,\n UP: 38,\n DOWN: 40,\n RIGHT: 39,\n DELETE: 46,\n META: 91,\n };\n }\n\n /**\n * Fires a promise sequence asyncronically\n *\n * @param {ChainData[]} chains - list or ChainData's\n * @param {Function} success - success callback\n * @param {Function} fallback - callback that fires in case of errors\n *\n * @return {Promise}\n */\n public static async sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise {\n /**\n * Decorator\n *\n * @param {ChainData} chainData\n *\n * @param {Function} successCallback\n * @param {Function} fallbackCallback\n *\n * @return {Promise}\n */\n async function waitNextBlock(\n chainData: ChainData,\n successCallback: (data: any) => void,\n fallbackCallback: (data: any) => void,\n ): Promise {\n try {\n await chainData.function(chainData.data);\n await successCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n } catch (e) {\n fallbackCallback(typeof chainData.data !== 'undefined' ? chainData.data : {});\n }\n }\n\n /**\n * pluck each element from queue\n * First, send resolved Promise as previous value\n * Each plugins \"prepare\" method returns a Promise, that's why\n * reduce current element will not be able to continue while can't get\n * a resolved Promise\n */\n return await chains.reduce(async (previousValue, currentValue) => {\n await previousValue;\n return waitNextBlock(currentValue, success, fallback);\n }, Promise.resolve());\n }\n\n /**\n * Make array from array-like collection\n *\n * @param {ArrayLike} collection\n *\n * @return {Array}\n */\n public static array(collection: ArrayLike): any[] {\n return Array.prototype.slice.call(collection);\n }\n\n /**\n * Check if passed variable is a function\n * @param {*} fn\n * @return {boolean}\n */\n public static isFunction(fn: any): boolean {\n return typeof fn === 'function';\n }\n\n /**\n * Check if passed function is a class\n * @param {function} fn\n * @return {boolean}\n */\n public static isClass(fn: any): boolean {\n return typeof fn === 'function' && /^\\s*class\\s+/.test(fn.toString());\n }\n\n /**\n * Checks if object is empty\n *\n * @param {Object} object\n * @return {boolean}\n */\n public static isEmpty(object: object): boolean {\n return Object.keys(object).length === 0 && object.constructor === Object;\n }\n\n /**\n * Check if passed object is a Promise\n * @param {*} object - object to check\n * @return {Boolean}\n */\n public static isPromise(object: any): boolean {\n return Promise.resolve(object) === object;\n }\n\n /**\n * Check if passed element is contenteditable\n * @param {HTMLElement} element\n * @return {boolean}\n */\n public static isContentEditable(element: HTMLElement): boolean {\n return element.contentEditable === 'true';\n }\n\n /**\n * Delays method execution\n *\n * @param {Function} method\n * @param {Number} timeout\n */\n public static delay(method: (...args: any[]) => any, timeout: number) {\n return function() {\n const context = this,\n args = arguments;\n\n window.setTimeout(() => method.apply(context, args), timeout);\n };\n }\n\n /**\n * Get file extension\n *\n * @param {File} file\n * @return string\n */\n public static getFileExtension(file: File): string {\n return file.name.split('.').pop();\n }\n\n /**\n * Check if string is MIME type\n *\n * @param {string} type\n * @return boolean\n */\n public static isValidMimeType(type: string): boolean {\n return /^[-\\w]+\\/([-+\\w]+|\\*)$/.test(type);\n }\n\n /**\n * Debouncing method\n * Call method after passed time\n *\n * Note that this method returns Function and declared variable need to be called\n *\n * @param {Function} func - function that we're throttling\n * @param {Number} wait - time in milliseconds\n * @param {Boolean} immediate - call now\n * @return {Function}\n */\n public static debounce(func: () => void, wait: number , immediate: boolean): () => void {\n let timeout;\n\n return () => {\n const context = this,\n args = arguments;\n\n const later = () => {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n const callNow = immediate && !timeout;\n\n window.clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n }\n\n /**\n * Copies passed text to the clipboard\n * @param text\n */\n public static copyTextToClipboard(text) {\n const el = Dom.make('div', 'codex-editor-clipboard', {\n innerHTML: text,\n });\n\n document.body.appendChild(el);\n\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNode(el);\n\n window.getSelection().removeAllRanges();\n selection.addRange(range);\n\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n}\n","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \":root {\\n /**\\n * Selection color\\n */\\n --selectionColor: #a8d6ff;\\n\\n /**\\n * Toolbar buttons\\n */\\n --bg-light: #eff2f5;\\n\\n /**\\n * All gray texts: placeholders, settings\\n */\\n --grayText: #707684;\\n\\n /**\\n * Blue icons\\n */\\n --color-active-icon: #388AE5;\\n\\n /**\\n * Gray border, loaders\\n */\\n --color-gray-border: rgba(201, 201, 204, 0.48);\\n\\n /**\\n * Block content width\\n */\\n --content-width: 650px;\\n\\n /**\\n * Toolbar buttons height and width\\n */\\n --toolbar-buttons-size: 34px;\\n\\n /**\\n * Toolbar Plus Button and Toolbox buttons height and width\\n */\\n --toolbox-buttons-size: 24px;\\n\\n /**\\n * Confirm deletion bg\\n */\\n --color-confirm: #E24A4A;\\n}\\n/**\\n* Editor wrapper\\n*/\\n.codex-editor {\\n position: relative;\\n box-sizing: border-box;\\n}\\n.codex-editor .hide {\\n display: none;\\n }\\n.codex-editor__redactor {\\n padding-bottom: 300px;\\n }\\n.codex-editor-copyable {\\n position: absolute;\\n height: 1px;\\n width: 1px;\\n top: -400%;\\n opacity: 0.001;\\n }\\n.codex-editor svg {\\n fill: currentColor;\\n vertical-align: middle;\\n max-height: 100%;\\n }\\n/**\\n * Set color for native selection\\n */\\n::-moz-selection{\\n background-color: #a8d6ff;\\n background-color: var(--selectionColor);\\n}\\n::selection{\\n background-color: #a8d6ff;\\n background-color: var(--selectionColor);\\n}\\n/**\\n * Add placeholder to content editable elements with data attribute\\n * data-placeholder=\\\"Hello world!\\\"\\n */\\n[contentEditable=true][data-placeholder]:empty::before{\\n content: attr(data-placeholder);\\n color: #707684;\\n color: var(--grayText);\\n font-weight: normal;\\n}\\n[contentEditable=true][data-placeholder]:empty:focus::before {\\n opacity: 0.3;\\n}\\n.ce-toolbar {\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 0;\\n /*opacity: 0;*/\\n /*visibility: hidden;*/\\n transition: opacity 100ms ease;\\n will-change: opacity, transform;\\n display: none;\\n}\\n.ce-toolbar--opened {\\n display: block;\\n /*opacity: 1;*/\\n /*visibility: visible;*/\\n }\\n.ce-toolbar__content {\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n position: relative;\\n }\\n.ce-toolbar__plus {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center\\n }\\n.ce-toolbar__plus:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbar__plus {\\n\\n position: absolute;\\n left: calc(calc(24px + 10px) * -1);\\n left: calc(calc(var(--toolbox-buttons-size) + 10px) * -1);\\n }\\n.ce-toolbar__plus:hover,\\n .ce-toolbar__plus--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbar__plus--active{\\n animation: bounceIn 0.75s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-toolbar__plus--hidden {\\n display: none;\\n }\\n.ce-toolbar__plus,\\n .ce-toolbar .ce-toolbox {\\n top: 50%;\\n transform: translateY(-50%);\\n }\\n/**\\n * Block actions Zone\\n * -------------------------\\n */\\n.ce-toolbar__actions {\\n position: absolute;\\n right: 0;\\n top: 10px;\\n padding-right: 16px;\\n }\\n.ce-toolbar__actions-buttons {\\n text-align: right;\\n }\\n.ce-toolbar__settings-btn {\\n display: inline-block;\\n width: 24px;\\n height: 24px;\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n }\\n.ce-toolbox {\\n position: absolute;\\n visibility: hidden;\\n transition: opacity 100ms ease;\\n will-change: opacity;\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-direction: row;\\n flex-direction: row;\\n}\\n.ce-toolbox--opened {\\n opacity: 1;\\n visibility: visible;\\n }\\n.ce-toolbox__button {\\n color: #707684;\\n color: var(--grayText);\\n cursor: pointer;\\n width: 24px;\\n width: var(--toolbox-buttons-size);\\n height: 24px;\\n height: var(--toolbox-buttons-size);\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -ms-flex-align: center;\\n align-items: center;\\n }\\n.ce-toolbox__button:not(:last-of-type){\\n margin-right: 10px;\\n }\\n.ce-toolbox__button:hover,\\n .ce-toolbox__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-toolbox__button--active{\\n animation: bounceIn 0.75s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-inline-toolbar {\\n position: absolute;\\n background-color: #FFFFFF;\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-inline-toolbar::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-inline-toolbar {\\n padding: 6px;\\n transform: translateX(-50%);\\n display: none;\\n box-shadow: 0 6px 12px -6px rgba(131, 147, 173, 0.46),\\n 5px -12px 34px -13px rgba(97, 105, 134, 0.6),\\n 0 26px 52px 3px rgba(147, 165, 186, 0.24);\\n}\\n.ce-inline-toolbar--showed {\\n display: block;\\n }\\n.ce-inline-toolbar [hidden] {\\n display: none !important;\\n }\\n.ce-inline-tool {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.ce-inline-tool:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-inline-tool:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-inline-tool {\\n line-height: normal;\\n}\\n.ce-inline-tool > svg,\\n .ce-inline-tool .icon {\\n margin: auto;\\n }\\n.ce-inline-tool--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-inline-tool--last {\\n margin-right: 0 !important;\\n }\\n.ce-inline-tool--link .icon {\\n margin-top: -2px;\\n }\\n.ce-inline-tool--link .icon--unlink {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--link {\\n display: none;\\n }\\n.ce-inline-tool--unlink .icon--unlink {\\n display: inline-block;\\n }\\n.ce-inline-tool-input {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n outline: none;\\n border: 0;\\n border-radius: 3px;\\n margin: 6px 0 0;\\n font-size: 13px;\\n padding: 8px;\\n width: 100%;\\n box-sizing: border-box;\\n display: none\\n }\\n.ce-inline-tool-input:-ms-input-placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input::placeholder {\\n color: #707684;\\n color: var(--grayText);\\n }\\n.ce-inline-tool-input--showed {\\n display: block;\\n }\\n.ce-settings {\\n position: absolute;\\n background-color: #FFFFFF;\\n box-shadow: 0 8px 23px -6px rgba(21,40,54,0.31), 22px -14px 34px -18px rgba(33,48,73,0.26);\\n border-radius: 4px;\\n z-index: 2\\n}\\n.ce-settings::before {\\n content: '';\\n width: 15px;\\n height: 15px;\\n position: absolute;\\n top: -7px;\\n left: 50%;\\n margin-left: -7px;\\n transform: rotate(-45deg);\\n background-color: #fff;\\n z-index: -1;\\n }\\n.ce-settings {\\n right: 5px;\\n top: 35px;\\n min-width: 124px\\n}\\n.ce-settings::before{\\n left: auto;\\n right: 12px;\\n }\\n.ce-settings {\\n\\n display: none;\\n}\\n.ce-settings--opened {\\n display: block;\\n animation-duration: 0.5s;\\n animation-name: bounceIn;\\n }\\n.ce-settings__plugin-zone:not(:empty){\\n padding: 6px 6px 0;\\n }\\n.ce-settings__default-zone:not(:empty){\\n padding: 6px;\\n }\\n.ce-settings__button {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n }\\n.ce-settings__button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.ce-settings__button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.ce-settings__button {\\n line-height: 32px;\\n }\\n.ce-settings__button > svg,\\n .ce-settings__button .icon {\\n margin: auto;\\n }\\n.ce-settings__button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--disabled {\\n cursor: not-allowed !important;\\n opacity: .3;\\n }\\n.ce-settings__button--selected {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.ce-settings__button--delete {\\n transition: background-color 300ms ease;\\n will-change: background-color;\\n }\\n.ce-settings__button--delete .icon {\\n transition: transform 200ms ease-out;\\n will-change: transform;\\n }\\n.ce-settings__button--confirm {\\n background-color: #E24A4A;\\n background-color: var(--color-confirm);\\n color: #fff\\n }\\n.ce-settings__button--confirm:hover {\\n background-color: rgb(213, 74, 74) !important;\\n background-color: rgb(213, 74, 74) !important;\\n }\\n.ce-settings__button--confirm .icon {\\n transform: rotate(90deg);\\n }\\n.ce-block:first-of-type {\\n margin-top: 0;\\n }\\n.ce-block--focused {\\n background-image: linear-gradient(17deg, rgba(243, 248, 255, 0.03) 63.45%, rgba(207, 214, 229, 0.27) 98%);\\n border-radius: 3px;\\n }\\n.ce-block--selected .ce-block__content {\\n background: #a8d6ff;\\n background: var(--selectionColor);\\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\n animation: selectionBounce 0.2s 1;\\n animation-fill-mode: forwards;\\n }\\n.ce-block--selected .ce-block__content img {\\n opacity: 0.55;\\n }\\n.ce-block--stretched .ce-block__content {\\n max-width: none;\\n }\\n.ce-block__content {\\n position: relative;\\n max-width: 650px;\\n max-width: var(--content-width);\\n margin: 0 auto;\\n }\\n.ce-block--drop-target .ce-block__content:before {\\n content: '';\\n position: absolute;\\n top: 100%;\\n left: -20px;\\n margin-top: -1px;\\n height: 8px;\\n width: 8px;\\n border: solid #388AE5;\\n border: solid var(--color-active-icon);\\n border-width: 1px 1px 0 0;\\n transform-origin: right;\\n transform: rotate(45deg);\\n }\\n.ce-block--drop-target .ce-block__content:after {\\n content: '';\\n position: absolute;\\n top: 100%;\\n height: 1px;\\n width: 100%;\\n color: #388AE5;\\n color: var(--color-active-icon);\\n background: repeating-linear-gradient(\\n 90deg,\\n #388AE5,\\n #388AE5 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n background: repeating-linear-gradient(\\n 90deg,\\n var(--color-active-icon),\\n var(--color-active-icon) 1px,\\n #fff 1px,\\n #fff 6px\\n );\\n }\\n.wobble {\\n animation-name: wobble;\\n animation-duration: 400ms;\\n}\\n/**\\n * @author Nick Pettit - https://github.com/nickpettit/glide\\n */\\n@keyframes wobble {\\n from {\\n transform: translate3d(0, 0, 0);\\n }\\n\\n 15% {\\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -5deg);\\n }\\n\\n 30% {\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 3deg);\\n }\\n\\n 45% {\\n transform: translate3d(-3%, 0, 0) rotate3d(0, 0, 1, -3deg);\\n }\\n\\n 60% {\\n transform: translate3d(2%, 0, 0) rotate3d(0, 0, 1, 2deg);\\n }\\n\\n 75% {\\n transform: translate3d(-1%, 0, 0) rotate3d(0, 0, 1, -1deg);\\n }\\n\\n to {\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes bounceIn {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 0% {\\n transform: scale3d(0.9, 0.9, 0.9);\\n }\\n\\n 20% {\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n\\n 60% {\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n@keyframes selectionBounce {\\n from,\\n 20%,\\n 40%,\\n 60%,\\n 80%,\\n to {\\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\\n }\\n\\n 50% {\\n transform: scale3d(1.01, 1.01, 1.01);\\n }\\n\\n 70% {\\n transform: scale3d(1, 1, 1);\\n }\\n}\\n/**\\n * Block Tool wrapper\\n */\\n.cdx-block {\\n padding: 0.7em 0;\\n}\\n/**\\n * Input\\n */\\n.cdx-input {\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n box-shadow: inset 0 1px 2px 0 rgba(35, 44, 72, 0.06);\\n border-radius: 3px;\\n padding: 10px 12px;\\n outline: none;\\n width: 100%;\\n box-sizing: border-box;\\n}\\n/**\\n * Settings\\n */\\n.cdx-settings-button {\\n display: -ms-inline-flexbox;\\n display: inline-flex;\\n width: 34px;\\n height: 34px;\\n line-height: 34px;\\n text-align: center;\\n border-radius: 3px;\\n cursor: pointer;\\n border: 0;\\n outline: none;\\n background-color: transparent;\\n vertical-align: bottom;\\n color: #707684;\\n color: var(--grayText)\\n}\\n.cdx-settings-button:not(:last-of-type){\\n margin-right: 5px;\\n }\\n.cdx-settings-button:hover {\\n background-color: #eff2f5;\\n background-color: var(--bg-light);\\n }\\n.cdx-settings-button > svg,\\n .cdx-settings-button .icon {\\n margin: auto;\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n.cdx-settings-button--active {\\n color: #388AE5;\\n color: var(--color-active-icon);\\n }\\n/**\\n * Loader\\n */\\n.cdx-loader {\\n position: relative;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border)\\n}\\n.cdx-loader::before {\\n content: '';\\n position: absolute;\\n left: 50%;\\n top: 50%;\\n width: 18px;\\n height: 18px;\\n margin: -11px 0 0 -11px;\\n border: 2px solid rgba(201, 201, 204, 0.48);\\n border: 2px solid var(--color-gray-border);\\n border-left-color: #388AE5;\\n border-left-color: var(--color-active-icon);\\n border-radius: 50%;\\n animation: cdxRotation 1.2s infinite linear;\\n }\\n@keyframes cdxRotation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n/**\\n * Button\\n */\\n.cdx-button {\\n padding: 13px;\\n border-radius: 3px;\\n border: 1px solid rgba(201, 201, 204, 0.48);\\n border: 1px solid var(--color-gray-border);\\n font-size: 14.9px;\\n background: #fff;\\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\n color: #707684;\\n color: var(--grayText);\\n text-align: center;\\n cursor: pointer\\n}\\n.cdx-button:hover {\\n background: #FBFCFE;\\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\n }\\n.cdx-button svg {\\n height: 20px;\\n margin-right: 0.2em;\\n margin-top: -2px;\\n }\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://CodexEditor/webpack/universalModuleDefinition","webpack://CodexEditor/webpack/bootstrap","webpack://CodexEditor/./build/sprite.svg","webpack://CodexEditor/./node_modules/@babel/polyfill/lib/noConflict.js","webpack://CodexEditor/./node_modules/@babel/polyfill/noConflict.js","webpack://CodexEditor/./node_modules/@babel/register/lib/browser.js","webpack://CodexEditor/./node_modules/@babel/register/lib/index.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/createClass.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/inherits.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://CodexEditor/./node_modules/@babel/runtime/helpers/typeof.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime-module.js","webpack://CodexEditor/./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./node_modules/@babel/runtime/regenerator/index.js","webpack://CodexEditor/./node_modules/@codexteam/shortcuts/lib/shortcuts.js","webpack://CodexEditor/./node_modules/codex-notifier/dist/bundle.js","webpack://CodexEditor/./node_modules/core-js/es6/index.js","webpack://CodexEditor/./node_modules/core-js/fn/array/includes.js","webpack://CodexEditor/./node_modules/core-js/fn/object/entries.js","webpack://CodexEditor/./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/fn/object/values.js","webpack://CodexEditor/./node_modules/core-js/fn/promise/finally.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-end.js","webpack://CodexEditor/./node_modules/core-js/fn/string/pad-start.js","webpack://CodexEditor/./node_modules/core-js/fn/symbol/async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-function.js","webpack://CodexEditor/./node_modules/core-js/modules/_a-number-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_add-to-unscopables.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/_an-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-fill.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-includes.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-methods.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_array-species-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_bind.js","webpack://CodexEditor/./node_modules/core-js/modules/_classof.js","webpack://CodexEditor/./node_modules/core-js/modules/_cof.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-strong.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection-weak.js","webpack://CodexEditor/./node_modules/core-js/modules/_collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_core.js","webpack://CodexEditor/./node_modules/core-js/modules/_create-property.js","webpack://CodexEditor/./node_modules/core-js/modules/_ctx.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/_date-to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_defined.js","webpack://CodexEditor/./node_modules/core-js/modules/_descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/_dom-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_enum-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_export.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails-is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_fails.js","webpack://CodexEditor/./node_modules/core-js/modules/_fix-re-wks.js","webpack://CodexEditor/./node_modules/core-js/modules/_flags.js","webpack://CodexEditor/./node_modules/core-js/modules/_for-of.js","webpack://CodexEditor/./node_modules/core-js/modules/_global.js","webpack://CodexEditor/./node_modules/core-js/modules/_has.js","webpack://CodexEditor/./node_modules/core-js/modules/_hide.js","webpack://CodexEditor/./node_modules/core-js/modules/_html.js","webpack://CodexEditor/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_inherit-if-required.js","webpack://CodexEditor/./node_modules/core-js/modules/_invoke.js","webpack://CodexEditor/./node_modules/core-js/modules/_iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array-iter.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_is-regexp.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-call.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-detect.js","webpack://CodexEditor/./node_modules/core-js/modules/_iter-step.js","webpack://CodexEditor/./node_modules/core-js/modules/_iterators.js","webpack://CodexEditor/./node_modules/core-js/modules/_library.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-fround.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/_math-sign.js","webpack://CodexEditor/./node_modules/core-js/modules/_meta.js","webpack://CodexEditor/./node_modules/core-js/modules/_microtask.js","webpack://CodexEditor/./node_modules/core-js/modules/_new-promise-capability.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-assign.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-create.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dp.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-dps.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopd.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gopn.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gops.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-gpo.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys-internal.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-pie.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-sap.js","webpack://CodexEditor/./node_modules/core-js/modules/_object-to-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/_parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/_perform.js","webpack://CodexEditor/./node_modules/core-js/modules/_promise-resolve.js","webpack://CodexEditor/./node_modules/core-js/modules/_property-desc.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine-all.js","webpack://CodexEditor/./node_modules/core-js/modules/_redefine.js","webpack://CodexEditor/./node_modules/core-js/modules/_same-value.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-proto.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-species.js","webpack://CodexEditor/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared-key.js","webpack://CodexEditor/./node_modules/core-js/modules/_shared.js","webpack://CodexEditor/./node_modules/core-js/modules/_species-constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/_strict-method.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-at.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-context.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-html.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-pad.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-trim.js","webpack://CodexEditor/./node_modules/core-js/modules/_string-ws.js","webpack://CodexEditor/./node_modules/core-js/modules/_task.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-absolute-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-index.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-iobject.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-length.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-object.js","webpack://CodexEditor/./node_modules/core-js/modules/_to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-array.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/_typed.js","webpack://CodexEditor/./node_modules/core-js/modules/_uid.js","webpack://CodexEditor/./node_modules/core-js/modules/_user-agent.js","webpack://CodexEditor/./node_modules/core-js/modules/_validate-collection.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-define.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks-ext.js","webpack://CodexEditor/./node_modules/core-js/modules/_wks.js","webpack://CodexEditor/./node_modules/core-js/modules/core.get-iterator-method.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.copy-within.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.every.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.fill.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.filter.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find-index.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.find.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.for-each.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.from.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.is-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.join.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.last-index-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce-right.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.reduce.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.slice.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.some.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.sort.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.array.species.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.now.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-json.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-primitive.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.date.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.bind.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.has-instance.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.function.name.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.acosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.asinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.atanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.clz32.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.cosh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.expm1.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.fround.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.hypot.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.imul.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log10.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log1p.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.log2.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.sinh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.tanh.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.math.trunc.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.epsilon.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-finite.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-nan.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.number.to-precision.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.assign.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.create.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-properties.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.freeze.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-frozen.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is-sealed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.is.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.seal.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.object.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-float.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.parse-int.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.promise.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.get.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.has.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.reflect.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.constructor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.flags.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.match.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.replace.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.search.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.split.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.regexp.to-string.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.set.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.anchor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.big.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.blink.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.bold.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.code-point-at.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.ends-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fixed.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontcolor.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.fontsize.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.from-code-point.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.italics.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.link.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.raw.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.repeat.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.small.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.starts-with.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.strike.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sub.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.sup.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.string.trim.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.symbol.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.data-view.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.float64-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.int8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-map.js","webpack://CodexEditor/./node_modules/core-js/modules/es6.weak-set.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.array.includes.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.entries.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.object.values.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.promise.finally.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-end.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.string.pad-start.js","webpack://CodexEditor/./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://CodexEditor/./node_modules/core-js/modules/web.dom.iterable.js","webpack://CodexEditor/./node_modules/core-js/modules/web.immediate.js","webpack://CodexEditor/./node_modules/core-js/modules/web.timers.js","webpack://CodexEditor/./node_modules/core-js/web/index.js","webpack://CodexEditor/./node_modules/css-loader/lib/css-base.js","webpack://CodexEditor/./node_modules/html-janitor/src/html-janitor.js","webpack://CodexEditor/./node_modules/regenerator-runtime/runtime.js","webpack://CodexEditor/./src/codex.ts","webpack://CodexEditor/./src/components/__module.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-delete.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-down.ts","webpack://CodexEditor/./src/components/block-tunes/block-tune-move-up.ts","webpack://CodexEditor/./src/components/block.ts","webpack://CodexEditor/./src/components/blocks.ts","webpack://CodexEditor/./src/components/core.ts","webpack://CodexEditor/./src/components/dom.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-bold.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-italic.ts","webpack://CodexEditor/./src/components/inline-tools/inline-tool-link.ts","webpack://CodexEditor/./src/components/modules sync ^\\.\\/.*$","webpack://CodexEditor/./src/components/modules/api/blocks.ts","webpack://CodexEditor/./src/components/modules/api/caret.ts","webpack://CodexEditor/./src/components/modules/api/events.ts","webpack://CodexEditor/./src/components/modules/api/index.ts","webpack://CodexEditor/./src/components/modules/api/listeners.ts","webpack://CodexEditor/./src/components/modules/api/notifier.ts","webpack://CodexEditor/./src/components/modules/api/sanitizer.ts","webpack://CodexEditor/./src/components/modules/api/saver.ts","webpack://CodexEditor/./src/components/modules/api/selection.ts","webpack://CodexEditor/./src/components/modules/api/styles.ts","webpack://CodexEditor/./src/components/modules/api/toolbar.ts","webpack://CodexEditor/./src/components/modules/blockEvents.ts","webpack://CodexEditor/./src/components/modules/blockManager.ts","webpack://CodexEditor/./src/components/modules/blockSelection.ts","webpack://CodexEditor/./src/components/modules/caret.ts","webpack://CodexEditor/./src/components/modules/dragNDrop.ts","webpack://CodexEditor/./src/components/modules/events.ts","webpack://CodexEditor/./src/components/modules/listeners.ts","webpack://CodexEditor/./src/components/modules/modificationsObserver.ts","webpack://CodexEditor/./src/components/modules/notifier.ts","webpack://CodexEditor/./src/components/modules/paste.ts","webpack://CodexEditor/./src/components/modules/renderer.ts","webpack://CodexEditor/./src/components/modules/sanitizer.ts","webpack://CodexEditor/./src/components/modules/saver.ts","webpack://CodexEditor/./src/components/modules/shortcuts.ts","webpack://CodexEditor/./src/components/modules/toolbar/blockSettings.ts","webpack://CodexEditor/./src/components/modules/toolbar/index.ts","webpack://CodexEditor/./src/components/modules/toolbar/inline.ts","webpack://CodexEditor/./src/components/modules/toolbar/toolbox.ts","webpack://CodexEditor/./src/components/modules/tools.ts","webpack://CodexEditor/./src/components/modules/ui.ts","webpack://CodexEditor/./src/components/polyfills.ts","webpack://CodexEditor/./src/components/selection.ts","webpack://CodexEditor/./src/components/tools/paragraph/dist/bundle.js","webpack://CodexEditor/./src/components/utils.ts","webpack://CodexEditor/./src/styles/main.css"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","default","revert","args","register","node","assign","arr","Array","isArray","arr2","length","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","arguments","apply","err","undefined","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","constructor","obj","iter","iterator","toString","from","_arr","_n","_d","_e","_s","_i","next","push","_typeof","assertThisInitialized","_setPrototypeOf","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof2","g","Function","hadRuntime","regeneratorRuntime","getOwnPropertyNames","indexOf","oldRuntime","e","global","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","result","keys","reverse","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","invoke","unwrapped","return","pushTryEntry","locs","iteratorMethod","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","BACKSPACE","ENTER","ESCAPE","LEFT","UP","RIGHT","DOWN","INSERT","DELETE","u","CMD","SHIFT","ALT","commands","parseShortcutName","element","on","callback","executeShortcut","execute","addEventListener","split","toUpperCase","includes","ctrlKey","metaKey","shiftKey","altKey","a","keyCode","removeEventListener","show","message","getWrapper","document","body","appendChild","time","confirm","prompt","alert","setTimeout","remove","classList","add","hmr","transform","insertInto","locals","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","concat","join","all","atob","querySelector","HTMLIFrameElement","contentDocument","head","f","id","refs","parts","x","base","css","media","sourceMap","insertAt","nextSibling","insertBefore","firstChild","before","parentNode","removeChild","splice","b","createElement","attrs","setAttribute","singleton","h","URL","createObjectURL","revokeObjectURL","Blob","rel","convertToAbsoluteUrls","href","styleSheet","cssText","createTextNode","DEBUG","y","filter","Boolean","childNodes","location","protocol","host","pathname","replace","trim","test","style","innerHTML","cancelHandler","okHandler","okText","cancelText","placeholder","inputType","entries","getOwnPropertyDescriptors","String","padEnd","padStart","it","cof","msg","UNSCOPABLES","ArrayProto","forbiddenField","isObject","toObject","toAbsoluteIndex","toLength","copyWithin","start","len","to","end","count","Math","min","inc","aLen","index","endPos","toIObject","IS_INCLUDES","$this","el","fromIndex","ctx","IObject","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","that","val","res","aFunction","memo","isRight","SPECIES","original","speciesConstructor","arraySlice","factories","partArgs","bound","construct","TAG","ARG","tryGet","callee","dP","redefineAll","anInstance","forOf","$iterDefine","step","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","_f","k","getConstructor","wrapper","NAME","ADDER","_t","_l","clear","data","delete","v","has","def","setStrong","iterated","kind","_k","getWeak","anObject","createArrayMethod","$has","arrayFind","arrayFindIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","store","set","ufstore","$export","redefine","meta","fails","$iterDetect","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","Base","proto","fixMethod","KEY","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","NEED","core","version","__e","$defineProperty","createDesc","getTime","Date","$toISOString","toISOString","lz","num","NaN","isFinite","RangeError","getUTCFullYear","getUTCMilliseconds","abs","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toPrimitive","hint","is","getKeys","gOPS","pIE","getSymbols","symbols","isEnum","hide","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","MATCH","re","exec","defined","wks","SYMBOL","fns","strfn","rxfn","RegExp","string","ignoreCase","multiline","unicode","sticky","isArrayIter","getIterFn","BREAK","RETURN","ITERATOR","iterFn","__g","documentElement","un","propertyIsEnumerable","Iterators","floor","isRegExp","ret","LIBRARY","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","FORCED","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","SAFE_CLOSING","riter","skipClosing","safe","$expm1","expm1","sign","pow","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","Infinity","log1p","log","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","onFreeze","macrotask","Observer","MutationObserver","WebKitMutationObserver","process","isNode","last","notify","flush","parent","domain","exit","enter","nextTick","navigator","standalone","promise","toggle","observe","characterData","task","$$resolve","$$reject","$assign","j","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","isEntries","Reflect","ownKeys","$parseFloat","parseFloat","$trim","str","$parseInt","parseInt","ws","hex","radix","newPromiseCapability","promiseCapability","bitmap","SRC","$toString","TPL","inspectSource","isFunction","check","buggy","tag","stat","shared","uid","copyright","toInteger","TO_STRING","pos","charCodeAt","searchString","quot","createHTML","attribute","p1","toLowerCase","repeat","maxLength","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","ceil","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","defer","channel","port","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","now","port2","port1","onmessage","postMessage","importScripts","max","number","valueOf","$typed","$buffer","propertyDesc","toIndex","classof","createArrayIncludes","ArrayIterators","arrayFill","arrayCopyWithin","$DP","$GOPD","Uint8Array","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","lastIndexOf","arrayReduce","reduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arrayToString","arrayToLocaleString","toLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","offset","speciesFromList","list","fromList","addGetter","internal","$from","mapfn","mapping","$of","TO_LOCALE_BUG","$toLocaleString","every","fill","find","predicate","findIndex","searchElement","separator","middle","some","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","CLAMPED","GETTER","SETTER","TypedArray","TAC","ABV","TypedArrayPrototype","addElement","round","setter","$offset","$length","byteLength","klass","$len","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","PROTOTYPE","WRONG_INDEX","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Typed","TypedArrayConstructors","px","random","userAgent","wksExt","USE_SYMBOL","getIteratorMethod","$every","$filter","$find","forced","$forEach","STRICT","createProperty","$indexOf","NEGATIVE_ZERO","addToUnscopables","Arguments","$reduce","upTo","size","cloned","$some","$sort","toJSON","pv","TO_PRIMITIVE","DateProto","HAS_INSTANCE","FunctionProto","FProto","nameRE","match","strong","sqrt","$acosh","acosh","Number","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","div","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","aNumberValue","$toFixed","toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$fails","$toPrecision","toPrecision","precision","$freeze","$getOwnPropertyDescriptor","$getPrototypeOf","$isExtensible","$isFrozen","$isSealed","$preventExtensions","$seal","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","console","unhandled","isUnhandled","emit","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","setProto","existingDescriptor","ownDesc","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","flags","$match","regexp","REPLACE","$replace","searchValue","replaceValue","SEARCH","$search","SPLIT","$split","_split","$push","NPCG","limit","separator2","lastIndex","lastLength","output","lastLastIndex","splitLimit","separatorCopy","$at","codePointAt","$endsWith","endsWith","endPosition","search","color","fromCharCode","$fromCodePoint","fromCodePoint","point","url","raw","callSite","tpl","$startsWith","startsWith","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","replacer","$replacer","$isView","isView","fin","viewS","viewT","init","InternalMap","each","weak","tmp","$WeakMap","freeze","$includes","getDesc","$values","finally","onFinally","$pad","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","$task","MSIE","boundArgs","setInterval","useSourceMap","item","content","cssMapping","sourceMapping","toComment","sourceURLs","cssWithMappingToString","mediaQuery","alreadyImportedModules","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","HTMLJanitor","config","tagDefinitions","tags","validConfigValues","blockElementNames","isBlockElement","nodeName","inlineElementNames","isInlineElement","getAllowedAttrs","shouldRejectNode","allowedAttrs","shouldRejectAttr","attr","attrName","clean","sandbox","implementation","createHTMLDocument","_sanitize","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","SHOW_ELEMENT","SHOW_COMMENT","nodeType","Node","TEXT_NODE","COMMENT_NODE","containsBlockElement","isInline","isNotTopContainer","isNestedBlockElement","keepNestedBlockElements","removeAttribute","previousElementSibling","nextElementSibling","CodexEditor","configuration","_this","_classCallCheck2","onReady","editor","_core","isReady","exportAPI","_this2","field","destroy","moduleInstances","Listeners","removeAll","UI","ModificationsObserver","API","Module","_ref","Editor","DeleteTune","api","CSS","button","buttonDelete","buttonConfirm","nodes","resetConfirmation","setConfirmation","_dom","make","svg","listeners","handleClick","needConfirmation","events","off","blocks","stopPropagation","MoveDownTune","animation","moveDownButton","currentBlockIndex","getCurrentBlockIndex","getBlocksCount","nextBlockElement","getBlockByIndex","nextBlockCoords","getBoundingClientRect","scrollOffset","innerHeight","offsetHeight","top","scrollY","scrollTo","swap","MoveUpTune","moveUpButton","scrollUpOffset","currentBlockElement","previousBlockElement","currentBlockCoords","previousBlockCoords","scrollBy","Block","toolName","toolInstance","toolClass","settings","apiMethods","inputIndex","tool","class","holder","compose","tunes","makeTunes","methodName","params","merge","save","pluginsContent","extractedBlock","measuringStart","performance","finishedExtraction","measuringEnd","_utils","isValid","tunesList","_blockTuneMoveUp","_blockTuneDelete","_blockTuneMoveDown","tune","tunesElement","createDocumentFragment","append","render","contentNode","selector","inputs","array","querySelectorAll","input","contains","sanitize","contentless","emptyText","isEmpty","emptyMedia","hasMedia","focused","selected","wrapperStretched","dropTarget","Blocks","workingArea","children","block","insert","second","secondBlock","deleteCount","previousBlock","insertAdjacentElement","nextBlock","targetBlock","newBlock","contextRequire","filename","Core","onFail","_asyncToGenerator2","_regenerator","_callee","_context","holderId","tools","constructModules","configureModules","modulesToPrepare","_callee3","_context3","prepare","t0","Renderer","_this3","getModulesDiff","diff","moduleName","initialBlock","initialBlockData","sanitizer","hideToolbar","onChange","Dom","tagName","_el$classList","classNames","_toConsumableArray2","width","height","icon","createElementNS","elements","prepend","el1","el2","temp","getElementById","atLast","child","sibling","ELEMENT_NODE","nodeChild","isSingleTag","isNativeInput","getDeepestNode","DOCUMENT_FRAGMENT_NODE","isElement","textContent","leafs","isNodeEmpty","shift","isLeaf","leaf","childElementCount","BoldInlineTool","commandName","buttonActive","buttonModifier","range","execCommand","selection","isActive","queryCommandState","ItalicInlineTool","LinkInlineTool","commandLink","commandUnlink","ENTER_KEY","buttonUnlink","inputShowed","inputOpened","inlineToolbar","toolbar","_selection","enterPressed","parentAnchor","findParentTag","expandToTag","unlink","closeActions","checkState","toggleActions","anchorTag","openActions","hrefAttr","getAttribute","needFocus","focus","clearSavedSelection","clearSaved","restore","preventDefault","validateURL","prepareLink","insertLink","stopImmediatePropagation","link","addProtocol","isInternal","isAnchor","substring","isProtocolRelative","./api","./api/","./api/blocks","./api/blocks.ts","./api/caret","./api/caret.ts","./api/events","./api/events.ts","./api/index","./api/index.ts","./api/listeners","./api/listeners.ts","./api/notifier","./api/notifier.ts","./api/sanitizer","./api/sanitizer.ts","./api/saver","./api/saver.ts","./api/selection","./api/selection.ts","./api/styles","./api/styles.ts","./api/toolbar","./api/toolbar.ts","./blockEvents","./blockEvents.ts","./blockManager","./blockManager.ts","./blockSelection","./blockSelection.ts","./caret","./caret.ts","./dragNDrop","./dragNDrop.ts","./events","./events.ts","./listeners","./listeners.ts","./modificationsObserver","./modificationsObserver.ts","./notifier","./notifier.ts","./paste","./paste.ts","./renderer","./renderer.ts","./sanitizer","./sanitizer.ts","./saver","./saver.ts","./shortcuts","./shortcuts.ts","./toolbar","./toolbar/","./toolbar/blockSettings","./toolbar/blockSettings.ts","./toolbar/index","./toolbar/index.ts","./toolbar/inline","./toolbar/inline.ts","./toolbar/toolbox","./toolbar/toolbox.ts","./tools","./tools.ts","./ui","./ui.ts","webpackContext","req","webpackContextResolve","BlocksAPI","BlockManager","Toolbar","move","blockIndex","removeBlock","Caret","setToBlock","currentBlock","navigatePrevious","status","stretched","stretchBlock","insertNewBlock","CaretAPI","EventsAPI","eventName","Events","caret","ListenersAPI","notifier","NotifierAPI","SanitizerAPI","saver","SaverAPI","SelectionAPI","styles","StylesAPI","classes","ToolbarAPI","eventType","useCapture","options","Notifier","taintString","Sanitizer","Saver","className","_module","inlineToolButton","inlineToolButtonActive","loader","settingsButton","settingsButtonActive","BlockEvents","beforeKeydownProcessing","keyCodes","backspace","arrowRightAndDown","arrowLeftAndUp","TAB","tabPressed","ESC","escapePressed","defaultHandler","needToolbarClosing","cmdKey","clearFocused","BlockSelection","clearSelection","InlineToolbar","handleShowingEvent","direction","opened","Toolbox","plusButton","getBlockByChildNode","Tools","available","apiSettings","IS_ENABLED_LINE_BREAKS","getActiveTool","toolButtonActivate","newCurrent","isInitial","BM","isFirstBlock","canMergeBlocks","isAtStart","blockToMerge","mergeable","createShadow","mergeBlocks","restoreCaret","normalize","navigateNext","toolboxItemSelected","flippingToolboxItems","_blocks","redactor","Proxy","_block","bindEvents","newIndex","composeBlock","blockToMergeIndex","blockToMergeData","mergeWith","firstInput","extractedFragment","extractFragmentFromCaretPosition","text","firstLevelBlock","closest","childNode","caretPosition","_caret","positions","parentFirstLevelBlock","setToInput","needAddInitialBlock","dropPointer","_this$Editor","keydown","mouseUp","keyup","dragOver","dragLeave","isLastBlock","nextBlocks","previousBlocks","needToSelectAll","Shortcuts","handleCommandA","handleCommandC","restoreSelection","anyBlockSelected","selectAllBlocks","selectBlockByIndex","fakeClipboard","cleanHTML","sanitizerConfig","fragment","copyTextToClipboard","removeAllRanges","h1","h2","h3","h4","h5","h6","ol","ul","li","br","img","position","START","END","lastInput","currentInput","nodeToSet","contentLength","getContentLength","delay","setCurrentBlockByChildNode","createRange","selectionStart","selectionEnd","setStart","setEnd","addRange","_range$getBoundingCli","bottom","_window","lastBlock","insertAtEnd","rangeCount","selectRange","getRangeAt","currentBlockInput","deleteContents","cloneRange","selectNodeContents","endContainer","endOffset","extractContents","force","_this$Editor$BlockMan","nextContentfulBlock","nextInput","isAtEnd","_this$Editor$BlockMan2","previousContentfulBlock","previousInput","shadowCaret","sel","newRange","selectNode","current","siblings","contentEditable","isCollapsed","anchorNode","firstNode","firstLetterPosition","leftSiblings","getHigherLevelSiblings","nothingAtLeft","anchorOffset","lastNode","nothingAtRight","rightTrimmedText","DragNDrop","isStartedAtEditor","processDrop","dropEvent","Paste","isAtEditor","processDataTransfer","dataTransfer","_x","dragEvent","subscribers","previousData","currentHandler","newData","allListeners","assignedEventData","alreadyExist","findOne","existingListeners","findAll","foundListeners","foundByEventTargets","findByEventTarget","mutationDebouncer","debounce","DebounceTimer","setObserver","_codexNotifier","toolsTags","tagsByTool","toolsPatterns","toolsFiles","processTool","_ref2","_slicedToArray2","toolPasteConfig","onPaste","getTagsConfig","getFilesConfig","getPatternsConfig","handlePasteEvent","_ref3","isNativeBehaviour","clipboardData","types","setCallback","processTools","isDragNDrop","processFiles","items","plainData","getData","htmlData","customConfig","getAllInlineToolsConfig","cleanData","isHTMLString","processText","blockTools","fileHandler","_toolPasteConfig$file","files","extensions","mimeTypes","isValidMimeType","patternHandler","patterns","_ref4","_ref5","pattern","getBlock","_this4","processFile","file","getAsFile","extension","getFileExtension","foundConfig","_ref6","_ref7","_ref7$","_file$type$split","_file$type$split2","fileType","fileSubtype","foundExt","ext","foundMimeType","mime","_mime$split","_mime$split2","subtype","isHTML","dataToInsert","processHTML","processPlain","isBlock","processSingleBlock","splitBlock","_ref8","_callee6","_context6","_this5","insertBlock","_x6","_x7","_this6","_this$Editor3","initialTool","getNodes","_Tools$blockTools$too","toolTags","getInlineToolsConfig","plain","PATTERN_PROCESSING_MAX_LENGTH","processPattern","blockData","sanitizeConfig","composeToolConfig","deepSanitize","insertedBlock","currentToolSanitizeConfig","substitute","execResult","canReplaceCurrentBlock","_this$Editor6","_this7","reducer","destNode","DocumentFragment","isFragment","_ref9","_ref9$tool","isSubstitutable","blockElements","containsAnotherToolTags","_ref10","containsBlockElements","_ref11","chainData","function","sequence","configCache","inlineToolsConfigCache","blocksData","toolConfig","dataToSanitize","rules","cleanArray","cleanObject","cleanOneItem","sanitizerInstance","createHTMLJanitorInstance","sanitizeGetter","SANITIZE_CONFIG","baseConfig","toolRules","fieldName","rule","toolsConfig","getToolSettings","enableInlineTools","inlineToolName","inline","inlineTool","ruleForItem","arrayItem","currentIterationItem","isRule","_htmlJanitor","extractedData","sanitizeBlocks","sanitizedData","makeOutput","allExtractedData","totalTime","groupCollapsed","extraction","groupEnd","registeredShortcuts","shortcut","newShortcut","_shortcuts","shc","BlockSettings","toolSettings","defaultSettings","wrapperOpened","addToolSettings","addDefaultSettings","closed","renderSettings","renderTunes","actions","blockActionsButtons","settingsToggler","plusButtonClicked","settingsIcon","forceClose","contentOffset","toolbox","offsetTop","toolbarOpened","settingsTogglerClicked","plusButtonHidden","inlineToolbarShowed","buttonsWrapper","actionsWrapper","inlineToolButtonLast","buttons","toolbarVerticalMargin","addTools","allowedToShow","checkToolsState","selectionRect","rect","wrapperOffset","newCoords","filterTools","currentSelection","selectedText","IS_ENABLED_INLINE_TOOLBAR","inlineToolbarSettings","hidden","dataset","lastVisibleButton","addTool","renderActions","toolClicked","internalTools","IS_INLINE","inlineTools","SHORTCUT","enableShortcuts","surround","bold","constructInline","_inlineToolBold","italic","_inlineToolItalic","_inlineToolLink","toolsInstances","allTools","Map","activeButtonIndex","displayedToolsCount","toolsClasses","toolboxOpened","activeButton","toolboxButtonActive","LEAF_DIRECTIONS","IS_DISPLAYED_IN_TOOLBOX","TOOLBAR_ICON","toolboxButton","title","toolboxIcon","enableShortcut","IS_IRREPLACEBLE_TOOL","_possibleConstructorReturn2","_getPrototypeOf2","toolsAvailable","toolsUnavailable","toolsSettings","_inlineTools","sequenceData","getListOfPrepareFunctions","success","fallback","plugin","CONFIG","constructorOptions","toolPreparationList","notImplementedMethods","IS_CONTENTLESS","IS_PASTE_DISALLOWED","paragraph","_bundle","appendSVGSprite","loadStyles","editorWrapper","editorZone","redactorClicked","documentKeydown","documentClicked","defaultBehaviour","keyDownOnEditor","hasPointerToBlock","highlightCurrentNode","clickedOnInlineToolbarButton","clickedInsideofEditor","clickedNode","setToTheLastBlock","isInitialBlock","isEmptyBlock","spriteHolder","_sprite","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parentElement","docFrag","SelectionUtils","savedSelectionRange","getSelection","searchDepth","parentTag","focusNode","boundNodes","searchDepthIterable","selectedNode","boundingLeft","boundingTop","boundingWidth","boundingHeight","span","insertNode","spanParent","_CSS","_data","_element","drawView","Util","chains","waitNextBlock","_callee2","successCallback","fallbackCallback","_context2","previousValue","currentValue","_x5","collection","timeout","func","wait","immediate","_arguments","callNow","clearTimeout","CTRL","SPACE"],"mappings":"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","file":"codex-editor.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CodexEditor\"] = factory();\n\telse\n\t\troot[\"CodexEditor\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","module.exports = \"\\n\\n\\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\"","\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");","require(\"./lib/noConflict\");\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = register;\nexports.revert = revert;\n\nfunction register() {}\n\nfunction revert() {}","exports = module.exports = function (...args) {\n return register(...args);\n};\n\nexports.__esModule = true;\n\nconst node = require(\"./node\");\n\nconst register = node.default;\nObject.assign(exports, node);","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","module.exports = require(\"regenerator-runtime\");\n","/*!\n * Library for handling keyboard shortcuts\n * @copyright undefined\n * @license MIT\n * @author CodeX (https://ifmo.su)\n * @version 1.0.0\n */\n!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)(\"object\"==typeof exports?exports:e)[r]=n[r]}}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=0)}([function(e,t,n){\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(e,t){for(var n=0;n1)for(var n in u)u[n].includes(e[t])&&(this.commands[n]=!0);else this.keys[e[t]]=!0}},{key:\"execute\",value:function(e){var t=e.ctrlKey||e.metaKey,n=e.shiftKey,r=e.altKey,o={CMD:t,SHIFT:n,ALT:r},u=void 0,c=!0;for(u in this.commands)c=c&&o[u];var a=void 0,s=!0;for(a in this.keys)s=s&&e.keyCode===i[a];c&&s&&this.callback(e)}},{key:\"remove\",value:function(){this.element.removeEventListener(\"keydown\",this.executeShortcut)}}]),e}();t.default=c}])});","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.notifier=e():t.notifier=e()}(window,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=0)}([function(t,e,n){\"use strict\";n(1),\n/*!\n * Codex JavaScript Notification module\n * https://github.com/codex-team/js-notifier\n */\nt.exports=function(){var t=n(6),e=\"cdx-notify--bounce-in\",r=null;return{show:function(n){if(n.message){!function(){if(r)return!0;r=t.getWrapper(),document.body.appendChild(r)}();var o=null,i=n.time||8e3;switch(n.type){case\"confirm\":o=t.confirm(n);break;case\"prompt\":o=t.prompt(n);break;default:o=t.alert(n),window.setTimeout(function(){o.remove()},i)}r.appendChild(o),o.classList.add(e)}}}}()},function(t,e,n){var r=n(2);\"string\"==typeof r&&(r=[[t.i,r,\"\"]]);var o={hmr:!0,transform:void 0,insertInto:void 0};n(4)(r,o);r.locals&&(t.exports=r.locals)},function(t,e,n){(t.exports=n(3)(!1)).push([t.i,'.cdx-notify--error{background:#fffbfb!important}.cdx-notify--error::before{background:#fb5d5d!important}.cdx-notify__input{max-width:130px;padding:5px 10px;background:#f7f7f7;border:0;border-radius:3px;font-size:13px;color:#656b7c;outline:0}.cdx-notify__input:-ms-input-placeholder{color:#656b7c}.cdx-notify__input::placeholder{color:#656b7c}.cdx-notify__input:focus:-ms-input-placeholder{color:rgba(101,107,124,.3)}.cdx-notify__input:focus::placeholder{color:rgba(101,107,124,.3)}.cdx-notify__button{border:none;border-radius:3px;font-size:13px;padding:5px 10px;cursor:pointer}.cdx-notify__button:last-child{margin-left:10px}.cdx-notify__button--cancel{background:#f2f5f7;box-shadow:0 2px 1px 0 rgba(16,19,29,0);color:#656b7c}.cdx-notify__button--cancel:hover{background:#eee}.cdx-notify__button--confirm{background:#34c992;box-shadow:0 1px 1px 0 rgba(18,49,35,.05);color:#fff}.cdx-notify__button--confirm:hover{background:#33b082}.cdx-notify__btns-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;margin-top:5px}.cdx-notify__cross{position:absolute;top:5px;right:5px;width:10px;height:10px;padding:5px;opacity:.54;cursor:pointer}.cdx-notify__cross::after,.cdx-notify__cross::before{content:\\'\\';position:absolute;left:9px;top:5px;height:12px;width:2px;background:#575d67}.cdx-notify__cross::before{transform:rotate(-45deg)}.cdx-notify__cross::after{transform:rotate(45deg)}.cdx-notify__cross:hover{opacity:1}.cdx-notifies{position:fixed;z-index:2;bottom:20px;left:20px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen,Ubuntu,Cantarell,\"Fira Sans\",\"Droid Sans\",\"Helvetica Neue\",sans-serif}.cdx-notify{position:relative;width:220px;margin-top:15px;padding:13px 16px;background:#fff;box-shadow:0 11px 17px 0 rgba(23,32,61,.13);border-radius:5px;font-size:14px;line-height:1.4em;word-wrap:break-word}.cdx-notify::before{content:\\'\\';position:absolute;display:block;top:0;left:0;width:3px;height:calc(100% - 6px);margin:3px;border-radius:5px;background:0 0}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}100%{transform:scale(1)}}.cdx-notify--bounce-in{animation-name:bounceIn;animation-duration:.6s;animation-iteration-count:1}.cdx-notify--success{background:#fafffe!important}.cdx-notify--success::before{background:#41ffb1!important}',\"\"])},function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var o=function(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}(r),i=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(i).concat([o]).join(\"\\n\")}return[n].join(\"\\n\")}(e,t);return e[2]?\"@media \"+e[2]+\"{\"+n+\"}\":n}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var r={},o=0;o=0&&s.splice(e,1)}function b(t){var e=document.createElement(\"style\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),m(e,t.attrs),l(t,e),e}function m(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function x(t,e){var n,r,o,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var s=c++;n=a||(a=b(e)),r=h.bind(null,n,s,!1),o=h.bind(null,n,s,!0)}else t.sourceMap&&\"function\"==typeof URL&&\"function\"==typeof URL.createObjectURL&&\"function\"==typeof URL.revokeObjectURL&&\"function\"==typeof Blob&&\"function\"==typeof btoa?(n=function(t){var e=document.createElement(\"link\");return void 0===t.attrs.type&&(t.attrs.type=\"text/css\"),t.attrs.rel=\"stylesheet\",m(e,t.attrs),l(t,e),e}(e),r=function(t,e,n){var r=n.css,o=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&o;(e.convertToAbsoluteUrls||i)&&(r=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),c=t.href;t.href=URL.createObjectURL(a),c&&URL.revokeObjectURL(c)}.bind(null,n,e),o=function(){p(n),n.href&&URL.revokeObjectURL(n.href)}):(n=b(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){p(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=u(t,e);return d(n,e),function(t){for(var o=[],i=0;i 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = false;\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","require('./_set-species')('Array');\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace) {\n // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)\n return [function replace(searchValue, replaceValue) {\n 'use strict';\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n }, $replace];\n});\n","// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search) {\n // 21.1.3.15 String.prototype.search(regexp)\n return [function search(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n }, $search];\n});\n","// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split) {\n 'use strict';\n var isRegExp = require('./_is-regexp');\n var _split = $split;\n var $push = [].push;\n var $SPLIT = 'split';\n var LENGTH = 'length';\n var LAST_INDEX = 'lastIndex';\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group\n // based on es5-shim implementation, need to rework it\n $split = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return _split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var separator2, match, lastIndex, lastLength, i;\n // Doesn't need flags gy, but they don't hurt\n if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\\\s)', flags);\n while (match = separatorCopy.exec(string)) {\n // `separatorCopy.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0][LENGTH];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG\n // eslint-disable-next-line no-loop-func\n if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {\n for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;\n });\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n $split = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);\n };\n }\n // 21.1.3.17 String.prototype.split(separator, limit)\n return [function split(separator, limit) {\n var O = defined(this);\n var fn = separator == undefined ? undefined : separator[SPLIT];\n return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);\n }, $split];\n});\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","require('./_wks-define')('asyncIterator');\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","require('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define('html-janitor', factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.HTMLJanitor = factory();\n }\n}(this, function () {\n\n /**\n * @param {Object} config.tags Dictionary of allowed tags.\n * @param {boolean} config.keepNestedBlockElements Default false.\n */\n function HTMLJanitor(config) {\n\n var tagDefinitions = config['tags'];\n var tags = Object.keys(tagDefinitions);\n\n var validConfigValues = tags\n .map(function(k) { return typeof tagDefinitions[k]; })\n .every(function(type) { return type === 'object' || type === 'boolean' || type === 'function'; });\n\n if(!validConfigValues) {\n throw new Error(\"The configuration was invalid\");\n }\n\n this.config = config;\n }\n\n // TODO: not exhaustive?\n var blockElementNames = ['P', 'LI', 'TD', 'TH', 'DIV', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'PRE'];\n function isBlockElement(node) {\n return blockElementNames.indexOf(node.nodeName) !== -1;\n }\n\n var inlineElementNames = ['A', 'B', 'STRONG', 'I', 'EM', 'SUB', 'SUP', 'U', 'STRIKE'];\n function isInlineElement(node) {\n return inlineElementNames.indexOf(node.nodeName) !== -1;\n }\n\n HTMLJanitor.prototype.clean = function (html) {\n const sandbox = document.implementation.createHTMLDocument();\n const root = sandbox.createElement(\"div\");\n root.innerHTML = html;\n\n this._sanitize(sandbox, root);\n\n return root.innerHTML;\n };\n\n HTMLJanitor.prototype._sanitize = function (document, parentNode) {\n var treeWalker = createTreeWalker(document, parentNode);\n var node = treeWalker.firstChild();\n\n if (!node) { return; }\n\n do {\n if (node.nodeType === Node.TEXT_NODE) {\n // If this text node is just whitespace and the previous or next element\n // sibling is a block element, remove it\n // N.B.: This heuristic could change. Very specific to a bug with\n // `contenteditable` in Firefox: http://jsbin.com/EyuKase/1/edit?js,output\n // FIXME: make this an option?\n if (node.data.trim() === ''\n && ((node.previousElementSibling && isBlockElement(node.previousElementSibling))\n || (node.nextElementSibling && isBlockElement(node.nextElementSibling)))) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n } else {\n continue;\n }\n }\n\n // Remove all comments\n if (node.nodeType === Node.COMMENT_NODE) {\n parentNode.removeChild(node);\n this._sanitize(document, parentNode);\n break;\n }\n\n var isInline = isInlineElement(node);\n var containsBlockElement;\n if (isInline) {\n containsBlockElement = Array.prototype.some.call(node.childNodes, isBlockElement);\n }\n\n // Block elements should not be nested (e.g.
  • ...); if\n // they are, we want to unwrap the inner block element.\n var isNotTopContainer = !! parentNode.parentNode;\n var isNestedBlockElement =\n isBlockElement(parentNode) &&\n isBlockElement(node) &&\n isNotTopContainer;\n\n var nodeName = node.nodeName.toLowerCase();\n\n var allowedAttrs = getAllowedAttrs(this.config, nodeName, node);\n\n var isInvalid = isInline && containsBlockElement;\n\n // Drop tag entirely according to the whitelist *and* if the markup\n // is invalid.\n if (isInvalid || shouldRejectNode(node, allowedAttrs)\n || (!this.config.keepNestedBlockElements && isNestedBlockElement)) {\n // Do not keep the inner text of SCRIPT/STYLE elements.\n if (! (node.nodeName === 'SCRIPT' || node.nodeName === 'STYLE')) {\n while (node.childNodes.length > 0) {\n parentNode.insertBefore(node.childNodes[0], node);\n }\n }\n parentNode.removeChild(node);\n\n this._sanitize(document, parentNode);\n break;\n }\n\n // Sanitize attributes\n for (var a = 0; a < node.attributes.length; a += 1) {\n var attr = node.attributes[a];\n\n if (shouldRejectAttr(attr, allowedAttrs, node)) {\n node.removeAttribute(attr.name);\n // Shift the array to continue looping.\n a = a - 1;\n }\n }\n\n // Sanitize children\n this._sanitize(document, node);\n\n } while ((node = treeWalker.nextSibling()));\n };\n\n function createTreeWalker(document, node) {\n return document.createTreeWalker(node,\n NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT,\n null, false);\n }\n\n function getAllowedAttrs(config, nodeName, node){\n if (typeof config.tags[nodeName] === 'function') {\n return config.tags[nodeName](node);\n } else {\n return config.tags[nodeName];\n }\n }\n\n function shouldRejectNode(node, allowedAttrs){\n if (typeof allowedAttrs === 'undefined') {\n return true;\n } else if (typeof allowedAttrs === 'boolean') {\n return !allowedAttrs;\n }\n\n return false;\n }\n\n function shouldRejectAttr(attr, allowedAttrs, node){\n var attrName = attr.name.toLowerCase();\n\n if (allowedAttrs === true){\n return false;\n } else if (typeof allowedAttrs[attrName] === 'function'){\n return !allowedAttrs[attrName](attr.value, node);\n } else if (typeof allowedAttrs[attrName] === 'undefined'){\n return true;\n } else if (allowedAttrs[attrName] === false) {\n return true;\n } else if (typeof allowedAttrs[attrName] === 'string') {\n return (allowedAttrs[attrName] !== attr.value);\n }\n\n return false;\n }\n\n return HTMLJanitor;\n\n}));\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","'use strict';\r\n\r\nimport {EditorConfig} from '../types';\r\n\r\ndeclare const VERSION: string;\r\n\r\n/**\r\n * Apply polyfills\r\n */\r\nimport '@babel/register';\r\n\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 /**\r\n * Promise that resolves when core modules are ready and UI is rendered on the page\r\n */\r\n public isReady: Promise;\r\n\r\n /**\r\n * Stores destroy method implementation.\r\n * Clear heap occupied by Editor and remove UI components from the DOM.\r\n */\r\n public destroy: () => void;\r\n\r\n /** Editor version */\r\n static get version(): string {\r\n return VERSION;\r\n }\r\n\r\n /**\r\n * @constructor\r\n *\r\n * @param {EditorConfig|String|undefined} [configuration] - user configuration\r\n */\r\n public constructor(configuration?: EditorConfig|string) {\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 public exportAPI(editor: Core): void {\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 if (this.hasOwnProperty(field)) {\r\n delete this[field];\r\n }\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 {EditorModules} from '../types-internal/editor-modules';\r\nimport {EditorConfig} from '../../types';\r\nimport {ModuleConfig} from '../types-internal/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 {EditorModules} Editor - List of Editor modules\r\n */\r\nexport default class Module {\r\n\r\n /**\r\n * Editor modules list\r\n * @type {EditorModules}\r\n */\r\n protected Editor: EditorModules;\r\n\r\n /**\r\n * Editor configuration object\r\n * @type {EditorConfig}\r\n */\r\n protected config: EditorConfig;\r\n\r\n /**\r\n * @constructor\r\n * @param {EditorConfig}\r\n */\r\n constructor({config}: ModuleConfig) {\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 {EditorModules} Editor\r\n */\r\n set state(Editor: EditorModules) {\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 {API, BlockTune} from '../../../types';\r\nimport $ from '../dom';\r\n\r\nexport default class DeleteTune implements BlockTune {\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: API;\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: {button: HTMLElement} = {\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}: {api: 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.listeners.on(this.nodes.button, 'click', (event: MouseEvent) => 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\n\r\nimport $ from '../dom';\r\nimport {API, BlockTune} from '../../../types';\r\n\r\nexport default class MoveDownTune implements BlockTune {\r\n /**\r\n * Property that contains CodeX Editor API methods\r\n * @see {api.md}\r\n */\r\n private readonly api: API;\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.listeners.on(\r\n moveDownButton,\r\n 'click',\r\n (event) => this.handleClick(event as MouseEvent, moveDownButton),\r\n false,\r\n );\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);\r\n const 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 $ from '../dom';\r\nimport {API, BlockTune} from '../../../types';\r\n\r\nexport default class MoveUpTune implements BlockTune {\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: API;\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.listeners.on(\r\n moveUpButton,\r\n 'click',\r\n (event) => this.handleClick(event as MouseEvent, moveUpButton),\r\n false,\r\n );\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);\r\n const previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1);\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 {\r\n API,\r\n BlockTool,\r\n BlockToolConstructable,\r\n BlockToolData,\r\n BlockTune,\r\n BlockTuneConstructable,\r\n SanitizerConfig,\r\n ToolConfig,\r\n} from '../../types';\r\n\r\nimport $ from './dom';\r\nimport _ from './utils';\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 {BlockTool} 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\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() {\r\n return {\r\n wrapper: 'ce-block',\r\n wrapperStretched: 'ce-block--stretched',\r\n content: 'ce-block__content',\r\n focused: 'ce-block--focused',\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 * Returns tool's sanitizer config\r\n * @return {object}\r\n */\r\n get sanitize(): SanitizerConfig {\r\n return this.tool.sanitize;\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 focused state\r\n * We don't need to mark Block as focused when it is empty\r\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\r\n */\r\n set focused(state: boolean) {\r\n if (state === true && !this.isEmpty) {\r\n this.holder.classList.add(Block.CSS.focused);\r\n } else {\r\n this.holder.classList.remove(Block.CSS.focused);\r\n }\r\n }\r\n\r\n /**\r\n * Set selected state\r\n * We don't need to mark Block as Selected when it is empty\r\n * @param {Boolean} state - 'true' to select, 'false' to remove selection\r\n */\r\n set selected(state: boolean) {\r\n if (state) {\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 * Returns True if it is Selected\r\n * @return {boolean}\r\n */\r\n get selected(): boolean {\r\n return this.holder.classList.contains(Block.CSS.selected);\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 /**\r\n * Block Tool`s name\r\n */\r\n public name: string;\r\n\r\n /**\r\n * Instance of the Tool Block represents\r\n */\r\n public tool: BlockTool;\r\n\r\n /**\r\n * Class blueprint of the ool Block represents\r\n */\r\n public class: BlockToolConstructable;\r\n\r\n /**\r\n * User Tool configuration\r\n */\r\n public settings: ToolConfig;\r\n\r\n /**\r\n * Wrapper for Block`s content\r\n */\r\n public holder: HTMLDivElement;\r\n\r\n /**\r\n * Tunes used by Tool\r\n */\r\n public tunes: BlockTune[];\r\n\r\n /**\r\n * Editor`s API\r\n */\r\n private readonly api: API;\r\n\r\n /**\r\n * Focused input index\r\n * @type {number}\r\n */\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(\r\n toolName: string,\r\n toolInstance: BlockTool,\r\n toolClass: BlockToolConstructable,\r\n settings: ToolConfig,\r\n apiMethods: API,\r\n ) {\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 {BlockTune[]}\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 async mergeWith(data: BlockToolData): Promise {\r\n await this.tool.merge(data);\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 const extractedBlock = await this.tool.save(this.pluginsContent as HTMLElement);\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((error) => {\r\n _.log(`Saving proccess for ${this.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: BlockToolData): BlockToolData|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 {BlockTune[]}\r\n */\r\n public makeTunes(): BlockTune[] {\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: BlockTuneConstructable) => {\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 * 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","import _ from './utils';\r\nimport $ from './dom';\r\nimport Block from './block';\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\nexport default class Blocks {\r\n\r\n /**\r\n * Get length of Block instances array\r\n *\r\n * @returns {Number}\r\n */\r\n public get length(): number {\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 public get array(): Block[] {\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 public get nodes(): HTMLElement[] {\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 public static set(instance: Blocks, index: number, block: 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 public static get(instance: Blocks, index: number) {\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 * Array of Block instances in order of addition\r\n */\r\n public blocks: Block[];\r\n\r\n /**\r\n * Editor`s area where to add Block`s HTML\r\n */\r\n public workingArea: HTMLElement;\r\n\r\n /**\r\n * @constructor\r\n *\r\n * @param {HTMLElement} workingArea — editor`s working node\r\n */\r\n constructor(workingArea: HTMLElement) {\r\n this.blocks = [];\r\n this.workingArea = workingArea;\r\n }\r\n\r\n /**\r\n * Push new Block to the blocks array and append it to working area\r\n *\r\n * @param {Block} block\r\n */\r\n public push(block: Block): void {\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 public swap(first: number, second: number): void {\r\n const 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 public insert(index: number, block: Block, replace: boolean = false): void {\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 const deleteCount = replace ? 1 : 0;\r\n\r\n this.blocks.splice(index, deleteCount, block);\r\n\r\n if (index > 0) {\r\n const previousBlock = this.blocks[index - 1];\r\n\r\n previousBlock.holder.insertAdjacentElement('afterend', block.holder);\r\n } else {\r\n const 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 public remove(index: number): void {\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 public removeAll(): void {\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 public insertAfter(targetBlock: Block, newBlock: Block): void {\r\n const 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 public get(index: number): Block {\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 public indexOf(block: Block): number {\r\n return this.blocks.indexOf(block);\r\n }\r\n}\r\n","import $ from './dom';\nimport _ from './utils';\nimport {EditorConfig, OutputData, SanitizerConfig, ToolSettings} from '../../types';\nimport {EditorModules} from '../types-internal/editor-modules';\n\n/**\n * @typedef {Core} Core - editor core class\n */\n\n/**\n * Require Editor modules places in components/modules dir\n */\nconst contextRequire = require.context('./modules', true);\n\nconst modules = [];\n\ncontextRequire.keys().forEach((filename) => {\n /**\n * Include files if:\n * - extension is .js or .ts\n * - does not starts with _\n */\n if (filename.match(/^\\.\\/[^_][\\w/]*\\.([tj])s$/)) {\n modules.push(contextRequire(filename));\n }\n});\n\n/**\n * @class Core\n *\n * @classdesc CodeX Editor core class\n *\n * @property this.config - all settings\n * @property this.moduleInstances - constructed editor components\n *\n * @type {Core}\n */\nexport default class Core {\n\n /**\n * Editor configuration passed by user to the constructor\n */\n public config: EditorConfig;\n\n /**\n * Object with core modules instances\n */\n public moduleInstances: EditorModules = {} as EditorModules;\n\n /**\n * Promise that resolves when all core modules are prepared and UI is rendered on the page\n */\n public isReady: Promise;\n\n /**\n * @param {EditorConfig} config - user configuration\n *\n */\n constructor(config?: EditorConfig|string) {\n /**\n * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise\n */\n let onReady, onFail;\n\n this.isReady = new Promise((resolve, reject) => {\n onReady = resolve;\n onFail = reject;\n });\n\n Promise.resolve()\n .then(async () => {\n this.configuration = config;\n\n await this.validate();\n await this.init();\n await this.start();\n\n _.log('I\\'m ready! (ノ◕ヮ◕)ノ*:・゚✧');\n\n setTimeout(() => {\n /**\n * Resolve this.isReady promise\n */\n onReady();\n }, 500);\n })\n .catch((error) => {\n _.log(`CodeX Editor does not ready because of ${error}`, 'error');\n\n /**\n * Reject this.isReady promise\n */\n onFail(error);\n });\n }\n\n /**\n * Setting for configuration\n * @param {EditorConfig|string|undefined} config\n */\n set configuration(config: EditorConfig|string) {\n /**\n * Process zero-configuration or with only holderId\n */\n if (typeof config === 'string' || typeof config === 'undefined') {\n this.config = {\n holderId: config || 'codex-editor',\n };\n } else {\n this.config = config;\n }\n\n /**\n * If initial Block's Tool was not passed, use the Paragraph Tool\n */\n this.config.initialBlock = this.config.initialBlock || 'paragraph';\n\n /**\n * Initial block type\n * Uses in case when there is no blocks passed\n * @type {{type: (*), data: {text: null}}}\n */\n const initialBlockData = {\n type : this.config.initialBlock,\n data : {},\n };\n\n this.config.placeholder = this.config.placeholder || 'write your story...';\n this.config.sanitizer = this.config.sanitizer || {\n p: true,\n b: true,\n a: true,\n } as SanitizerConfig;\n\n this.config.hideToolbar = this.config.hideToolbar ? this.config.hideToolbar : false;\n this.config.tools = this.config.tools || {};\n this.config.data = this.config.data || {} as OutputData;\n this.config.onReady = this.config.onReady || (() => {});\n this.config.onChange = this.config.onChange || (() => {});\n\n /**\n * Initialize Blocks to pass data to the Renderer\n */\n if (_.isEmpty(this.config.data)) {\n this.config.data = {} as OutputData;\n this.config.data.blocks = [ initialBlockData ];\n } else {\n if (!this.config.data.blocks || this.config.data.blocks.length === 0) {\n this.config.data.blocks = [ initialBlockData ];\n }\n }\n }\n\n /**\n * Returns private property\n * @returns {EditorConfig}\n */\n get configuration(): EditorConfig|string {\n return this.config;\n }\n\n /**\n * Checks for required fields in Editor's config\n * @returns {Promise}\n */\n public async validate(): Promise {\n /**\n * Check if holderId is not empty\n */\n if (!this.config.holderId) {\n throw Error('«holderId» param must being not empty');\n }\n\n /**\n * Check for a holder element's existence\n */\n if (!$.get(this.config.holderId)) {\n throw Error(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`);\n }\n\n /**\n * Check Tools for a class containing\n */\n for (const toolName in this.config.tools) {\n if (this.config.tools.hasOwnProperty(toolName)) {\n const tool = this.config.tools[toolName];\n\n if (!_.isFunction(tool) && !_.isFunction((tool as ToolSettings).class)) {\n throw Error(\n `Tool «${toolName}» must be a constructor function or an object with function in the «class» property`,\n );\n }\n }\n }\n }\n\n /**\n * Initializes modules:\n * - make and save instances\n * - configure\n */\n public init() {\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n this.constructModules();\n\n /**\n * Modules configuration\n */\n this.configureModules();\n }\n\n /**\n * Start Editor!\n *\n * Get list of modules that needs to be prepared and return a sequence (Promise)\n * @return {Promise}\n */\n public async start() {\n const modulesToPrepare = [\n 'Tools',\n 'UI',\n 'BlockManager',\n 'Paste',\n 'DragNDrop',\n 'ModificationsObserver',\n 'BlockSelection',\n ];\n\n await modulesToPrepare.reduce(\n (promise, module) => promise.then(async () => {\n _.log(`Preparing ${module} module`, 'time');\n\n try {\n await this.moduleInstances[module].prepare();\n } catch (e) {\n _.log(`Module ${module} was skipped because of %o`, 'warn', e);\n }\n _.log(`Preparing ${module} module`, 'timeEnd');\n }),\n Promise.resolve(),\n );\n\n return this.moduleInstances.Renderer.render(this.config.data.blocks);\n }\n\n /**\n * Make modules instances and save it to the @property this.moduleInstances\n */\n private constructModules(): void {\n modules.forEach( (Module) => {\n try {\n /**\n * We use class name provided by displayName property\n *\n * On build, Babel will transform all Classes to the Functions so, name will always be 'Function'\n * To prevent this, we use 'babel-plugin-class-display-name' plugin\n * @see https://www.npmjs.com/package/babel-plugin-class-display-name\n */\n this.moduleInstances[Module.displayName] = new Module({\n config : this.configuration,\n });\n } catch ( e ) {\n console.log('Module %o skipped because %o', Module, e);\n }\n });\n }\n\n /**\n * Modules instances configuration:\n * - pass other modules to the 'state' property\n * - ...\n */\n private configureModules(): void {\n for (const name in this.moduleInstances) {\n if (this.moduleInstances.hasOwnProperty(name)) {\n /**\n * Module does not need self-instance\n */\n this.moduleInstances[name].state = this.getModulesDiff(name);\n }\n }\n }\n\n /**\n * Return modules without passed name\n * @param {string} name - module for witch modules difference should be calculated\n */\n private getModulesDiff(name: string): EditorModules {\n const diff = {} as EditorModules;\n\n for (const moduleName in this.moduleInstances) {\n /**\n * Skip module with passed name\n */\n if (moduleName === name) {\n continue;\n }\n diff[moduleName] = this.moduleInstances[moduleName];\n }\n\n return diff;\n }\n}\n","/**\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 {HTMLElement}\r\n */\r\n public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): HTMLElement {\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[]|DocumentFragment): 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 $ from '../dom';\r\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\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 * Specifies Tool as Inline Toolbar Tool\r\n *\r\n * @return {boolean}\r\n */\r\n public static isInline = true;\r\n\r\n /**\r\n * Sanitizer Rule\r\n * Leave tags\r\n * @return {object}\r\n */\r\n static get sanitize(): SanitizerConfig {\r\n return {\r\n b: {},\r\n } as SanitizerConfig;\r\n }\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: {button: HTMLButtonElement} = {\r\n button: undefined,\r\n };\r\n\r\n /**\r\n * @param {{api: API}} - CodeX Editor API\r\n */\r\n constructor({api}: {api: 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') as HTMLButtonElement;\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 $ from '../dom';\r\nimport {InlineTool, SanitizerConfig} from '../../../types';\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 * Specifies Tool as Inline Toolbar Tool\r\n *\r\n * @return {boolean}\r\n */\r\n public static isInline = true;\r\n\r\n /**\r\n * Sanitizer Rule\r\n * Leave tags\r\n * @return {object}\r\n */\r\n static get sanitize(): SanitizerConfig {\r\n return {\r\n i: {},\r\n } as SanitizerConfig;\r\n }\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: {button: HTMLButtonElement} = {\r\n button: null,\r\n };\r\n\r\n /**\r\n * @param {{api: API}} - 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') as HTMLButtonElement;\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","import SelectionUtils from '../selection';\r\n\r\nimport $ from '../dom';\r\nimport _ from '../utils';\r\nimport {API, InlineTool, SanitizerConfig} from '../../../types';\r\nimport {Toolbar} from '../../../types/api';\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 /**\r\n * Specifies Tool as Inline Toolbar Tool\r\n *\r\n * @return {boolean}\r\n */\r\n public static isInline = true;\r\n\r\n /**\r\n * Sanitizer Rule\r\n * Leave tags\r\n * @return {object}\r\n */\r\n static get sanitize(): SanitizerConfig {\r\n return {\r\n a: {\r\n href: true,\r\n target: '_blank',\r\n rel: 'nofollow',\r\n },\r\n } as SanitizerConfig;\r\n }\r\n\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: HTMLButtonElement;\r\n input: HTMLInputElement;\r\n } = {\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: Toolbar;\r\n\r\n /**\r\n * @param {{api: API}} - 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') as HTMLButtonElement;\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') as HTMLInputElement;\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: KeyboardEvent) => {\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\"./api\": \"./src/components/modules/api/index.ts\",\n\t\"./api/\": \"./src/components/modules/api/index.ts\",\n\t\"./api/blocks\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/blocks.ts\": \"./src/components/modules/api/blocks.ts\",\n\t\"./api/caret\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/caret.ts\": \"./src/components/modules/api/caret.ts\",\n\t\"./api/events\": \"./src/components/modules/api/events.ts\",\n\t\"./api/events.ts\": \"./src/components/modules/api/events.ts\",\n\t\"./api/index\": \"./src/components/modules/api/index.ts\",\n\t\"./api/index.ts\": \"./src/components/modules/api/index.ts\",\n\t\"./api/listeners\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/listeners.ts\": \"./src/components/modules/api/listeners.ts\",\n\t\"./api/notifier\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/notifier.ts\": \"./src/components/modules/api/notifier.ts\",\n\t\"./api/sanitizer\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/sanitizer.ts\": \"./src/components/modules/api/sanitizer.ts\",\n\t\"./api/saver\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/saver.ts\": \"./src/components/modules/api/saver.ts\",\n\t\"./api/selection\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/selection.ts\": \"./src/components/modules/api/selection.ts\",\n\t\"./api/styles\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/styles.ts\": \"./src/components/modules/api/styles.ts\",\n\t\"./api/toolbar\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./api/toolbar.ts\": \"./src/components/modules/api/toolbar.ts\",\n\t\"./blockEvents\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockEvents.ts\": \"./src/components/modules/blockEvents.ts\",\n\t\"./blockManager\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockManager.ts\": \"./src/components/modules/blockManager.ts\",\n\t\"./blockSelection\": \"./src/components/modules/blockSelection.ts\",\n\t\"./blockSelection.ts\": \"./src/components/modules/blockSelection.ts\",\n\t\"./caret\": \"./src/components/modules/caret.ts\",\n\t\"./caret.ts\": \"./src/components/modules/caret.ts\",\n\t\"./dragNDrop\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./dragNDrop.ts\": \"./src/components/modules/dragNDrop.ts\",\n\t\"./events\": \"./src/components/modules/events.ts\",\n\t\"./events.ts\": \"./src/components/modules/events.ts\",\n\t\"./listeners\": \"./src/components/modules/listeners.ts\",\n\t\"./listeners.ts\": \"./src/components/modules/listeners.ts\",\n\t\"./modificationsObserver\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./modificationsObserver.ts\": \"./src/components/modules/modificationsObserver.ts\",\n\t\"./notifier\": \"./src/components/modules/notifier.ts\",\n\t\"./notifier.ts\": \"./src/components/modules/notifier.ts\",\n\t\"./paste\": \"./src/components/modules/paste.ts\",\n\t\"./paste.ts\": \"./src/components/modules/paste.ts\",\n\t\"./renderer\": \"./src/components/modules/renderer.ts\",\n\t\"./renderer.ts\": \"./src/components/modules/renderer.ts\",\n\t\"./sanitizer\": \"./src/components/modules/sanitizer.ts\",\n\t\"./sanitizer.ts\": \"./src/components/modules/sanitizer.ts\",\n\t\"./saver\": \"./src/components/modules/saver.ts\",\n\t\"./saver.ts\": \"./src/components/modules/saver.ts\",\n\t\"./shortcuts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./shortcuts.ts\": \"./src/components/modules/shortcuts.ts\",\n\t\"./toolbar\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/blockSettings\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/blockSettings.ts\": \"./src/components/modules/toolbar/blockSettings.ts\",\n\t\"./toolbar/index\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/index.ts\": \"./src/components/modules/toolbar/index.ts\",\n\t\"./toolbar/inline\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/inline.ts\": \"./src/components/modules/toolbar/inline.ts\",\n\t\"./toolbar/toolbox\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./toolbar/toolbox.ts\": \"./src/components/modules/toolbar/toolbox.ts\",\n\t\"./tools\": \"./src/components/modules/tools.ts\",\n\t\"./tools.ts\": \"./src/components/modules/tools.ts\",\n\t\"./ui\": \"./src/components/modules/ui.ts\",\n\t\"./ui.ts\": \"./src/components/modules/ui.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./src/components/modules sync recursive ^\\\\.\\\\/.*$\";","import Module from '../../__module';\n\nimport {Blocks} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\nimport Block from '../../block';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class BlocksAPI\n * provides with methods working with Block\n */\nexport default class BlocksAPI extends Module {\n /**\n * Available methods\n * @return {Blocks}\n */\n get methods(): Blocks {\n return {\n clear: () => this.clear(),\n render: (data: OutputData) => this.render(data),\n delete: () => this.delete(),\n swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex),\n getBlockByIndex: (index: number) => this.getBlockByIndex(index),\n getCurrentBlockIndex: () => this.getCurrentBlockIndex(),\n getBlocksCount: () => this.getBlocksCount(),\n stretchBlock: (index: number, status: boolean = true) => this.stretchBlock(index, status),\n insertNewBlock: () => this.insertNewBlock(),\n };\n }\n\n /**\n * Returns Blocks count\n * @return {number}\n */\n public getBlocksCount(): number {\n return this.Editor.BlockManager.blocks.length;\n }\n\n /**\n * Returns current block index\n * @return {number}\n */\n public getCurrentBlockIndex(): number {\n return this.Editor.BlockManager.currentBlockIndex;\n }\n\n /**\n * Returns Block holder by Block index\n * @param {Number} index\n *\n * @return {HTMLElement}\n */\n public getBlockByIndex(index: number): HTMLElement {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n return block.holder;\n }\n\n /**\n * Call Block Manager method that swap Blocks\n * @param {number} fromIndex - position of first Block\n * @param {number} toIndex - position of second Block\n */\n public swap(fromIndex: number, toIndex: number): void {\n this.Editor.BlockManager.swap(fromIndex, toIndex);\n\n /**\n * Move toolbar\n * DO not close the settings\n */\n this.Editor.Toolbar.move(false);\n }\n\n /**\n * Deletes Block\n * @param blockIndex\n */\n public delete(blockIndex?: number): void {\n this.Editor.BlockManager.removeBlock(blockIndex);\n\n /**\n * in case of last block deletion\n * Insert new initial empty block\n */\n if (this.Editor.BlockManager.blocks.length === 0) {\n this.Editor.BlockManager.insert();\n }\n\n /**\n * In case of deletion first block we need to set caret to the current Block\n */\n if (this.Editor.BlockManager.currentBlockIndex === 0) {\n this.Editor.Caret.setToBlock(this.Editor.BlockManager.currentBlock);\n } else {\n this.Editor.Caret.navigatePrevious(true);\n }\n\n this.Editor.Toolbar.close();\n }\n\n /**\n * Clear Editor's area\n */\n public clear(): void {\n this.Editor.BlockManager.clear(true);\n }\n\n /**\n * Fills Editor with Blocks data\n * @param {OutputData} data — Saved Editor data\n */\n public render(data: OutputData): Promise {\n this.Editor.BlockManager.clear();\n return this.Editor.Renderer.render(data.blocks);\n }\n\n /**\n * Stretch Block's content\n * @param {number} index\n * @param {boolean} status - true to enable, false to disable\n */\n public stretchBlock(index: number, status: boolean = true): void {\n const block = this.Editor.BlockManager.getBlockByIndex(index);\n\n if (!block) {\n return;\n }\n\n block.stretched = status;\n }\n\n /**\n * Insert new Block\n * After set caret to this Block\n */\n public insertNewBlock() {\n const newBlock = this.Editor.BlockManager.insert();\n this.Editor.Caret.setToBlock(newBlock);\n }\n}\n","import Module from '../../__module';\nimport {Caret} from '../../../../types/api';\nimport {ModuleConfig} from '../../../types-internal/module-config';\n\n/**\n * @class CaretAPI\n * provides with methods to work with caret\n */\nexport default class CaretAPI extends Module {\n /**\n * Available methods\n * @return {Caret}\n */\n get methods(): Caret {\n return {};\n }\n}\n","import Module from '../../__module';\nimport {Events} from '../../../../types/api';\n\n/**\n * @class EventsAPI\n * provides with methods working with Toolbar\n */\nexport default class EventsAPI extends Module {\n /**\n * Available methods\n * @return {Events}\n */\n get methods(): Events {\n return {\n emit: (eventName: string, data: object) => this.emit(eventName, data),\n off: (eventName: string, callback: () => void) => this.off(eventName, callback),\n on: (eventName: string, callback: () => void) => this.on(eventName, callback),\n };\n }\n\n /**\n * Subscribe on Events\n * @param {String} eventName\n * @param {Function} callback\n */\n public on(eventName, callback): void {\n this.Editor.Events.on(eventName, callback);\n }\n\n /**\n * Emit event with data\n * @param {String} eventName\n * @param {Object} data\n */\n public emit(eventName, data): void {\n this.Editor.Events.emit(eventName, data);\n }\n\n /**\n * Unsubscribe from Event\n * @param {String} eventName\n * @param {Function} callback\n */\n public off(eventName, callback): void {\n this.Editor.Events.off(eventName, callback);\n }\n\n}\n","/**\n * @module API\n * @copyright 2018\n *\n * Each block has an Editor API instance to use provided public methods\n * if you cant to read more about how API works, please see docs\n */\nimport Module from '../../__module';\nimport {API as APIInterfaces} from '../../../../types';\n\n/**\n * @class API\n */\nexport default class API extends Module {\n public get methods(): APIInterfaces {\n return {\n blocks: this.Editor.BlocksAPI.methods,\n caret: this.Editor.CaretAPI.methods,\n events: this.Editor.EventsAPI.methods,\n listeners: this.Editor.ListenersAPI.methods,\n notifier: this.Editor.NotifierAPI.methods,\n sanitizer: this.Editor.SanitizerAPI.methods,\n saver: this.Editor.SaverAPI.methods,\n selection: this.Editor.SelectionAPI.methods,\n styles: this.Editor.StylesAPI.classes,\n toolbar: this.Editor.ToolbarAPI.methods,\n } as APIInterfaces;\n }\n}\n","import Module from '../../__module';\nimport {Listeners} from '../../../../types/api';\n\n/**\n * @class ListenersAPI\n * Provides with methods working with DOM Listener\n */\nexport default class ListenersAPI extends Module {\n /**\n * Available methods\n * @return {Listeners}\n */\n get methods(): Listeners {\n return {\n on: (element: HTMLElement, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture),\n off: (element, eventType, handler) => this.off(element, eventType, handler),\n };\n }\n\n /**\n * adds DOM event listener\n *\n * @param {HTMLElement} element\n * @param {string} eventType\n * @param {() => void} handler\n * @param {boolean} useCapture\n */\n public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {\n this.Editor.Listeners.on(element, eventType, handler, useCapture);\n }\n\n /**\n * Removes DOM listener from element\n *\n * @param element\n * @param eventType\n * @param handler\n */\n public off(element, eventType, handler): void {\n this.Editor.Listeners.off(element, eventType, handler);\n }\n}\n","import Module from '../../__module';\r\nimport {Notifier} from '../../../../types/api';\r\nimport {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier';\r\n\r\nexport default class NotifierAPI extends Module {\r\n\r\n /**\r\n * Available methods\r\n */\r\n get methods(): Notifier {\r\n return {\r\n show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options),\r\n };\r\n }\r\n\r\n public show(options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) {\r\n return this.Editor.Notifier.show(options);\r\n }\r\n}\r\n","import Module from '../../__module';\nimport {Sanitizer} from '../../../../types/api';\n\n/**\n * @class SanitizerAPI\n * Provides CodeX Editor Sanitizer that allows developers to clean their HTML\n */\nexport default class SanitizerAPI extends Module {\n /**\n * Available methods\n * @return {Sanitizer}\n */\n get methods(): Sanitizer {\n return {\n clean: (taintString, config) => this.clean(taintString, config),\n };\n }\n\n public clean(taintString, config) {\n return this.Editor.Sanitizer.clean(taintString, config);\n }\n\n}\n","import Module from '../../__module';\nimport {Saver} from '../../../../types/api';\nimport {OutputData} from '../../../../types';\n\n/**\n * @class SaverAPI\n * provides with methods to save data\n */\nexport default class SaverAPI extends Module {\n /**\n * Available methods\n * @return {Saver}\n */\n get methods(): Saver {\n return {\n save: () => this.save(),\n };\n }\n\n /**\n * Return Editor's data\n */\n public save(): Promise {\n return this.Editor.Saver.save();\n }\n}\n","import Module from '../../__module';\nimport SelectionUtils from '../../selection';\nimport {Selection as SelectionAPIInterface} from '../../../../types/api';\n\n/**\n * @class SelectionAPI\n * Provides with methods working with SelectionUtils\n */\nexport default class SelectionAPI extends Module {\n /**\n * Available methods\n * @return {SelectionAPIInterface}\n */\n get methods(): SelectionAPIInterface {\n return {\n findParentTag: (tagName: string, className?: string) => this.findParentTag(tagName, className),\n expandToTag: (node: HTMLElement) => this.expandToTag(node),\n };\n }\n\n /**\n * Looks ahead from selection and find passed tag with class name\n * @param {string} tagName - tag to find\n * @param {string} className - tag's class name\n * @return {HTMLElement|null}\n */\n public findParentTag(tagName: string, className?: string): HTMLElement|null {\n return new SelectionUtils().findParentTag(tagName, className);\n }\n\n /**\n * Expand selection to passed tag\n * @param {HTMLElement} node - tag that should contain selection\n */\n public expandToTag(node: HTMLElement): void {\n new SelectionUtils().expandToTag(node);\n }\n\n}\n","import Module from '../../__module';\nimport {Styles} from '../../../../types/api';\n\n/**\n *\n */\nexport default class StylesAPI extends Module {\n get classes(): Styles {\n return {\n /**\n * Base Block styles\n */\n block: 'cdx-block',\n\n /**\n * Inline Tools styles\n */\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonActive: 'ce-inline-tool--active',\n\n /**\n * UI elements\n */\n input: 'cdx-input',\n loader: 'cdx-loader',\n button: 'cdx-button',\n\n /**\n * Settings styles\n */\n settingsButton: 'cdx-settings-button',\n settingsButtonActive: 'cdx-settings-button--active',\n };\n }\n}\n","import Module from '../../__module';\nimport {Toolbar} from '../../../../types/api';\n\n/**\n * @class ToolbarAPI\n * provides with methods working with Toolbar\n */\nexport default class ToolbarAPI extends Module {\n /**\n * Available methods\n * @return {Toolbar}\n */\n get methods(): Toolbar {\n return {\n close: () => this.close(),\n open: () => this.open(),\n };\n }\n\n /**\n * Open toolbar\n */\n public open(): void {\n this.Editor.Toolbar.open();\n }\n\n /**\n * Close toolbar and all included elements\n */\n public close(): void {\n this.Editor.Toolbar.close();\n }\n\n}\n","/**\r\n * Contains keyboard and mouse events binded on each Block by Block Manager\r\n */\r\nimport Module from '../__module';\r\nimport _ from '../utils';\r\n\r\nexport default class BlockEvents extends Module {\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 case _.keyCodes.ESC:\r\n this.escapePressed(event);\r\n break;\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 * 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 const cmdKey = event.ctrlKey || event.metaKey;\r\n const altKey = event.altKey;\r\n const shiftKey = event.shiftKey;\r\n\r\n /** clear selecton when it is not CMD, SHIFT, ALT keys */\r\n if (cmdKey || altKey || shiftKey) {\r\n return;\r\n }\r\n\r\n /**\r\n * Clear all highlightings\r\n */\r\n this.Editor.BlockManager.clearFocused();\r\n\r\n /** Clear Block selection and restore caret */\r\n this.Editor.BlockSelection.clearSelection(true);\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 * Escape pressed\r\n * @param event\r\n */\r\n public escapePressed(event): void { }\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 as Node);\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 as Node);\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.available[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.available[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 as HTMLElement);\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","/**\n * @class BlockManager\n * @classdesc Manage editor`s blocks storage and appearance\n *\n * @module BlockManager\n *\n * @version 2.0.0\n */\nimport Block from '../block';\nimport Module from '../__module';\nimport $ from '../dom';\nimport Blocks from '../blocks';\nimport {BlockTool, BlockToolConstructable, BlockToolData, ToolConfig} from '../../../types';\nimport Caret from './caret';\n\n/**\n * @typedef {BlockManager} BlockManager\n * @property {Number} currentBlockIndex - Index of current working block\n * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks}\n */\nexport default class BlockManager extends Module {\n\n /**\n * returns last Block\n * @return {Block}\n */\n public get lastBlock(): Block {\n return this._blocks[this._blocks.length - 1];\n }\n\n /**\n * Get current Block instance\n *\n * @return {Block}\n */\n public get currentBlock(): Block {\n return this._blocks[this.currentBlockIndex];\n }\n\n /**\n * Returns next Block instance\n * @return {Block|null}\n */\n public get nextBlock(): Block {\n const isLastBlock = this.currentBlockIndex === (this._blocks.length - 1);\n\n if (isLastBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex + 1];\n }\n\n /**\n * Return first Block with inputs after current Block\n *\n * @returns {Block | undefined}\n */\n public get nextContentfulBlock(): Block {\n const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1);\n\n return nextBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Return first Block with inputs before current Block\n *\n * @returns {Block | undefined}\n */\n public get previousContentfulBlock(): Block {\n const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse();\n\n return previousBlocks.find((block) => !!block.inputs.length);\n }\n\n /**\n * Returns previous Block instance\n * @return {Block|null}\n */\n public get previousBlock(): Block {\n const isFirstBlock = this.currentBlockIndex === 0;\n\n if (isFirstBlock) {\n return null;\n }\n\n return this._blocks[this.currentBlockIndex - 1];\n }\n\n /**\n * Get array of Block instances\n *\n * @returns {Block[]} {@link Blocks#array}\n */\n public get blocks(): Block[] {\n return this._blocks.array;\n }\n\n /**\n * Index of current working block\n *\n * @type {number}\n */\n public currentBlockIndex: number = -1;\n\n /**\n * Proxy for Blocks instance {@link Blocks}\n *\n * @type {Proxy}\n * @private\n */\n private _blocks: Blocks = null;\n\n /**\n * Should be called after Editor.UI preparation\n * Define this._blocks property\n *\n * @returns {Promise}\n */\n public async prepare() {\n const blocks = new Blocks(this.Editor.UI.nodes.redactor);\n\n /**\n * We need to use Proxy to overload set/get [] operator.\n * So we can use array-like syntax to access blocks\n *\n * @example\n * this._blocks[0] = new Block(...);\n *\n * block = this._blocks[0];\n *\n * @todo proxy the enumerate method\n *\n * @type {Proxy}\n * @private\n */\n this._blocks = new Proxy(blocks, {\n set: Blocks.set,\n get: Blocks.get,\n });\n }\n\n /**\n * Creates Block instance by tool name\n *\n * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools}\n * @param {Object} data - constructor params\n * @param {Object} settings - block settings\n *\n * @return {Block}\n */\n public composeBlock(toolName: string, data: BlockToolData, settings?: ToolConfig): Block {\n const toolInstance = this.Editor.Tools.construct(toolName, data) as BlockTool;\n const toolClass = this.Editor.Tools.available[toolName] as BlockToolConstructable;\n const block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods);\n\n this.bindEvents(block);\n\n return block;\n }\n\n /**\n * Insert new block into _blocks\n *\n * @param {String} toolName — plugin name, by default method inserts initial block type\n * @param {Object} data — plugin data\n * @param {Object} settings - default settings\n *\n * @return {Block}\n */\n public insert(\n toolName: string = this.config.initialBlock,\n data: BlockToolData = {},\n settings: ToolConfig = {},\n ): Block {\n // Increment index before construct,\n // because developers can use API/Blocks/getCurrentInputIndex on the render() method\n const newIndex = ++this.currentBlockIndex;\n const block = this.composeBlock(toolName, data, settings);\n\n this._blocks[newIndex] = block;\n return block;\n }\n\n /**\n * Always inserts at the end\n * @return {Block}\n */\n public insertAtEnd(): Block {\n /**\n * Define new value for current block index\n */\n this.currentBlockIndex = this.blocks.length - 1;\n\n /**\n * Insert initial typed block\n */\n return this.insert();\n }\n\n /**\n * Merge two blocks\n * @param {Block} targetBlock - previous block will be append to this block\n * @param {Block} blockToMerge - block that will be merged with target block\n *\n * @return {Promise} - the sequence that can be continued\n */\n public async mergeBlocks(targetBlock: Block, blockToMerge: Block): Promise {\n const blockToMergeIndex = this._blocks.indexOf(blockToMerge);\n\n if (blockToMerge.isEmpty) {\n return;\n }\n\n const blockToMergeData = await blockToMerge.data;\n\n await targetBlock.mergeWith(blockToMergeData);\n\n this.removeBlock(blockToMergeIndex);\n this.currentBlockIndex = this._blocks.indexOf(targetBlock);\n }\n\n /**\n * Remove block with passed index or remove last\n * @param {Number|null} index\n */\n public removeBlock(index?: number): void {\n if (!index) {\n index = this.currentBlockIndex;\n }\n this._blocks.remove(index);\n\n /**\n * If first Block was removed, insert new Initial Block and set focus on it`s first input\n */\n if (!this.blocks.length) {\n this.currentBlockIndex = -1;\n this.insert();\n this.currentBlock.firstInput.focus();\n }\n }\n\n /**\n * Split current Block\n * 1. Extract content from Caret position to the Block`s end\n * 2. Insert a new Block below current one with extracted content\n *\n * @return {Block}\n */\n public split(): Block {\n const extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition();\n const wrapper = $.make('div');\n\n wrapper.append(extractedFragment);\n\n /**\n * @todo make object in accordance with Tool\n */\n const data = {\n text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML,\n };\n\n /**\n * Renew current Block\n * @type {Block}\n */\n return this.insert(this.config.initialBlock, data);\n }\n\n /**\n * Replace current working block\n *\n * @param {String} toolName — plugin name\n * @param {Object} data — plugin data\n *\n * @return {Block}\n */\n public replace(toolName: string, data: BlockToolData = {}): Block {\n const block = this.composeBlock(toolName, data);\n\n this._blocks.insert(this.currentBlockIndex, block, true);\n\n return block;\n }\n\n /**\n * Returns Block by passed index\n * @param {Number} index\n * @return {Block}\n */\n public getBlockByIndex(index): Block {\n return this._blocks[index];\n }\n\n /**\n * Get Block instance by html element\n * @param {Node} element\n * @returns {Block}\n */\n public getBlock(element: HTMLElement): Block {\n if (!$.isElement(element)) {\n element = element.parentNode as HTMLElement;\n }\n\n const nodes = this._blocks.nodes,\n firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`),\n index = nodes.indexOf(firstLevelBlock as HTMLElement);\n\n if (index >= 0) {\n return this._blocks[index];\n }\n }\n\n /**\n * Remove selection from all Blocks then highlight only Current Block\n */\n public highlightCurrentNode(): void {\n /**\n * Remove previous selected Block's state\n */\n this.clearFocused();\n\n /**\n * Mark current Block as selected\n * @type {boolean}\n */\n this.currentBlock.focused = true;\n }\n\n /**\n * Remove selection from all Blocks\n */\n public clearFocused(): void {\n this.blocks.forEach( (block) => block.focused = false);\n }\n\n /**\n * 1) Find first-level Block from passed child Node\n * 2) Mark it as current\n *\n * @param {Node} childNode - look ahead from this node.\n * @param {string} caretPosition - position where to set caret\n * @throws Error - when passed Node is not included at the Block\n */\n public setCurrentBlockByChildNode(childNode: Node, caretPosition: string = Caret.positions.DEFAULT): void {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const parentFirstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n if (parentFirstLevelBlock) {\n /**\n * Update current Block's index\n * @type {number}\n */\n this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock as HTMLElement);\n\n this.Editor.Caret.setToInput(childNode as HTMLElement, caretPosition);\n } else {\n throw new Error('Can not find a Block from this child Node');\n }\n }\n\n /**\n * Return block which contents passed node\n *\n * @param {Node} childNode\n * @return {Block}\n */\n public getBlockByChildNode(childNode: Node): Block {\n /**\n * If node is Text TextNode\n */\n if (!$.isElement(childNode)) {\n childNode = childNode.parentNode;\n }\n\n const firstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`);\n\n return this.blocks.find((block) => block.holder === firstLevelBlock);\n }\n\n /**\n * Swap Blocks Position\n * @param {Number} fromIndex\n * @param {Number} toIndex\n */\n public swap(fromIndex, toIndex): void {\n /** Move up current Block */\n this._blocks.swap(fromIndex, toIndex);\n\n /** Now actual block moved up so that current block index decreased */\n this.currentBlockIndex = toIndex;\n }\n\n /**\n * Sets current Block Index -1 which means unknown\n * and clear highlightings\n */\n public dropPointer(): void {\n this.currentBlockIndex = -1;\n this.clearFocused();\n }\n\n /**\n * Clears Editor\n * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render)\n * we don't need to add empty initial block\n * 2) in api.blocks.clear we should add empty block\n */\n public clear(needAddInitialBlock: boolean = false): void {\n this._blocks.removeAll();\n this.dropPointer();\n\n if (needAddInitialBlock) {\n this.insert(this.config.initialBlock);\n }\n }\n\n /**\n * Bind Events\n * @param {Object} block\n */\n private bindEvents(block: Block): void {\n const {BlockEvents, Listeners} = this.Editor;\n\n Listeners.on(block.holder, 'keydown', (event) => BlockEvents.keydown(event as KeyboardEvent), true);\n Listeners.on(block.holder, 'mouseup', (event) => BlockEvents.mouseUp(event));\n Listeners.on(block.holder, 'keyup', (event) => BlockEvents.keyup(event));\n Listeners.on(block.holder, 'dragover', (event) => BlockEvents.dragOver(event as DragEvent));\n Listeners.on(block.holder, 'dragleave', (event) => BlockEvents.dragLeave(event as DragEvent));\n }\n}\n","/**\r\n * @class BlockSelection\r\n * @classdesc Manages Block selection with shortcut CMD+A and with mouse\r\n *\r\n * @module BlockSelection\r\n * @version 1.0.0\r\n */\r\nimport Module from '../__module';\r\nimport _ from '../utils';\r\nimport $ from '../dom';\r\n\r\nimport SelectionUtils from '../selection';\r\n\r\nexport default class BlockSelection extends Module {\r\n /**\r\n * Flag used to define block selection\r\n * First CMD+A defines it as true and then second CMD+A selects all Blocks\r\n * @type {boolean}\r\n */\r\n private needToSelectAll: boolean = false;\r\n\r\n /**\r\n * SelectionUtils instance\r\n * @type {SelectionUtils}\r\n */\r\n private selection: SelectionUtils;\r\n\r\n /**\r\n * Module Preparation\r\n * Registers Shortcuts CMD+A and CMD+C\r\n * to select all and copy them\r\n */\r\n public prepare(): void {\r\n const { Shortcuts } = this.Editor;\r\n\r\n /** Selection shortcut */\r\n Shortcuts.add({\r\n name: 'CMD+A',\r\n handler: (event) => {\r\n this.handleCommandA(event);\r\n },\r\n });\r\n\r\n /** shortcut to copy all selected blocks */\r\n Shortcuts.add({\r\n name: 'CMD+C',\r\n handler: (event) => {\r\n this.handleCommandC(event);\r\n },\r\n });\r\n\r\n this.selection = new SelectionUtils();\r\n }\r\n\r\n /**\r\n * Clear selection from Blocks\r\n */\r\n public clearSelection(restoreSelection = false) {\r\n const { BlockManager } = this.Editor;\r\n const anyBlockSelected = BlockManager.blocks.findIndex( (block) => block.selected === true) !== -1;\r\n\r\n if (!anyBlockSelected) {\r\n return;\r\n }\r\n\r\n this.needToSelectAll = false;\r\n BlockManager.blocks.forEach( (block) => block.selected = false);\r\n\r\n /**\r\n * restore selection when Block is already selected\r\n * but someone tries to write something.\r\n */\r\n if (restoreSelection) {\r\n this.selection.restore();\r\n }\r\n }\r\n\r\n /**\r\n * First CMD+A Selects current focused blocks,\r\n * and consequent second CMD+A keypress selects all blocks\r\n *\r\n * @param {keydown} event\r\n */\r\n private handleCommandA(event): void {\r\n /** Prevent default selection */\r\n event.preventDefault();\r\n\r\n if (this.needToSelectAll) {\r\n this.selectAllBlocks();\r\n this.needToSelectAll = false;\r\n } else {\r\n this.selectBlockByIndex();\r\n this.needToSelectAll = true;\r\n }\r\n }\r\n\r\n /**\r\n * Copying selected blocks\r\n * Before putting to the clipboard we sanitize all blocks and then copy to the clipboard\r\n *\r\n * @param event\r\n */\r\n private handleCommandC(event): void {\r\n const { BlockManager, Sanitizer } = this.Editor;\r\n const anyBlockSelected = BlockManager.blocks.some( (block) => block.selected === true);\r\n\r\n if (!anyBlockSelected) {\r\n return;\r\n }\r\n\r\n const fakeClipboard = $.make('div');\r\n\r\n BlockManager.blocks.filter( (block) => block.selected )\r\n .forEach( (block) => {\r\n /**\r\n * Make

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

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

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

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

    ';\n }\n\n /** Add all tags that can be substituted to sanitizer configuration */\n const toolsTags = Object.keys(this.toolsTags).reduce((result, tag) => {\n result[tag.toLowerCase()] = true;\n\n return result;\n }, {});\n\n const customConfig = Object.assign({}, toolsTags, Sanitizer.getAllInlineToolsConfig());\n\n const cleanData = Sanitizer.clean(htmlData, customConfig);\n\n /** If there is no HTML or HTML string is equal to plain one, process it as plain text */\n if (!cleanData.trim() || cleanData.trim() === plainData || !$.isHTMLString(cleanData)) {\n await this.processText(plainData);\n } else {\n await this.processText(cleanData, true);\n }\n }\n\n /**\n * Set onPaste callback handler\n */\n private setCallback(): void {\n const {Listeners, UI} = this.Editor;\n\n Listeners.on(UI.nodes.redactor, 'paste', this.handlePasteEvent);\n }\n\n /**\n * Get and process tool`s paste configs\n */\n private processTools(): void {\n const tools = this.Editor.Tools.blockTools;\n\n Object.entries(tools).forEach(this.processTool);\n }\n\n /**\n * Process paste config for each tool\n *\n * @param {string} name\n * @param {Tool} tool\n */\n private processTool = ([name, tool]) => {\n try {\n const toolPasteConfig = tool.onPaste || {};\n\n this.getTagsConfig(name, toolPasteConfig);\n this.getFilesConfig(name, toolPasteConfig);\n this.getPatternsConfig(name, toolPasteConfig);\n } catch (e) {\n _.log(\n `Paste handling for «${name}» Tool hasn't been set up because of the error`,\n 'warn',\n e,\n );\n }\n }\n\n /**\n * Get tags to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getTagsConfig(name: string, toolPasteConfig: PasteConfig): void {\n if (this.config.initialBlock === name && !toolPasteConfig.handler) {\n _.log(\n `«${name}» Tool must provide a paste handler.`,\n 'warn',\n );\n }\n\n if (!toolPasteConfig.handler) {\n return;\n }\n\n if (typeof toolPasteConfig.handler !== 'function') {\n _.log(\n `Paste handler for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n const tags = toolPasteConfig.tags || [];\n\n tags.forEach((tag) => {\n if (this.toolsTags.hasOwnProperty(tag)) {\n _.log(\n `Paste handler for «${name}» Tool on «${tag}» tag is skipped ` +\n `because it is already used by «${this.toolsTags[tag].tool}» Tool.`,\n 'warn',\n );\n return;\n }\n\n this.toolsTags[tag.toUpperCase()] = {\n handler: toolPasteConfig.handler,\n tool: name,\n };\n });\n\n this.tagsByTool[name] = tags.map((t) => t.toUpperCase());\n }\n\n /**\n * Get files` types and extensions to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getFilesConfig(name: string, toolPasteConfig: PasteConfig): void {\n\n const {fileHandler, files = {}} = toolPasteConfig;\n let {extensions, mimeTypes} = files;\n\n if (!fileHandler || (!extensions && !mimeTypes)) {\n return;\n }\n\n if (typeof fileHandler !== 'function') {\n _.log(`Drop handler for «${name}» Tool should be a function.`);\n return;\n }\n\n if (extensions && !Array.isArray(extensions)) {\n _.log(`«extensions» property of the onDrop config for «${name}» Tool should be an array`);\n extensions = [];\n }\n\n if (mimeTypes && !Array.isArray(mimeTypes)) {\n _.log(`«mimeTypes» property of the onDrop config for «${name}» Tool should be an array`);\n mimeTypes = [];\n }\n\n if (mimeTypes) {\n mimeTypes = mimeTypes.filter((type) => {\n if (!_.isValidMimeType(type)) {\n _.log(`MIME type value «${type}» for the «${name}» Tool is not a valid MIME type`, 'warn');\n return false;\n }\n\n return true;\n });\n }\n\n this.toolsFiles[name] = {\n extensions: extensions || [],\n mimeTypes: mimeTypes || [],\n handler: fileHandler,\n };\n }\n\n /**\n * Get RegExp patterns to substitute by Tool\n *\n * @param {string} name - Tool name\n * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration\n */\n private getPatternsConfig(name: string, toolPasteConfig: PasteConfig): void {\n if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) {\n return;\n }\n\n if (typeof toolPasteConfig.patternHandler !== 'function') {\n _.log(\n `Pattern parser for «${name}» Tool should be a function.`,\n 'warn',\n );\n\n return;\n }\n\n Object.entries(toolPasteConfig.patterns).forEach(([key, pattern]: [string, RegExp]) => {\n /** Still need to validate pattern as it provided by user */\n if (!(pattern instanceof RegExp)) {\n _.log(\n `Pattern ${pattern} for «${name}» Tool is skipped because it should be a Regexp instance.`,\n 'warn',\n );\n }\n\n this.toolsPatterns.push({\n key,\n pattern,\n handler: toolPasteConfig.patternHandler,\n tool: name,\n });\n });\n }\n\n /**\n * Check if browser behavior suits better\n *\n * @param {EventTarget} element - element where content has been pasted\n * @returns {boolean}\n */\n private isNativeBehaviour(element: EventTarget): boolean {\n const {Editor: {BlockManager}} = this;\n\n if ( $.isNativeInput(element) ) {\n return true;\n }\n\n const block = BlockManager.getBlock(element as HTMLElement);\n\n return !block;\n }\n\n /**\n * Check if Editor should process pasted data and pass data transfer object to handler\n *\n * @param {ClipboardEvent} event\n */\n private handlePasteEvent = async (event: ClipboardEvent): Promise => {\n /** If target is native input or is not Block, use browser behaviour */\n if (\n this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files')\n ) {\n return;\n }\n\n event.preventDefault();\n this.processDataTransfer(event.clipboardData);\n }\n\n /**\n * Get files from data transfer object and insert related Tools\n *\n * @param {DataTransferItemList} items - pasted or dropped items\n */\n private async processFiles(items: DataTransferItemList) {\n const {BlockManager} = this.Editor;\n\n let dataToInsert: Array<{type: string, data: BlockToolData}>;\n\n dataToInsert = await Promise.all(\n Array\n .from(items)\n .map((item) => this.processFile(item)),\n );\n dataToInsert = dataToInsert.filter((data) => !!data);\n\n dataToInsert.forEach(\n (data, i) => {\n if (i === 0 && BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n BlockManager.replace(data.type, data.data);\n return;\n }\n\n BlockManager.insert(data.type, data.data);\n },\n );\n }\n\n /**\n * Get information about file and find Tool to handle it\n *\n * @param {DataTransferItem} item\n */\n private async processFile(item: DataTransferItem) {\n if (item.kind === 'string') {\n return;\n }\n\n const file = item.getAsFile();\n const extension = _.getFileExtension(file);\n\n const foundConfig = Object\n .entries(this.toolsFiles)\n .find(([toolName, {mimeTypes, extensions}]) => {\n const [fileType, fileSubtype] = file.type.split('/');\n\n const foundExt = extensions.find((ext) => ext.toLowerCase() === extension.toLowerCase());\n const foundMimeType = mimeTypes.find((mime) => {\n const [type, subtype] = mime.split('/');\n\n return type === fileType && (subtype === fileSubtype || subtype === '*');\n });\n\n return !!foundExt || !!foundMimeType;\n });\n\n if (!foundConfig) {\n return;\n }\n\n const [tool, {handler}] = foundConfig;\n return {\n data: await handler(file),\n type: tool,\n };\n }\n\n /**\n * Process pasted text and divide them into Blocks\n *\n * @param {string} data - text to process. Can be HTML or plain.\n * @param {boolean} isHTML - if passed string is HTML, this parameter should be true\n */\n private async processText(data: string, isHTML: boolean = false) {\n const {Caret, BlockManager} = this.Editor;\n const dataToInsert = isHTML ? this.processHTML(data) : this.processPlain(data);\n\n if (!dataToInsert.length) {\n return;\n }\n\n if (dataToInsert.length === 1 && !dataToInsert[0].isBlock) {\n this.processSingleBlock(dataToInsert.pop());\n return;\n }\n\n /**\n * If caret not at the end of of the Block and there is no selection,\n * we split the Block and insert content at the middle.\n */\n if (SelectionUtils.isAtEditor && !Caret.isAtEnd && SelectionUtils.isCollapsed) {\n this.splitBlock();\n }\n\n await Promise.all(dataToInsert.map(\n async (content, i) => await this.insertBlock(content, i === 0),\n ));\n\n Caret.setToBlock(BlockManager.currentBlock, CaretClass.positions.END);\n }\n\n /**\n * Split HTML string to blocks and return it as array of Block data\n *\n * @param {string} innerHTML\n * @returns {PasteData[]}\n */\n private processHTML(innerHTML: string): PasteData[] {\n const {Tools, Sanitizer} = this.Editor,\n initialTool = this.config.initialBlock,\n wrapper = $.make('DIV');\n\n wrapper.innerHTML = innerHTML;\n\n const nodes = this.getNodes(wrapper);\n\n return nodes\n .map((node) => {\n let content, tool = initialTool, isBlock = false;\n\n switch (node.nodeType) {\n /** If node is a document fragment, use temp wrapper to get innerHTML */\n case Node.DOCUMENT_FRAGMENT_NODE:\n content = $.make('div');\n content.appendChild(node);\n break;\n\n /** If node is an element, then there might be a substitution */\n case Node.ELEMENT_NODE:\n content = node as HTMLElement;\n isBlock = true;\n\n if (this.toolsTags[content.tagName]) {\n tool = this.toolsTags[content.tagName].tool;\n }\n break;\n }\n\n const {handler, tags} = Tools.blockTools[tool].onPaste;\n\n const toolTags = tags.reduce((result, tag) => {\n result[tag.toLowerCase()] = {};\n\n return result;\n }, {});\n const customConfig = Object.assign({}, toolTags, Sanitizer.getInlineToolsConfig(tool));\n\n content.innerHTML = Sanitizer.clean(content.innerHTML, customConfig);\n\n return {content, isBlock, handler, tool};\n })\n .filter((data) => !$.isNodeEmpty(data.content) || $.isSingleTag(data.content));\n }\n\n /**\n * Split plain text by new line symbols and return it as array of Block data\n *\n * @param {string} plain\n * @returns {PasteData[]}\n */\n private processPlain(plain: string): PasteData[] {\n const {initialBlock} = this.config as {initialBlock: string},\n {Tools} = this.Editor;\n\n if (!plain) {\n return [];\n }\n\n const tool = initialBlock,\n handler = Tools.blockTools[tool].onPaste.handler;\n\n return plain\n .split(/\\r?\\n/)\n .filter((text) => text.trim())\n .map((text) => {\n const content = $.make('div');\n\n content.innerHTML = text;\n\n return {content, tool, isBlock: false, handler};\n });\n }\n\n /**\n * Process paste to single Block:\n * 1. Find patterns` matches\n * 2. Insert new block if it is not the same type as current one\n * 3. Just insert text if there is no substitutions\n *\n * @param {PasteData} dataToInsert\n */\n private async processSingleBlock(dataToInsert: PasteData): Promise {\n const initialTool = this.config.initialBlock,\n {BlockManager, Caret, Sanitizer} = this.Editor,\n {content, tool} = dataToInsert;\n\n if (tool === initialTool && content.textContent.length < Paste.PATTERN_PROCESSING_MAX_LENGTH) {\n const blockData = await this.processPattern(content.textContent);\n\n if (blockData) {\n this.splitBlock();\n let insertedBlock;\n\n const sanitizeConfig = Sanitizer.composeToolConfig(tool);\n\n if (!_.isEmpty(sanitizeConfig)) {\n blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);\n }\n\n if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {\n insertedBlock = BlockManager.replace(blockData.tool, blockData.data);\n } else {\n insertedBlock = BlockManager.insert(blockData.tool, blockData.data);\n }\n Caret.setToBlock(insertedBlock, CaretClass.positions.END);\n return;\n }\n }\n\n const currentToolSanitizeConfig = Sanitizer.getInlineToolsConfig(BlockManager.currentBlock.name);\n\n /** If there is no pattern substitute - insert string as it is */\n document.execCommand('insertHTML', false, Sanitizer.clean(content.innerHTML, currentToolSanitizeConfig));\n }\n\n /**\n * Get patterns` matches\n *\n * @param {string} text\n * @returns Promise<{data: BlockToolData, tool: string}>\n */\n private async processPattern(text: string): Promise<{data: BlockToolData, tool: string}> {\n const pattern = this.toolsPatterns.find((substitute) => {\n const execResult = substitute.pattern.exec(text);\n\n if (!execResult) {\n return false;\n }\n\n return text === execResult.shift();\n });\n\n const data = pattern && await pattern.handler(text, pattern.key);\n\n return data && {\n data,\n tool: pattern.tool,\n };\n }\n\n /**\n *\n * @param {PasteData} data\n * @param {Boolean} canReplaceCurrentBlock - if true and is current Block is empty, will replace current Block\n * @returns {Promise}\n */\n private async insertBlock(data: PasteData, canReplaceCurrentBlock: boolean = false): Promise {\n const blockData = await data.handler(data.content),\n {BlockManager, Caret} = this.Editor,\n {currentBlock} = BlockManager;\n\n if (canReplaceCurrentBlock && currentBlock && currentBlock.isEmpty) {\n BlockManager.replace(data.tool, blockData);\n return;\n }\n\n const block = BlockManager.insert(data.tool, blockData);\n\n Caret.setToBlock(block);\n }\n\n /**\n * Split current block if paste isn't in the end of the block\n */\n private splitBlock() {\n const {BlockManager, Caret} = this.Editor;\n\n if (!BlockManager.currentBlock) {\n return;\n }\n\n /** If we paste into middle of the current block:\n * 1. Split\n * 2. Navigate to the first part\n */\n if (!BlockManager.currentBlock.isEmpty && !Caret.isAtEnd) {\n BlockManager.split();\n BlockManager.currentBlockIndex--;\n }\n }\n\n /**\n * Recursively divide HTML string to two types of nodes:\n * 1. Block element\n * 2. Document Fragments contained text and markup tags like a, b, i etc.\n *\n * @param {Node} wrapper\n * @returns {Node[]}\n */\n private getNodes(wrapper: Node): Node[] {\n const children = Array.from(wrapper.childNodes),\n tags = Object.keys(this.toolsTags);\n\n const reducer = (nodes: Node[], node: Node): Node[] => {\n if ($.isEmpty(node) && !$.isSingleTag(node as HTMLElement)) {\n return nodes;\n }\n\n const lastNode = nodes[nodes.length - 1];\n\n let destNode: Node = new DocumentFragment();\n\n if (lastNode && $.isFragment(lastNode)) {\n destNode = nodes.pop();\n }\n\n switch (node.nodeType) {\n /**\n * If node is HTML element:\n * 1. Check if it is inline element\n * 2. Check if it contains another block or substitutable elements\n */\n case Node.ELEMENT_NODE:\n const element = node as HTMLElement;\n\n const {tool = ''} = this.toolsTags[element.tagName] || {};\n const toolTags = this.tagsByTool[tool] || [];\n\n const isSubstitutable = tags.includes(element.tagName);\n const isBlockElement = $.blockElements.includes(element.tagName.toLowerCase());\n const containsAnotherToolTags = Array\n .from(element.children)\n .some(\n ({tagName}) => tags.includes(tagName) && !toolTags.includes(tagName),\n );\n\n const containsBlockElements = Array.from(element.children).some(\n ({tagName}) => $.blockElements.includes(tagName.toLowerCase()),\n );\n\n /** Append inline elements to previous fragment */\n if (!isBlockElement && !isSubstitutable) {\n destNode.appendChild(element);\n return [...nodes, destNode];\n }\n\n if (\n (isSubstitutable && !containsAnotherToolTags) ||\n (isBlockElement && !containsBlockElements && !containsAnotherToolTags )\n ) {\n return [...nodes, destNode, element];\n }\n break;\n\n /**\n * If node is text node, wrap it with DocumentFragment\n */\n case Node.TEXT_NODE:\n destNode.appendChild(node);\n return [...nodes, destNode];\n\n default:\n return [...nodes, destNode];\n }\n\n return [...nodes, ...Array.from(node.childNodes).reduce(reducer, [])];\n };\n\n return children.reduce(reducer, []);\n }\n}\n","import Module from '../__module';\nimport _, {ChainData} from '../utils';\nimport {BlockToolData} from '../../../types';\n\n/**\n * Codex Editor Renderer Module\n *\n * @module Renderer\n * @author CodeX Team\n *\n * @version 2.0.0\n */\nexport default class Renderer extends Module {\n /**\n * @typedef {Object} RendererBlocks\n * @property {String} type - tool name\n * @property {Object} data - tool data\n */\n\n /**\n * @example\n *\n * blocks: [\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Hello from Codex!'\n * }\n * },\n * {\n * type : 'paragraph',\n * data : {\n * text : 'Leave feedback if you like it!'\n * }\n * },\n * ]\n *\n */\n\n /**\n * Make plugin blocks from array of plugin`s data\n * @param {RendererBlocks[]} blocks\n */\n public render(blocks: BlockToolData[]): Promise {\n const chainData = blocks.map((block) => ({function: () => this.insertBlock(block)}));\n\n return _.sequence(chainData as ChainData[]);\n }\n\n /**\n * Get plugin instance\n * Add plugin instance to BlockManager\n * Insert block to working zone\n *\n * @param {Object} item\n * @returns {Promise}\n * @private\n */\n public async insertBlock(item): Promise {\n const tool = item.type;\n const data = item.data;\n const settings = item.settings;\n\n if (tool in this.Editor.Tools.available) {\n try {\n this.Editor.BlockManager.insert(tool, data, settings);\n } catch (error) {\n _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data);\n throw Error(error);\n }\n } else {\n /**\n * @todo show warning notification message\n *\n * `${tool} blocks was skipped.`\n */\n _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn');\n }\n }\n}\n","/**\n * CodeX Sanitizer\n *\n * @module Sanitizer\n * Clears HTML from taint tags\n *\n * @version 2.0.0\n *\n * @example\n * Module can be used within two ways:\n * 1) When you have an instance\n * - this.Editor.Sanitizer.clean(yourTaintString);\n * 2) As static method\n * - CodexEditor.Sanitizer.clean(yourTaintString, yourCustomConfiguration);\n *\n * {@link SanitizerConfig}\n */\n\nimport Module from '../__module';\nimport _ from '../utils';\n\n/**\n * @typedef {Object} SanitizerConfig\n * @property {Object} tags - define tags restrictions\n *\n * @example\n *\n * tags : {\n * p: true,\n * a: {\n * href: true,\n * rel: \"nofollow\",\n * target: \"_blank\"\n * }\n * }\n */\n\nimport HTMLJanitor from 'html-janitor';\nimport {BlockToolData, InlineToolConstructable, SanitizerConfig} from '../../../types';\n\nexport default class Sanitizer extends Module {\n /**\n * Memoize tools config\n */\n private configCache: {[toolName: string]: SanitizerConfig} = {};\n\n /**\n * Cached inline tools config\n */\n private inlineToolsConfigCache: SanitizerConfig | null = null;\n\n /**\n * Sanitize Blocks\n *\n * Enumerate blocks and clean data\n *\n * @param {{tool, data: BlockToolData}[]} blocksData[]\n */\n public sanitizeBlocks(\n blocksData: Array<{tool: string, data: BlockToolData}>,\n ): Array<{tool: string, data: BlockToolData}> {\n\n return blocksData.map((block) => {\n const toolConfig = this.composeToolConfig(block.tool);\n\n if (_.isEmpty(toolConfig)) {\n return block;\n }\n\n block.data = this.deepSanitize(block.data, toolConfig);\n\n return block;\n });\n }\n\n /**\n * Method recursively reduces Block's data and cleans with passed rules\n *\n * @param {BlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string\n * @param {SanitizerConfig} rules - object with sanitizer rules\n */\n public deepSanitize(dataToSanitize: any, rules: SanitizerConfig): any {\n /**\n * BlockData It may contain 3 types:\n * - Array\n * - Object\n * - Primitive\n */\n if (Array.isArray(dataToSanitize)) {\n /**\n * Array: call sanitize for each item\n */\n return this.cleanArray(dataToSanitize, rules);\n } else if (typeof dataToSanitize === 'object') {\n /**\n * Objects: just clean object deeper.\n */\n return this.cleanObject(dataToSanitize, rules);\n } else {\n /**\n * Primitives (number|string|boolean): clean this item\n *\n * Clean only strings\n */\n if (typeof dataToSanitize === 'string') {\n return this.cleanOneItem(dataToSanitize, rules);\n }\n return dataToSanitize;\n }\n }\n\n /**\n * Cleans string from unwanted tags\n * Method allows to use default config\n *\n * @param {string} taintString - taint string\n * @param {SanitizerConfig} customConfig - allowed tags\n *\n * @return {string} clean HTML\n */\n public clean(taintString: string, customConfig: SanitizerConfig = {} as SanitizerConfig): string {\n\n const sanitizerConfig = {\n tags: customConfig,\n };\n\n /**\n * API client can use custom config to manage sanitize process\n */\n const sanitizerInstance = this.createHTMLJanitorInstance(sanitizerConfig);\n return sanitizerInstance.clean(taintString);\n }\n\n /**\n * Merge with inline tool config\n *\n * @param {string} toolName\n * @param {SanitizerConfig} toolRules\n * @return {SanitizerConfig}\n */\n public composeToolConfig(toolName: string): SanitizerConfig {\n /**\n * If cache is empty, then compose tool config and put it to the cache object\n */\n if (this.configCache[toolName]) {\n return this.configCache[toolName];\n }\n\n const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;\n const toolClass = this.Editor.Tools.available[toolName];\n const baseConfig = this.getInlineToolsConfig(toolName);\n\n /**\n * If Tools doesn't provide sanitizer config or it is empty\n */\n if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {\n return baseConfig;\n }\n\n const toolRules = toolClass.sanitize;\n\n const toolConfig = {} as SanitizerConfig;\n for (const fieldName in toolRules) {\n if (toolRules.hasOwnProperty(fieldName)) {\n const rule = toolRules[fieldName];\n if (typeof rule === 'object') {\n toolConfig[fieldName] = Object.assign({}, baseConfig, rule);\n } else {\n toolConfig[fieldName] = rule;\n }\n }\n }\n this.configCache[toolName] = toolConfig;\n\n return toolConfig;\n }\n\n /**\n * Returns Sanitizer config\n * When Tool's \"inlineToolbar\" value is True, get all sanitizer rules from all tools,\n * otherwise get only enabled\n */\n public getInlineToolsConfig(name: string): SanitizerConfig {\n const {Tools} = this.Editor;\n\n const toolsConfig = Tools.getToolSettings(name),\n enableInlineTools = toolsConfig.inlineToolbar || [];\n\n let config = {} as SanitizerConfig;\n\n if (typeof enableInlineTools === 'boolean' && enableInlineTools) {\n /**\n * getting all tools sanitizer rule\n */\n config = this.getAllInlineToolsConfig();\n } else {\n /**\n * getting only enabled\n */\n (enableInlineTools as string[]).map( (inlineToolName) => {\n config = Object.assign(\n config,\n Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG],\n ) as SanitizerConfig;\n });\n }\n\n return config;\n }\n\n /**\n * Return general config for all inline tools\n */\n public getAllInlineToolsConfig(): SanitizerConfig {\n const {Tools} = this.Editor;\n\n if (this.inlineToolsConfigCache) {\n return this.inlineToolsConfigCache;\n }\n\n const config: SanitizerConfig = {} as SanitizerConfig;\n\n Object.entries(Tools.inline)\n .forEach( ([name, inlineTool]: [string, InlineToolConstructable]) => {\n Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]);\n });\n\n this.inlineToolsConfigCache = config;\n\n return this.inlineToolsConfigCache;\n }\n\n /**\n * Clean array\n * @param {array} array - [1, 2, {}, []]\n * @param {object} ruleForItem\n */\n private cleanArray(array: any[], ruleForItem: SanitizerConfig): any[] {\n return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem));\n }\n\n /**\n * Clean object\n * @param {object} object - {level: 0, text: 'adada', items: [1,2,3]}}\n * @param {object} rules - { b: true } or true|false\n * @return {object}\n */\n private cleanObject(object: any, rules: SanitizerConfig|{[field: string]: SanitizerConfig}): any {\n const cleanData = {};\n\n for (const fieldName in object) {\n if (!object.hasOwnProperty(fieldName)) {\n continue;\n }\n\n const currentIterationItem = object[fieldName];\n\n /**\n * Get object from config by field name\n * - if it is a HTML Janitor rule, call with this rule\n * - otherwise, call with parent's config\n */\n const ruleForItem = this.isRule(rules[fieldName] as SanitizerConfig) ? rules[fieldName] : rules;\n\n cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as SanitizerConfig);\n }\n return cleanData;\n }\n\n /**\n * @param {string} taintString\n * @param {SanitizerConfig|boolean} rule\n * @return {string}\n */\n private cleanOneItem(taintString: string, rule: SanitizerConfig|boolean): string {\n if (typeof rule === 'object') {\n return this.clean(taintString, rule);\n } else if (rule === false) {\n return this.clean(taintString, {} as SanitizerConfig);\n } else {\n return taintString;\n }\n }\n\n /**\n * Check if passed item is a HTML Janitor rule:\n * { a : true }, {}, false, true, function(){} — correct rules\n * undefined, null, 0, 1, 2 — not a rules\n * @param config\n */\n private isRule(config: SanitizerConfig): boolean {\n return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function';\n }\n\n /**\n * If developer uses editor's API, then he can customize sanitize restrictions.\n * Or, sanitizing config can be defined globally in editors initialization. That config will be used everywhere\n * At least, if there is no config overrides, that API uses Default configuration\n *\n * @uses https://www.npmjs.com/package/html-janitor\n *\n * @param {SanitizerConfig} config - sanitizer extension\n */\n private createHTMLJanitorInstance(config: {tags: SanitizerConfig}): HTMLJanitor|null {\n if (config) {\n return new HTMLJanitor(config);\n }\n return null;\n }\n}\n","/**\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\nimport Module from '../__module';\r\nimport {OutputData} from '../../../types';\r\n\r\ndeclare const VERSION: string;\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 * Composes new chain of Promises to fire them alternatelly\r\n * @return {OutputData}\r\n */\r\n public async save(): Promise {\r\n const 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 const extractedData = await Promise.all(chainData);\r\n\r\n const sanitizedData = await this.Editor.Sanitizer.sanitizeBlocks(extractedData);\r\n return this.makeOutput(sanitizedData);\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 {OutputData}\r\n */\r\n private makeOutput(allExtractedData): OutputData {\r\n let totalTime = 0;\r\n const blocks = [];\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,\r\n version: VERSION,\r\n };\r\n }\r\n}\r\n","import Shortcut from '@codexteam/shortcuts';\n\n/**\n * ShortcutData interface\n * Each shortcut must have name and handler\n * `name` is a shortcut, like 'CMD+K', 'CMD+B' etc\n * `handler` is a callback\n */\nexport interface ShortcutData {\n\n /**\n * Shortcut name\n * Ex. CMD+I, CMD+B ....\n */\n name: string;\n\n /**\n * Shortcut handler\n */\n handler(event): void;\n}\n\n/**\n * Contains keyboard and mouse events binded on each Block by Block Manager\n */\nimport Module from '../__module';\n\n/**\n * @class Shortcut\n * @classdesc Allows to register new shortcut\n *\n * Internal Shortcuts Module\n */\nexport default class Shortcuts extends Module {\n /**\n * All registered shortcuts\n * @type {Shortcut[]}\n */\n private registeredShortcuts: Shortcut[] = [];\n\n /**\n * Register shortcut\n * @param {ShortcutData} shortcut\n */\n public add(shortcut: ShortcutData): void {\n const { UI } = this.Editor;\n\n const newShortcut = new Shortcut({\n name: shortcut.name,\n on: UI.nodes.redactor,\n callback: shortcut.handler,\n });\n\n this.registeredShortcuts.push(newShortcut);\n }\n\n /**\n * Remove shortcut\n * @param {ShortcutData} shortcut\n */\n public remove(shortcut: string): void {\n const index = this.registeredShortcuts.findIndex((shc) => shc.name === shortcut);\n\n this.registeredShortcuts[index].remove();\n this.registeredShortcuts.splice(index, 1);\n }\n}\n","import Module from '../../__module';\r\nimport $ from '../../dom';\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 /**\r\n * Module Events\r\n * @return {{opened: string, closed: string}}\r\n */\r\n public get events(): {opened: string, closed: string} {\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 private 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 * Is Block Settings opened or not\r\n * @returns {boolean}\r\n */\r\n public get opened(): boolean {\r\n return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened);\r\n }\r\n\r\n /**\r\n * Block settings UI HTML elements\r\n */\r\n public nodes: {[key: string]: HTMLElement} = {\r\n wrapper: null,\r\n toolSettings: null,\r\n defaultSettings: null,\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 public make(): void {\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 * Open Block Settings pane\r\n */\r\n public open(): void {\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 public close(): void {\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 /**\r\n * Add Tool's settings\r\n */\r\n private addToolSettings(): void {\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 private addDefaultSettings(): void {\r\n $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes());\r\n }\r\n}\r\n","import Module from '../../__module';\nimport $ from '../../dom';\n\n/**\n *\n * «Toolbar» is the node that moves up/down over current block\n *\n * ______________________________________ Toolbar ____________________________________________\n * | |\n * | ..................... Content .................... ......... Block Actions .......... |\n * | . . . . |\n * | . . . [Open Settings] . |\n * | . [Plus Button] [Toolbox: {Tool1}, {Tool2}] . . . |\n * | . . . [Settings Panel] . |\n * | .................................................. .................................. |\n * | |\n * |___________________________________________________________________________________________|\n *\n *\n * Toolbox — its an Element contains tools buttons. Can be shown by Plus Button.\n *\n * _______________ Toolbox _______________\n * | |\n * | [Header] [Image] [List] [Quote] ... |\n * |_______________________________________|\n *\n *\n * Settings Panel — is an Element with block settings:\n *\n * ____ Settings Panel ____\n * | ...................... |\n * | . Tool Settings . |\n * | ...................... |\n * | . Default Settings . |\n * | ...................... |\n * |________________________|\n *\n *\n * @class\n * @classdesc Toolbar module\n *\n * @typedef {Toolbar} Toolbar\n * @property {Object} nodes\n * @property {Element} nodes.wrapper - Toolbar main element\n * @property {Element} nodes.content - Zone with Plus button and toolbox.\n * @property {Element} nodes.actions - Zone with Block Settings and Remove Button\n * @property {Element} nodes.blockActionsButtons - Zone with Block Buttons: [Settings]\n * @property {Element} nodes.plusButton - Button that opens or closes Toolbox\n * @property {Element} nodes.toolbox - Container for tools\n * @property {Element} nodes.settingsToggler - open/close Settings Panel button\n * @property {Element} nodes.settings - Settings Panel\n * @property {Element} nodes.pluginSettings - Plugin Settings section of Settings Panel\n * @property {Element} nodes.defaultSettings - Default Settings section of Settings Panel\n */\nexport default class Toolbar extends Module {\n /**\n * HTML Elements used for Toolbar UI\n */\n public nodes: {[key: string]: HTMLElement} = {\n wrapper : null,\n content : null,\n actions : null,\n\n // Content Zone\n plusButton : null,\n\n // Actions Zone\n blockActionsButtons: null,\n settingsToggler : null,\n };\n\n /**\n * CSS styles\n * @return {Object}\n */\n private static get CSS() {\n return {\n toolbar: 'ce-toolbar',\n content: 'ce-toolbar__content',\n actions: 'ce-toolbar__actions',\n\n toolbarOpened: 'ce-toolbar--opened',\n\n // Content Zone\n plusButton: 'ce-toolbar__plus',\n plusButtonHidden: 'ce-toolbar__plus--hidden',\n\n // Actions Zone\n blockActionsButtons: 'ce-toolbar__actions-buttons',\n settingsToggler: 'ce-toolbar__settings-btn',\n };\n }\n\n /**\n * Makes toolbar\n */\n public make(): void {\n this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar);\n\n /**\n * Make Content Zone and Actions Zone\n */\n ['content', 'actions'].forEach( (el) => {\n this.nodes[el] = $.make('div', Toolbar.CSS[el]);\n $.append(this.nodes.wrapper, this.nodes[el]);\n });\n\n /**\n * Fill Content Zone:\n * - Plus Button\n * - Toolbox\n */\n this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton);\n $.append(this.nodes.plusButton, $.svg('plus', 14, 14));\n $.append(this.nodes.content, this.nodes.plusButton);\n this.Editor.Listeners.on(this.nodes.plusButton, 'click', () => this.plusButtonClicked(), false);\n\n /**\n * Make a Toolbox\n */\n this.Editor.Toolbox.make();\n\n /**\n * Fill Actions Zone:\n * - Settings Toggler\n * - Remove Block Button\n * - Settings Panel\n */\n this.nodes.blockActionsButtons = $.make('div', Toolbar.CSS.blockActionsButtons);\n this.nodes.settingsToggler = $.make('span', Toolbar.CSS.settingsToggler);\n const settingsIcon = $.svg('dots', 18, 4);\n\n $.append(this.nodes.settingsToggler, settingsIcon);\n $.append(this.nodes.blockActionsButtons, this.nodes.settingsToggler);\n $.append(this.nodes.actions, this.nodes.blockActionsButtons);\n\n /**\n * Make and append Settings Panel\n */\n this.Editor.BlockSettings.make();\n $.append(this.nodes.actions, this.Editor.BlockSettings.nodes.wrapper);\n\n /**\n * Append toolbar to the Editor\n */\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Bind events on the Toolbar elements\n */\n this.bindEvents();\n }\n\n /**\n * Move Toolbar to the Current Block\n * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar\n */\n public move(forceClose: boolean = true): void {\n if (forceClose) {\n /** Close Toolbox when we move toolbar */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n const currentBlock = this.Editor.BlockManager.currentBlock.holder;\n\n /**\n * If no one Block selected as a Current\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * Set Toolbar Min Height as Block's height\n * Plus Button and Toolbox positioned at the center of the Toolbar\n */\n const contentOffset = Math.floor(currentBlock.offsetHeight / 2);\n\n this.nodes.plusButton.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n this.Editor.Toolbox.nodes.toolbox.style.transform = `translate3d(0, calc(${contentOffset}px - 50%), 0)`;\n /**\n * Move Toolbar to the Top coordinate of Block\n */\n this.nodes.wrapper.style.transform = `translate3D(0, ${Math.floor(currentBlock.offsetTop)}px, 0)`;\n }\n\n /**\n * Open Toolbar with Plus Button\n */\n public open(): void {\n /**\n * Wait Block rendering for correct height computing\n */\n setTimeout(() => {\n this.move();\n this.nodes.wrapper.classList.add(Toolbar.CSS.toolbarOpened);\n }, 50);\n }\n\n /**\n * returns toolbar opened state\n * @return {Boolean}\n */\n public get opened(): boolean {\n return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened);\n }\n\n /**\n * Close the Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened);\n\n /** Close components */\n this.Editor.Toolbox.close();\n this.Editor.BlockSettings.close();\n }\n\n /**\n * Plus Button public methods\n * @return {{hide: function(): void, show: function(): void}}\n */\n public get plusButton(): {hide: () => void, show: () => void} {\n return {\n hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden),\n show: () => {\n if (this.Editor.Toolbox.isEmpty) {\n return;\n }\n this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden);\n },\n };\n }\n\n /**\n * Handler for Plus Button\n * @param {MouseEvent} event\n */\n private plusButtonClicked(): void {\n this.Editor.Toolbox.toggle();\n }\n\n /**\n * Bind events on the Toolbar Elements:\n * - Block Settings\n */\n private bindEvents(): void {\n /**\n * Settings toggler\n */\n this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', () => this.settingsTogglerClicked());\n }\n\n /**\n * Clicks on the Block Settings toggler\n */\n private settingsTogglerClicked(): void {\n if (this.Editor.BlockSettings.opened) {\n this.Editor.BlockSettings.close();\n } else {\n this.Editor.BlockSettings.open();\n }\n }\n}\n","import Module from '../../__module';\nimport $ from '../../dom';\n\nimport BoldInlineTool from '../../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../../inline-tools/inline-tool-link';\nimport SelectionUtils from '../../selection';\nimport _ from '../../utils';\nimport {InlineTool, InlineToolConstructable, ToolConstructable, ToolSettings} from '../../../../types';\n\n/**\n * Inline toolbar with actions that modifies selected text fragment\n *\n * |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|\n * | B i [link] [mark] |\n * |________________________|\n */\nexport default class InlineToolbar extends Module {\n\n /**\n * Returns internal inline tools\n * Includes Bold, Italic, Link\n */\n private get internalTools(): {[name: string]: InlineTool} {\n return {\n bold: this.Editor.Tools.constructInline(BoldInlineTool),\n italic: this.Editor.Tools.constructInline(ItalicInlineTool),\n link: this.Editor.Tools.constructInline(LinkInlineTool),\n };\n }\n\n /**\n * Get external tools\n * Tools that has isInline is true\n */\n private get externalTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n\n /**\n * CSS styles\n */\n public CSS = {\n inlineToolbar: 'ce-inline-toolbar',\n inlineToolbarShowed: 'ce-inline-toolbar--showed',\n buttonsWrapper: 'ce-inline-toolbar__buttons',\n actionsWrapper: 'ce-inline-toolbar__actions',\n inlineToolButton: 'ce-inline-tool',\n inlineToolButtonLast: 'ce-inline-tool--last',\n };\n\n /**\n * Inline Toolbar elements\n */\n private nodes: {wrapper: HTMLElement, buttons: HTMLElement, actions: HTMLElement} = {\n wrapper: null,\n buttons: null,\n /**\n * Zone below the buttons where Tools can create additional actions by 'renderActions()' method\n * For example, input for the 'link' tool or textarea for the 'comment' tool\n */\n actions: null,\n };\n\n /**\n * Margin above/below the Toolbar\n */\n private readonly toolbarVerticalMargin: number = 20;\n\n /**\n * Tools instances\n */\n private toolsInstances: Map;\n\n /**\n * Inline Toolbar Tools\n *\n * @returns Map\n */\n get tools(): Map {\n if (!this.toolsInstances || this.toolsInstances.size === 0) {\n const allTools = this.inlineTools;\n\n this.toolsInstances = new Map();\n for (const tool in allTools) {\n if (allTools.hasOwnProperty(tool)) {\n this.toolsInstances.set(tool, allTools[tool]);\n }\n }\n }\n\n return this.toolsInstances;\n }\n\n /**\n * Making DOM\n */\n public make() {\n this.nodes.wrapper = $.make('div', this.CSS.inlineToolbar);\n this.nodes.buttons = $.make('div', this.CSS.buttonsWrapper);\n this.nodes.actions = $.make('div', this.CSS.actionsWrapper);\n\n /**\n * Append Inline Toolbar to the Editor\n */\n $.append(this.nodes.wrapper, [this.nodes.buttons, this.nodes.actions]);\n $.append(this.Editor.UI.nodes.wrapper, this.nodes.wrapper);\n\n /**\n * Append Inline Toolbar Tools\n */\n this.addTools();\n\n }\n\n /**\n * Moving / appearance\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Shows Inline Toolbar by keyup/mouseup\n * @param {KeyboardEvent|MouseEvent} event\n */\n public handleShowingEvent(event): void {\n if (!this.allowedToShow(event)) {\n this.close();\n return;\n }\n\n this.move();\n this.open();\n\n /** Check Tools state for selected fragment */\n this.checkToolsState();\n\n /** Clear selection */\n this.Editor.BlockSelection.clearSelection();\n }\n\n /**\n * Move Toolbar to the selected text\n */\n public move(): void {\n const selectionRect = SelectionUtils.rect as DOMRect;\n const wrapperOffset = this.Editor.UI.nodes.wrapper.getBoundingClientRect();\n const newCoords = {\n x: selectionRect.x - wrapperOffset.left,\n y: selectionRect.y\n + selectionRect.height\n // + window.scrollY\n - wrapperOffset.top\n + this.toolbarVerticalMargin,\n };\n\n /**\n * If we know selections width, place InlineToolbar to center\n */\n if (selectionRect.width) {\n newCoords.x += Math.floor(selectionRect.width / 2);\n }\n\n this.nodes.wrapper.style.left = Math.floor(newCoords.x) + 'px';\n this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px';\n }\n\n /**\n * Hides Inline Toolbar\n */\n public close(): void {\n this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed);\n this.tools.forEach( (toolInstance, toolName) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Shows Inline Toolbar\n */\n private open(): void {\n /**\n * Filter inline-tools and show only allowed by Block's Tool\n */\n this.filterTools();\n\n /**\n * Show Inline Toolbar\n */\n this.nodes.wrapper.classList.add(this.CSS.inlineToolbarShowed);\n\n /**\n * Call 'clear' method for Inline Tools (for example, 'link' want to clear input)\n */\n this.tools.forEach( (toolInstance: InlineTool) => {\n if (typeof toolInstance.clear === 'function') {\n toolInstance.clear();\n }\n });\n }\n\n /**\n * Need to show Inline Toolbar or not\n * @param {KeyboardEvent|MouseEvent} event\n */\n private allowedToShow(event): boolean {\n /**\n * Tags conflicts with window.selection function.\n * Ex. IMG tag returns null (Firefox) or Redactors wrapper (Chrome)\n */\n const tagsConflictsWithSelection = ['IMG', 'INPUT'];\n\n if (event && tagsConflictsWithSelection.includes(event.target.tagName)) {\n return false;\n }\n\n const currentSelection = SelectionUtils.get(),\n selectedText = SelectionUtils.text;\n\n // old browsers\n if (!currentSelection || !currentSelection.anchorNode) {\n return false;\n }\n\n // empty selection\n if (currentSelection.isCollapsed || selectedText.length < 1) {\n return false;\n }\n\n // is enabled by current Block's Tool\n const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n if (!currentBlock) {\n return false;\n }\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n return toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n }\n\n /**\n * Show only allowed Tools\n */\n private filterTools(): void {\n const currentSelection = SelectionUtils.get(),\n currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement);\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name),\n inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR];\n\n /**\n * All Inline Toolbar buttons\n * @type {HTMLElement[]}\n */\n const buttons = Array.from(this.nodes.buttons.querySelectorAll(`.${this.CSS.inlineToolButton}`)) as HTMLElement[];\n\n /**\n * Show previously hided\n */\n buttons.forEach((button) => {\n button.hidden = false;\n button.classList.remove(this.CSS.inlineToolButtonLast);\n });\n\n /**\n * Filter buttons if Block Tool pass config like inlineToolbar=['link']\n */\n if (Array.isArray(inlineToolbarSettings)) {\n buttons.forEach((button) => {\n button.hidden = !inlineToolbarSettings.includes(button.dataset.tool);\n });\n }\n\n /**\n * Tick for removing right-margin from last visible button.\n * Current generation of CSS does not allow to filter :visible elements\n */\n const lastVisibleButton = buttons.filter((button) => !button.hidden).pop();\n\n if (lastVisibleButton) {\n lastVisibleButton.classList.add(this.CSS.inlineToolButtonLast);\n }\n }\n\n /**\n * Working with Tools\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n */\n\n /**\n * Fill Inline Toolbar with Tools\n */\n private addTools(): void {\n this.tools.forEach( (toolInstance, toolName) => {\n this.addTool(toolName, toolInstance);\n });\n }\n\n /**\n * Add tool button and activate clicks\n */\n private addTool(toolName: string, tool: InlineTool): void {\n const {\n Listeners,\n Tools,\n } = this.Editor;\n\n const button = tool.render();\n\n if (!button) {\n _.log('Render method must return an instance of Node', 'warn', toolName);\n return;\n }\n\n button.dataset.tool = toolName;\n this.nodes.buttons.appendChild(button);\n\n if (typeof tool.renderActions === 'function') {\n const actions = tool.renderActions();\n this.nodes.actions.appendChild(actions);\n }\n\n Listeners.on(button, 'click', (event) => {\n this.toolClicked(tool);\n event.preventDefault();\n });\n\n /**\n * Enable shortcuts\n * Ignore tool that doesn't have shortcut or empty string\n */\n const toolSettings = Tools.getToolSettings(toolName);\n\n let shortcut = null;\n\n /**\n * Get internal inline tools\n */\n const internalTools: string[] = Object\n .entries(Tools.internalTools)\n .filter(([name, toolClass]: [string, ToolConstructable|ToolSettings]) => {\n if (_.isFunction(toolClass)) {\n return toolClass[Tools.apiSettings.IS_INLINE];\n }\n\n return (toolClass as ToolSettings).class[Tools.apiSettings.IS_INLINE];\n })\n .map(([name, toolClass]: [string, InlineToolConstructable|ToolSettings]) => name);\n\n /**\n * 1) For internal tools, check public getter 'shortcut'\n * 2) For external tools, check tool's settings\n */\n if (internalTools.includes(toolName)) {\n shortcut = this.inlineTools[toolName].shortcut;\n } else if (toolSettings && toolSettings[Tools.apiSettings.SHORTCUT]) {\n shortcut = toolSettings[Tools.apiSettings.SHORTCUT];\n }\n\n if (shortcut) {\n this.enableShortcuts(tool, shortcut);\n }\n }\n\n /**\n * Enable Tool shortcut with Editor Shortcuts Module\n * @param {InlineTool} tool - Tool instance\n * @param {string} shortcut - shortcut according to the ShortcutData Module format\n */\n private enableShortcuts(tool: InlineTool, shortcut: string): void {\n this.Editor.Shortcuts.add({\n name: shortcut,\n handler: (event) => {\n const {currentBlock} = this.Editor.BlockManager;\n\n /**\n * Editor is not focused\n */\n if (!currentBlock) {\n return;\n }\n\n /**\n * We allow to fire shortcut with empty selection (isCollapsed=true)\n * it can be used by tools like «Mention» that works without selection:\n * Example: by SHIFT+@ show dropdown and insert selected username\n */\n // if (SelectionUtils.isCollapsed) return;\n\n const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name);\n\n if (!toolSettings || !toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]) {\n return;\n }\n\n event.preventDefault();\n this.toolClicked(tool);\n },\n });\n }\n\n /**\n * Inline Tool button clicks\n * @param {InlineTool} tool - Tool's instance\n */\n private toolClicked(tool: InlineTool): void {\n const range = SelectionUtils.range;\n\n tool.surround(range);\n this.checkToolsState();\n }\n\n /**\n * Check Tools` state by selection\n */\n private checkToolsState(): void {\n this.tools.forEach( (toolInstance) => {\n toolInstance.checkState(SelectionUtils.get());\n });\n }\n\n /**\n * Get inline tools tools\n * Tools that has isInline is true\n */\n private get inlineTools(): {[name: string]: InlineTool} {\n const result = {};\n\n for (const tool in this.Editor.Tools.inline) {\n if (this.Editor.Tools.inline.hasOwnProperty(tool)) {\n result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]);\n }\n }\n\n return result;\n }\n}\n","import Module from '../../__module';\r\nimport $ from '../../dom';\r\nimport _ from '../../utils';\r\nimport {BlockToolConstructable} from '../../../../types';\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 private static LEAF_DIRECTIONS = {\r\n RIGHT: 'right',\r\n LEFT: 'left',\r\n };\r\n\r\n /**\r\n * Opening state\r\n * @type {boolean}\r\n */\r\n public opened: boolean = false;\r\n\r\n /**\r\n * HTMLElements used for Toolbox UI\r\n */\r\n public nodes: {\r\n toolbox: HTMLElement,\r\n buttons: HTMLElement[],\r\n } = {\r\n toolbox: null,\r\n buttons: [],\r\n };\r\n\r\n /**\r\n * Active button index\r\n * -1 equals no chosen Tool\r\n * @type {number}\r\n */\r\n private activeButtonIndex: number = -1;\r\n\r\n /**\r\n * How many tools displayed in Toolbox\r\n * @type {number}\r\n */\r\n private displayedToolsCount: number = 0;\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 public make(): void {\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 * Toolbox Tool's button click handler\r\n *\r\n * @param {MouseEvent|KeyboardEvent} event\r\n * @param {string} toolName\r\n */\r\n public toolButtonActivate(event: MouseEvent|KeyboardEvent, toolName: string): void {\r\n const tool = this.Editor.Tools.toolsClasses[toolName] as BlockToolConstructable;\r\n\r\n this.insertNewBlock(tool, toolName);\r\n }\r\n\r\n /**\r\n * Open Toolbox with Tools\r\n */\r\n public open(): void {\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 public close(): void {\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 public toggle(): void {\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 public leaf(direction: string = Toolbox.LEAF_DIRECTIONS.RIGHT): void {\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 === Toolbox.LEAF_DIRECTIONS.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] as HTMLElement).classList.remove(Toolbox.CSS.toolboxButtonActive);\r\n }\r\n\r\n /**\r\n * Count index for next Tool\r\n */\r\n if (direction === Toolbox.LEAF_DIRECTIONS.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] as HTMLElement).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 public get getActiveTool(): string {\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] as HTMLElement).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 public get isEmpty(): boolean {\r\n return this.displayedToolsCount === 0;\r\n }\r\n\r\n /**\r\n * Iterates available tools and appends them to the Toolbox\r\n */\r\n private addTools(): void {\r\n const tools = this.Editor.Tools.available;\r\n\r\n for (const toolName in tools) {\r\n if (tools.hasOwnProperty(toolName)) {\r\n this.addTool(toolName, tools[toolName] as BlockToolConstructable);\r\n }\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 {BlockToolConstructable} tool - tool class\r\n */\r\n private addTool(toolName: string, tool: BlockToolConstructable): void {\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 const 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: KeyboardEvent|MouseEvent) => {\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 {BlockToolConstructable} tool - Tool class\r\n * @param {String} toolName - Tool name\r\n * @param {String} shortcut - shortcut according to the ShortcutData Module format\r\n */\r\n private enableShortcut(tool: BlockToolConstructable, toolName: string, shortcut: string) {\r\n this.Editor.Shortcuts.add({\r\n name: shortcut,\r\n handler: (event: KeyboardEvent) => {\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 ShortcutData\r\n *\r\n * @param {BlockToolConstructable} tool - Tool Class\r\n * @param {String} toolName - Tool name\r\n */\r\n private insertNewBlock(tool: BlockToolConstructable, toolName: string) {\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 /**\r\n * Apply callback before inserting html\r\n */\r\n newBlock.call('appendCallback', {});\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","import Paragraph from '../tools/paragraph/dist/bundle';\nimport Module from '../__module';\nimport _ from '../utils';\nimport {BlockToolConstructable, ToolConfig, ToolConstructable, ToolSettings} from '../../../types';\nimport BoldInlineTool from '../inline-tools/inline-tool-bold';\nimport ItalicInlineTool from '../inline-tools/inline-tool-italic';\nimport LinkInlineTool from '../inline-tools/inline-tool-link';\n\n/**\n * @module Codex Editor Tools Submodule\n *\n * Creates Instances from Plugins and binds external config to the instances\n */\n\n/**\n * Each Tool must contain the following important objects:\n *\n * @typedef {Object} ToolConfig {@link docs/tools.md}\n * @property {String} iconClassname - this a icon in toolbar\n * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE\n * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE\n * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools,\n * all pass an array with specified Tools list\n * @property render @todo add description\n * @property save @todo add description\n * @property settings @todo add description\n * @property validate - method that validates output data before saving\n */\n\n/**\n * @typedef {Function} Tool {@link docs/tools.md}\n * @property {Boolean} displayInToolbox - By default, tools won't be added in the Toolbox. Pass true to add.\n * @property {String} iconClassName - CSS class name for the Toolbox button\n * @property {Boolean} irreplaceable - Toolbox behaviour: replace or add new block below\n * @property render\n * @property save\n * @property settings\n * @property validate\n *\n * @todo update according to current API\n * @todo describe Tool in the {@link docs/tools.md}\n */\n\n/**\n * Class properties:\n *\n * @typedef {Tools} Tools\n * @property {Tools[]} toolsAvailable - available Tools\n * @property {Tools[]} toolsUnavailable - unavailable Tools\n * @property {object} toolsClasses - all classes\n * @property {object} toolsSettings - Tools settings\n * @property {EditorConfig} config - Editor config\n */\nexport default class Tools extends Module {\n\n /**\n * Returns available Tools\n * @return {Tool[]}\n */\n public get available(): {[name: string]: ToolConstructable} {\n return this.toolsAvailable;\n }\n\n /**\n * Returns unavailable Tools\n * @return {Tool[]}\n */\n public get unavailable(): {[name: string]: ToolConstructable} {\n return this.toolsUnavailable;\n }\n\n /**\n * Return Tools for the Inline Toolbar\n * @return {Object} - object of Inline Tool's classes\n */\n public get inline(): {[name: string]: ToolConstructable} {\n if (this._inlineTools) {\n return this._inlineTools;\n }\n\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n if (!tool[this.apiSettings.IS_INLINE]) {\n return false;\n }\n\n /**\n * Some Tools validation\n */\n const inlineToolRequiredMethods = ['render', 'surround', 'checkState'];\n const notImplementedMethods = inlineToolRequiredMethods.filter( (method) => !this.constructInline(tool)[method]);\n\n if (notImplementedMethods.length) {\n _.log(\n `Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`,\n 'warn',\n notImplementedMethods,\n );\n return false;\n }\n\n return true;\n });\n\n /**\n * collected inline tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n /**\n * Cache prepared Tools\n */\n this._inlineTools = result;\n\n return this._inlineTools;\n }\n\n /**\n * Return editor block tools\n */\n public get blockTools(): {[name: string]: BlockToolConstructable} {\n // eslint-disable-next-line no-unused-vars\n const tools = Object.entries(this.available).filter( ([name, tool]) => {\n return !tool[this.apiSettings.IS_INLINE];\n });\n\n /**\n * collected block tools with key of tool name\n */\n const result = {};\n\n tools.forEach(([name, tool]) => result[name] = tool);\n\n return result;\n }\n\n /**\n * Constant for available Tools Settings\n * @return {object}\n */\n public get apiSettings() {\n return {\n CONFIG: 'config',\n IS_CONTENTLESS: 'contentless',\n IS_DISPLAYED_IN_TOOLBOX: 'displayInToolbox',\n IS_ENABLED_INLINE_TOOLBAR: 'inlineToolbar',\n IS_ENABLED_LINE_BREAKS: 'enableLineBreaks',\n IS_INLINE: 'isInline',\n IS_IRREPLACEBLE_TOOL: 'irreplaceable',\n IS_PASTE_DISALLOWED: 'disallowPaste',\n SHORTCUT: 'shortcut',\n TOOLBAR_ICON: 'toolboxIcon',\n SANITIZE_CONFIG: 'sanitize',\n };\n }\n\n /**\n * Map {name: Class, ...} where:\n * name — block type name in JSON. Got from EditorConfig.tools keys\n * @type {Object}\n */\n public readonly toolsClasses: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes available to use\n */\n private readonly toolsAvailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools` classes not availbale to use beacause of preparation failure\n */\n private readonly toolsUnavailable: {[name: string]: ToolConstructable} = {};\n\n /**\n * Tools settings in a map {name: settings, ...}\n * @type {Object}\n */\n private readonly toolsSettings: {[name: string]: ToolSettings} = {};\n\n /**\n * Cache for the prepared inline tools\n * @type {null|object}\n * @private\n */\n private _inlineTools: {[name: string]: ToolConstructable} = {};\n\n /**\n * @constructor\n *\n * @param {EditorConfig} config\n */\n constructor({config}) {\n super({config});\n\n this.toolsClasses = {};\n\n this.toolsSettings = {};\n\n /**\n * Available tools list\n * {name: Class, ...}\n * @type {Object}\n */\n this.toolsAvailable = {};\n\n /**\n * Tools that rejected a prepare method\n * {name: Class, ... }\n * @type {Object}\n */\n this.toolsUnavailable = {};\n\n this._inlineTools = null;\n }\n\n /**\n * Creates instances via passed or default configuration\n * @return {Promise}\n */\n public prepare() {\n /**\n * Assign internal tools\n */\n Object.assign(this.config.tools, this.internalTools);\n\n if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) {\n throw Error('Can\\'t start without tools');\n }\n\n /**\n * Save Tools settings to a map\n */\n for (const toolName in this.config.tools) {\n /**\n * If Tool is an object not a Tool's class then\n * save class and settings separately\n */\n if (typeof this.config.tools[toolName] === 'object') {\n /**\n * Save Tool's class from 'class' field\n * @type {Tool}\n */\n this.toolsClasses[toolName] = (this.config.tools[toolName] as ToolSettings).class;\n\n /**\n * Save Tool's settings\n * @type {ToolSettings}\n */\n this.toolsSettings[toolName] = this.config.tools[toolName] as ToolSettings;\n\n /**\n * Remove Tool's class from settings\n */\n delete this.toolsSettings[toolName].class;\n } else {\n /**\n * Save Tool's class\n * @type {Tool}\n */\n this.toolsClasses[toolName] = this.config.tools[toolName] as ToolConstructable;\n\n /**\n * Set empty settings for Block by default\n * @type {{}}\n */\n this.toolsSettings[toolName] = {class: this.config.tools[toolName] as ToolConstructable};\n }\n }\n\n /**\n * getting classes that has prepare method\n */\n const sequenceData = this.getListOfPrepareFunctions();\n\n /**\n * if sequence data contains nothing then resolve current chain and run other module prepare\n */\n if (sequenceData.length === 0) {\n return Promise.resolve();\n }\n\n /**\n * to see how it works {@link Util#sequence}\n */\n return _.sequence(sequenceData, (data: any) => {\n this.success(data);\n }, (data) => {\n this.fallback(data);\n });\n }\n\n /**\n * @param {ChainData.data} data - append tool to available list\n */\n public success(data) {\n this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * @param {ChainData.data} data - append tool to unavailable list\n */\n public fallback(data) {\n this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName];\n }\n\n /**\n * Return Tool`s instance\n *\n * @param {String} tool — tool name\n * @param {BlockToolData} data — initial data\n * @return {BlockTool}\n */\n public construct(tool, data) {\n const plugin = this.toolsClasses[tool];\n\n /**\n * Configuration to be passed to the Tool's constructor\n */\n const config = this.toolsSettings[tool][this.apiSettings.CONFIG];\n\n /**\n * @type {{api: API, config: ({}), data: BlockToolData}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n config: config || {},\n data,\n };\n\n return new plugin(constructorOptions);\n }\n\n /**\n * Return Inline Tool's instance\n *\n * @param {InlineTool} tool\n * @return {InlineTool} — instance\n */\n public constructInline(tool) {\n /**\n * @type {{api: API}}\n */\n const constructorOptions = {\n api: this.Editor.API.methods,\n };\n\n return new tool(constructorOptions);\n }\n\n /**\n * Check if passed Tool is an instance of Initial Block Tool\n * @param {Tool} tool - Tool to check\n * @return {Boolean}\n */\n public isInitial(tool) {\n return tool instanceof this.available[this.config.initialBlock];\n }\n\n /**\n * Return Tool's config by name\n * @param {string} toolName\n * @return {ToolSettings}\n */\n public getToolSettings(toolName) {\n return this.toolsSettings[toolName];\n }\n\n /**\n * Binds prepare function of plugins with user or default config\n * @return {Array} list of functions that needs to be fired sequentially\n */\n private getListOfPrepareFunctions(): Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig},\n }> {\n const toolPreparationList: Array<{\n function: (data: {toolName: string, config: ToolConfig}) => void,\n data: {toolName: string, config: ToolConfig}}\n > = [];\n\n for (const toolName in this.toolsClasses) {\n if (this.toolsClasses.hasOwnProperty(toolName)) {\n const toolClass = this.toolsClasses[toolName];\n\n if (typeof toolClass.prepare === 'function') {\n toolPreparationList.push({\n function: toolClass.prepare,\n data: {\n toolName,\n config: this.toolsSettings[toolName][this.apiSettings.CONFIG],\n },\n });\n } else {\n /**\n * If Tool hasn't a prepare method, mark it as available\n */\n this.toolsAvailable[toolName] = toolClass;\n }\n }\n }\n\n return toolPreparationList;\n }\n\n /**\n * Returns internal tools\n * Includes Bold, Italic, Link and Paragraph\n */\n get internalTools() {\n return {\n bold: BoldInlineTool,\n italic: ItalicInlineTool,\n link: LinkInlineTool,\n paragraph: {\n class: Paragraph,\n inlineToolbar: true,\n },\n };\n }\n}\n","/**\r\n * Prebuilded sprite of SVG icons\r\n */\r\nimport sprite from '../../../build/sprite.svg';\r\n\r\n/**\r\n * Module UI\r\n *\r\n * @type {UI}\r\n */\r\nimport Module from '../__module';\r\nimport $ from '../dom';\r\nimport _ from '../utils';\r\n\r\nimport Selection from '../selection';\r\nimport {ModuleConfig} from '../../types-internal/module-config';\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 /**\r\n * CodeX Editor UI CSS class names\r\n * @return {{editorWrapper: string, editorZone: string}}\r\n */\r\n private 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 * HTML Elements used for UI\r\n */\r\n public nodes: {[key: string]: HTMLElement} = {\r\n holder: null,\r\n wrapper: null,\r\n redactor: null,\r\n };\r\n\r\n /**\r\n * Making main interface\r\n */\r\n public async prepare(): Promise {\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 * Clean editor`s UI\r\n */\r\n public destroy(): void {\r\n this.nodes.holder.innerHTML = '';\r\n }\r\n\r\n /**\r\n * Makes CodeX Editor interface\r\n * @return {Promise}\r\n */\r\n private async make(): Promise {\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 private loadStyles(): void {\r\n /**\r\n * Load CSS\r\n */\r\n const styles = require('../../styles/main.css');\r\n\r\n /**\r\n * Make tag\r\n */\r\n const 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 private bindEvents(): void {\r\n this.Editor.Listeners.on(\r\n this.nodes.redactor,\r\n 'click',\r\n (event) => this.redactorClicked(event as MouseEvent),\r\n false,\r\n );\r\n this.Editor.Listeners.on(document, 'keydown', (event) => this.documentKeydown(event as KeyboardEvent), true );\r\n this.Editor.Listeners.on(document, 'click', (event) => this.documentClicked(event as MouseEvent), false );\r\n }\r\n\r\n /**\r\n * All keydowns on document\r\n * @param {Event} event\r\n */\r\n private documentKeydown(event: KeyboardEvent): void {\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 private defaultBehaviour(event: KeyboardEvent): void {\r\n const keyDownOnEditor = (event.target as HTMLElement).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 private enterPressed(event: KeyboardEvent): void {\r\n const 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 as HTMLElement).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 this.Editor.BlockSelection.clearSelection();\r\n }\r\n\r\n /**\r\n * All clicks on document\r\n * @param {MouseEvent} event - Click\r\n */\r\n private documentClicked(event: MouseEvent): void {\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 target = event.target as HTMLElement;\r\n const clickedOnInlineToolbarButton = target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`);\r\n const clickedInsideofEditor = 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 /** Clear selection */\r\n this.Editor.BlockSelection.clearSelection();\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 private redactorClicked(event: MouseEvent): void {\r\n const clickedNode = event.target as HTMLElement;\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 const 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 /** Clear selection */\r\n this.Editor.BlockSelection.clearSelection();\r\n }\r\n\r\n /**\r\n * Append prebuilded sprite with SVG icons\r\n */\r\n private appendSVGSprite(): void {\r\n const 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","'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 append: (nodes: Node|Node[]|DocumentFragment|void) => 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 {SelectionUtils} SelectionUtils\r\n */\r\nexport default class SelectionUtils {\r\n\r\n /**\r\n * Editor styles\r\n * @return {{editorWrapper: string, editorZone: string}}\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=f(r));o&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+\" */\");var a=new Blob([r],{type:\"text/css\"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}.bind(null,n,e),o=function(){d(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(e),r=function(t,e){var n=e.css,r=e.media;r&&t.setAttribute(\"media\",r);if(t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}.bind(null,n),o=function(){d(n)});return r(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;r(t=e)}else o()}}t.exports=function(t,e){if(\"undefined\"!=typeof DEBUG&&DEBUG&&\"object\"!=typeof document)throw new Error(\"The style-loader cannot be used in a non-browser environment\");(e=e||{}).attrs=\"object\"==typeof e.attrs?e.attrs:{},e.singleton||\"boolean\"==typeof e.singleton||(e.singleton=o()),e.insertInto||(e.insertInto=\"head\"),e.insertAt||(e.insertAt=\"bottom\");var n=l(t,e);return c(n,e),function(t){for(var o=[],i=0;i any;\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() {\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(\r\n chains: ChainData[],\r\n success: (data: any) => void = () => {},\r\n fallback: (data: any) => void = () => {},\r\n ): 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 /**\r\n * Copies passed text to the clipboard\r\n * @param text\r\n */\r\n public static copyTextToClipboard(text) {\r\n const el = Dom.make('div', 'codex-editor-clipboard', {\r\n innerHTML: text,\r\n });\r\n\r\n document.body.appendChild(el);\r\n\r\n const selection = window.getSelection();\r\n const range = document.createRange();\r\n range.selectNode(el);\r\n\r\n window.getSelection().removeAllRanges();\r\n selection.addRange(range);\r\n\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\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: #a8d6ff;\\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: rgba(201, 201, 204, 0.48);\\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-copyable {\\r\\n position: absolute;\\r\\n height: 1px;\\r\\n width: 1px;\\r\\n top: -400%;\\r\\n opacity: 0.001;\\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: #a8d6ff;\\r\\n background-color: var(--selectionColor);\\r\\n}\\r\\n::selection{\\r\\n background-color: #a8d6ff;\\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: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\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 > svg,\\r\\n .ce-inline-tool .icon {\\r\\n margin: auto;\\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::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 -webkit-animation-duration: 0.5s;\\r\\n animation-duration: 0.5s;\\r\\n -webkit-animation-name: bounceIn;\\r\\n animation-name: bounceIn;\\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: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\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 > svg,\\r\\n .ce-settings__button .icon {\\r\\n margin: auto;\\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--focused {\\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--selected .ce-block__content {\\r\\n background: #a8d6ff;\\r\\n background: var(--selectionColor);\\r\\n -webkit-box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\r\\n box-shadow: 0 31px 23px -22px rgba(175, 220, 255, 1);\\r\\n -webkit-animation: selectionBounce 0.2s 1;\\r\\n animation: selectionBounce 0.2s 1;\\r\\n -webkit-animation-fill-mode: forwards;\\r\\n animation-fill-mode: forwards;\\r\\n }\\r\\n.ce-block--selected .ce-block__content img {\\r\\n opacity: 0.55;\\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.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 20% {\\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 60% {\\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.9, 0.9, 0.9);\\r\\n transform: scale3d(0.9, 0.9, 0.9);\\r\\n }\\r\\n\\r\\n 20% {\\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 60% {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n@-webkit-keyframes selectionBounce {\\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 50% {\\r\\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\\r\\n transform: scale3d(1.01, 1.01, 1.01);\\r\\n }\\r\\n\\r\\n 70% {\\r\\n -webkit-transform: scale3d(1, 1, 1);\\r\\n transform: scale3d(1, 1, 1);\\r\\n }\\r\\n}\\r\\n@keyframes selectionBounce {\\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 50% {\\r\\n -webkit-transform: scale3d(1.01, 1.01, 1.01);\\r\\n transform: scale3d(1.01, 1.01, 1.01);\\r\\n }\\r\\n\\r\\n 70% {\\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 rgba(201, 201, 204, 0.48);\\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: -webkit-inline-box;\\r\\n display: -ms-inline-flexbox;\\r\\n display: inline-flex;\\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 > svg,\\r\\n .cdx-settings-button .icon {\\r\\n margin: auto;\\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 rgba(201, 201, 204, 0.48);\\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 rgba(201, 201, 204, 0.48);\\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/**\\r\\n * Button\\r\\n */\\r\\n.cdx-button {\\r\\n padding: 13px;\\r\\n border-radius: 3px;\\r\\n border: 1px solid rgba(201, 201, 204, 0.48);\\r\\n border: 1px solid var(--color-gray-border);\\r\\n font-size: 14.9px;\\r\\n background: #fff;\\r\\n -webkit-box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\r\\n box-shadow: 0 2px 2px 0 rgba(18,30,57,0.04);\\r\\n color: #707684;\\r\\n color: var(--grayText);\\r\\n text-align: center;\\r\\n cursor: pointer\\r\\n}\\r\\n.cdx-button:hover {\\r\\n background: #FBFCFE;\\r\\n -webkit-box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\r\\n box-shadow: 0 1px 3px 0 rgba(18,30,57,0.08);\\r\\n }\\r\\n.cdx-button svg {\\r\\n height: 20px;\\r\\n margin-right: 0.2em;\\r\\n margin-top: -2px;\\r\\n }\\r\\n\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md index 43382de3..755ff2e1 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -68,7 +68,7 @@ Check [CodeX Editor's community](https://github.com/codex-editor) to see Tools e ## Create Editor instance -Create an instance of CodeX Editor and pass [Configuration Object](../src/components/interfaces/editor-config.ts). +Create an instance of CodeX Editor and pass [Configuration Object](../src/types-internal/editor-config.ts). Minimal params is a `holderId`, `tools` list and `initialBlock` marker. ```html diff --git a/docs/tools.md b/docs/tools.md index 44b6902f..72cbd161 100644 --- a/docs/tools.md +++ b/docs/tools.md @@ -18,7 +18,7 @@ Each Tool's instance called with an params object. | config | `object` | Special configuration params passed in «config» | | data | `object` | Data to be rendered in this Tool | -[iapi-link]: ../src/components/interfaces/api.ts +[iapi-link]: ../src/types-internal/api.ts #### Example diff --git a/example/tools/table b/example/tools/table index 040b0822..cfde1bc7 160000 --- a/example/tools/table +++ b/example/tools/table @@ -1 +1 @@ -Subproject commit 040b0822a9166670d51374d2fa1ffe7caa095736 +Subproject commit cfde1bc77e32ca884756f11832da282ba73b16b2 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index eb8e604d..00000000 --- a/package-lock.json +++ /dev/null @@ -1,12536 +0,0 @@ -{ - "name": "codex.editor", - "version": "2.4.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0" - } - }, - "@babel/core": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.5.tgz", - "integrity": "sha512-vOyH020C56tQvte++i+rX2yokZcRfbv/kKcw+/BCRw/cK6dvsr47aCzm8oC1XHwMSEWbqrZKzZRLzLnq6SFMsg==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.5", - "@babel/helpers": "7.1.5", - "@babel/parser": "7.1.5", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5", - "convert-source-map": "1.6.0", - "debug": "3.2.6", - "json5": "0.5.1", - "lodash": "4.17.10", - "resolve": "1.8.1", - "semver": "5.5.1", - "source-map": "0.5.7" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz", - "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==", - "dev": true, - "requires": { - "@babel/types": "7.1.5", - "jsesc": "2.5.1", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" - }, - "dependencies": { - "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "7.1.0", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-call-delegate": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", - "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-define-map": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", - "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/types": "7.1.5", - "lodash": "4.17.10" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, - "requires": { - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", - "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", - "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/template": "7.1.2", - "@babel/types": "7.1.5", - "lodash": "4.17.10" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true - }, - "@babel/helper-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", - "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-wrap-function": "7.1.0", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-replace-supers": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", - "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, - "requires": { - "@babel/template": "7.1.2", - "@babel/types": "7.1.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", - "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", - "dev": true, - "requires": { - "@babel/types": "7.1.5" - } - }, - "@babel/helper-wrap-function": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz", - "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/helpers": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.5.tgz", - "integrity": "sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==", - "dev": true, - "requires": { - "@babel/template": "7.1.2", - "@babel/traverse": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz", - "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz", - "integrity": "sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0", - "@babel/plugin-syntax-async-generators": "7.0.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz", - "integrity": "sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-json-strings": "7.0.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.0.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz", - "integrity": "sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", - "dev": true - }, - "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz", - "integrity": "sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz", - "integrity": "sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz", - "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", - "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz", - "integrity": "sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", - "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz", - "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz", - "integrity": "sha512-jlYcDrz+5ayWC7mxgpn1Wj8zj0mmjCT2w0mPIMSwO926eXBRxpEgoN/uQVRBfjtr8ayjcmS+xk2G1jaP8JjMJQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "lodash": "4.17.10" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz", - "integrity": "sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-define-map": "7.1.0", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "globals": "11.8.0" - }, - "dependencies": { - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - } - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz", - "integrity": "sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz", - "integrity": "sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz", - "integrity": "sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", - "dev": true - }, - "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz", - "integrity": "sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz", - "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz", - "integrity": "sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz", - "integrity": "sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz", - "integrity": "sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz", - "integrity": "sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz", - "integrity": "sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-simple-access": "7.1.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz", - "integrity": "sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz", - "integrity": "sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", - "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz", - "integrity": "sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.1.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz", - "integrity": "sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw==", - "dev": true, - "requires": { - "@babel/helper-call-delegate": "7.1.0", - "@babel/helper-get-function-arity": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", - "dev": true, - "requires": { - "regenerator-transform": "0.13.3" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", - "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", - "dev": true, - "requires": { - "private": "0.1.8" - } - } - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz", - "integrity": "sha512-WFLMgzu5DLQEah0lKTJzYb14vd6UiES7PTnXcvrPZ1VrwFeJ+mTbvr65fFAsXYMt2bIoOoC0jk76zY1S7HZjUg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "resolve": "1.8.1", - "semver": "5.5.1" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz", - "integrity": "sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz", - "integrity": "sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", - "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz", - "integrity": "sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz", - "integrity": "sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", - "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.0.0", - "regexpu-core": "4.2.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", - "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "7.0.0", - "regjsgen": "0.4.0", - "regjsparser": "0.3.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.0.2" - } - }, - "regjsgen": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", - "dev": true - }, - "regjsparser": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", - "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", - "dev": true, - "requires": { - "jsesc": "0.5.0" - } - } - } - }, - "@babel/polyfill": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.0.0.tgz", - "integrity": "sha512-dnrMRkyyr74CRelJwvgnnSUDh2ge2NCTyHVwpOdvRMHtJUyxLtMAfhBN3s64pY41zdw0kgiLPh6S20eb1NcX6Q==", - "dev": true, - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "@babel/preset-env": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.1.5.tgz", - "integrity": "sha512-pQ+2o0YyCp98XG0ODOHJd9z4GsSoV5jicSedRwCrU8uiqcJahwQiOq0asSZEb/m/lwyu6X5INvH/DSiwnQKncw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-proposal-async-generator-functions": "7.1.0", - "@babel/plugin-proposal-json-strings": "7.0.0", - "@babel/plugin-proposal-object-rest-spread": "7.0.0", - "@babel/plugin-proposal-optional-catch-binding": "7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "7.0.0", - "@babel/plugin-syntax-async-generators": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.0.0", - "@babel/plugin-transform-arrow-functions": "7.0.0", - "@babel/plugin-transform-async-to-generator": "7.1.0", - "@babel/plugin-transform-block-scoped-functions": "7.0.0", - "@babel/plugin-transform-block-scoping": "7.1.5", - "@babel/plugin-transform-classes": "7.1.0", - "@babel/plugin-transform-computed-properties": "7.0.0", - "@babel/plugin-transform-destructuring": "7.1.3", - "@babel/plugin-transform-dotall-regex": "7.0.0", - "@babel/plugin-transform-duplicate-keys": "7.0.0", - "@babel/plugin-transform-exponentiation-operator": "7.1.0", - "@babel/plugin-transform-for-of": "7.0.0", - "@babel/plugin-transform-function-name": "7.1.0", - "@babel/plugin-transform-literals": "7.0.0", - "@babel/plugin-transform-modules-amd": "7.1.0", - "@babel/plugin-transform-modules-commonjs": "7.1.0", - "@babel/plugin-transform-modules-systemjs": "7.1.3", - "@babel/plugin-transform-modules-umd": "7.1.0", - "@babel/plugin-transform-new-target": "7.0.0", - "@babel/plugin-transform-object-super": "7.1.0", - "@babel/plugin-transform-parameters": "7.1.0", - "@babel/plugin-transform-regenerator": "7.0.0", - "@babel/plugin-transform-shorthand-properties": "7.0.0", - "@babel/plugin-transform-spread": "7.0.0", - "@babel/plugin-transform-sticky-regex": "7.0.0", - "@babel/plugin-transform-template-literals": "7.0.0", - "@babel/plugin-transform-typeof-symbol": "7.0.0", - "@babel/plugin-transform-unicode-regex": "7.0.0", - "browserslist": "4.3.4", - "invariant": "2.2.4", - "js-levenshtein": "1.1.4", - "semver": "5.5.1" - }, - "dependencies": { - "browserslist": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz", - "integrity": "sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000907", - "electron-to-chromium": "1.3.83", - "node-releases": "1.0.3" - } - }, - "caniuse-lite": { - "version": "1.0.30000907", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000907.tgz", - "integrity": "sha512-No5sQ/OB2Nmka8MNOOM6nJx+Hxt6MQ6h7t7kgJFu9oTuwjykyKRSBP/+i/QAyFHxeHB+ddE0Da1CG5ihx9oehQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.83", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz", - "integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==", - "dev": true - }, - "node-releases": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.3.tgz", - "integrity": "sha512-ZaZWMsbuDcetpHmYeKWPO6e63pSXLb50M7lJgCbcM2nC/nQC3daNifmtp5a2kp7EWwYfhuvH6zLPWkrF8IiDdw==", - "dev": true, - "requires": { - "semver": "5.5.1" - } - } - } - }, - "@babel/register": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.0.0.tgz", - "integrity": "sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g==", - "dev": true, - "requires": { - "core-js": "2.5.7", - "find-cache-dir": "1.0.0", - "home-or-tmp": "3.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "pirates": "4.0.0", - "source-map-support": "0.5.9" - }, - "dependencies": { - "home-or-tmp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-3.0.0.tgz", - "integrity": "sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" - } - } - } - }, - "@babel/runtime": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.5.tgz", - "integrity": "sha512-xKnPpXG/pvK1B90JkwwxSGii90rQGKtzcMt2gI5G6+M0REXaq6rOHsGC2ay6/d0Uje7zzvSzjEzfR3ENhFlrfA==", - "dev": true, - "requires": { - "regenerator-runtime": "0.12.1" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.1.5", - "@babel/types": "7.1.5" - } - }, - "@babel/traverse": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz", - "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.1.5", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.0.0", - "@babel/parser": "7.1.5", - "@babel/types": "7.1.5", - "debug": "3.2.6", - "globals": "11.8.0", - "lodash": "4.17.10" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.1" - } - }, - "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==", - "dev": true - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz", - "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==", - "dev": true, - "requires": { - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "2.0.0" - }, - "dependencies": { - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } - } - }, - "@codexteam/shortcuts": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@codexteam/shortcuts/-/shortcuts-1.0.0.tgz", - "integrity": "sha512-G7047f4qHnPtft2Gj7RsjJdXat/XXswUPjIGPHyHZeoARyIZTfX4/yTkgA3oDXvjFoC4cWN2+mKDDMdOET9/GQ==", - "dev": true - }, - "@csstools/convert-colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", - "dev": true - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" - } - }, - "@nodelib/fs.stat": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.1.tgz", - "integrity": "sha512-KU/VDjC5RwtDUZiz3d+DHXJF2lp5hB9dn552TXIyptj8SH1vXmR40mG0JgGq03IlYsOgGfcv8xrLpSQ0YUMQdA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz", - "integrity": "sha512-49nwvW/Hx9i+OYHg+mRhKZfAlqThr11Dqz8TsrvqGKMhdI2ijy3KBJOun2Z4770TPjrIJhR6KxChQIDaz8clDA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/wast-parser": "1.5.13", - "debug": "3.1.0", - "mamacro": "0.0.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz", - "integrity": "sha512-vrvvB18Kh4uyghSKb0NTv+2WZx871WL2NzwMj61jcq2bXkyhRC+8Q0oD7JGVf0+5i/fKQYQSBCNMMsDMRVAMqA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz", - "integrity": "sha512-dBh2CWYqjaDlvMmRP/kudxpdh30uXjIbpkLj9HQe+qtYlwvYjPRjdQXrq1cTAAOUSMTtzqbXIxEdEZmyKfcwsg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz", - "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==", - "dev": true, - "requires": { - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz", - "integrity": "sha512-yN6ScQQDFCiAXnVctdVO/J5NQRbwyTbQzsGzEgXsAnrxhjp0xihh+nNHQTMrq5UhOqTb5LykpJAvEv9AT0jnAQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.5.13" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz", - "integrity": "sha512-hSIKzbXjVMRvy3Jzhgu+vDd/aswJ+UMEnLRCkZDdknZO3Z9e6rp1DAs0tdLItjCFqkz9+0BeOPK/mk3eYvVzZg==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz", - "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==", - "dev": true, - "requires": { - "debug": "3.1.0", - "mamacro": "0.0.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz", - "integrity": "sha512-0n3SoNGLvbJIZPhtMFq0XmmnA/YmQBXaZKQZcW8maGKwLpVcgjNrxpFZHEOLKjXJYVN5Il8vSfG7nRX50Zn+aw==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz", - "integrity": "sha512-IJ/goicOZ5TT1axZFSnlAtz4m8KEjYr12BNOANAwGFPKXM4byEDaMNXYowHMG0yKV9a397eU/NlibFaLwr1fbw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/ieee754": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz", - "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==", - "dev": true, - "requires": { - "ieee754": "1.1.12" - } - }, - "@webassemblyjs/leb128": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.13.tgz", - "integrity": "sha512-0NRMxrL+GG3eISGZBmLBLAVjphbN8Si15s7jzThaw1UE9e5BY1oH49/+MA1xBzxpf1OW5sf9OrPDOclk9wj2yg==", - "dev": true, - "requires": { - "long": "4.0.0" - }, - "dependencies": { - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "dev": true - } - } - }, - "@webassemblyjs/utf8": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.13.tgz", - "integrity": "sha512-Ve1ilU2N48Ew0lVGB8FqY7V7hXjaC4+PeZM+vDYxEd+R2iQ0q+Wb3Rw8v0Ri0+rxhoz6gVGsnQNb4FjRiEH/Ng==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz", - "integrity": "sha512-X7ZNW4+Hga4f2NmqENnHke2V/mGYK/xnybJSIXImt1ulxbCOEs/A+ZK/Km2jgihjyVxp/0z0hwIcxC6PrkWtgw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/helper-wasm-section": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "@webassemblyjs/wasm-opt": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "@webassemblyjs/wast-printer": "1.5.13", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz", - "integrity": "sha512-yfv94Se8R73zmr8GAYzezFHc3lDwE/lBXQddSiIZEKZFuqy7yWtm3KMwA1uGbv5G1WphimJxboXHR80IgX1hQA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/ieee754": "1.5.13", - "@webassemblyjs/leb128": "1.5.13", - "@webassemblyjs/utf8": "1.5.13" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz", - "integrity": "sha512-IkXSkgzVhQ0QYAdIayuCWMmXSYx0dHGU8Ah/AxJf1gBvstMWVnzJnBwLsXLyD87VSBIcsqkmZ28dVb0mOC3oBg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-buffer": "1.5.13", - "@webassemblyjs/wasm-gen": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz", - "integrity": "sha512-XnYoIcu2iqq8/LrtmdnN3T+bRjqYFjRHqWbqK3osD/0r/Fcv4d9ecRzjVtC29ENEuNTK4mQ9yyxCBCbK8S/cpg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-api-error": "1.5.13", - "@webassemblyjs/helper-wasm-bytecode": "1.5.13", - "@webassemblyjs/ieee754": "1.5.13", - "@webassemblyjs/leb128": "1.5.13", - "@webassemblyjs/utf8": "1.5.13" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz", - "integrity": "sha512-Lbz65T0LQ1LgzKiUytl34CwuhMNhaCLgrh0JW4rJBN6INnBB8NMwUfQM+FxTnLY9qJ+lHJL/gCM5xYhB9oWi4A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/floating-point-hex-parser": "1.5.13", - "@webassemblyjs/helper-api-error": "1.5.13", - "@webassemblyjs/helper-code-frame": "1.5.13", - "@webassemblyjs/helper-fsm": "1.5.13", - "long": "3.2.0", - "mamacro": "0.0.3" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz", - "integrity": "sha512-QcwogrdqcBh8Z+eUF8SG+ag5iwQSXxQJELBEHmLkk790wgQgnIMmntT2sMAMw53GiFNckArf5X0bsCA44j3lWQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/wast-parser": "1.5.13", - "long": "3.2.0" - } - }, - "acorn": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", - "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "5.7.2" - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, - "requires": { - "acorn": "3.3.0" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "any-promise": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", - "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "1.0.3" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "1.0.3" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "4.17.10" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000878", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - } - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-loader": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", - "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", - "dev": true, - "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "util.promisify": "1.0.0" - } - }, - "babel-plugin-add-module-exports": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz", - "integrity": "sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw==", - "dev": true, - "requires": { - "chokidar": "2.0.4" - } - }, - "babel-plugin-class-display-name": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-class-display-name/-/babel-plugin-class-display-name-2.1.0.tgz", - "integrity": "sha1-GY/xK56r0z4BHuE/L5iYmFYItNE=", - "dev": true - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" - } - }, - "bail": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", - "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.1", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "1.0.6" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", - "isarray": "1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", - "dev": true, - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.3", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, - "requires": { - "callsites": "0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000878", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000878", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000878.tgz", - "integrity": "sha512-xv+UnUOYvS53KH1Yb+qro28Ojd7hCqf/NIVap64KDopQ2sNPQbk9/Dv9/ekuhgEy5EafUZPY5OJEQmNOzX825A==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30000878", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz", - "integrity": "sha512-/dCGTdLCnjVJno1mFRn7Y6eit3AYaeFzSrMQHCoK0LEQaWl5snuLex1Ky4b8/Qu2ig5NgTX4cJx65hH9546puA==", - "dev": true - }, - "ccount": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", - "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "character-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", - "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", - "dev": true - }, - "character-entities-html4": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz", - "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", - "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", - "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", - "dev": true - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", - "dev": true - }, - "cheerio": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz", - "integrity": "sha1-dy5wFfLuKZZQltcepBdbdas1SSU=", - "dev": true, - "requires": { - "css-select": "1.0.0", - "dom-serializer": "0.1.0", - "entities": "1.1.1", - "htmlparser2": "3.8.3", - "lodash": "3.10.1" - }, - "dependencies": { - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" - }, - "dependencies": { - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - } - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", - "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "clone-regexp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", - "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", - "dev": true, - "requires": { - "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.1" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codex-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/codex-notifier/-/codex-notifier-1.1.0.tgz", - "integrity": "sha512-eoi5pzpjUEg1ktNdfmv/zwo8z0gmBnXOKFdwC0vZZOAs3htToGMVWKNqEJJNGvE0uzVsikVDCLJj7cYy/5T7+w==", - "dev": true - }, - "collapse-white-space": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", - "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" - } - }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "1.0.4", - "color-convert": "1.9.2", - "color-string": "0.3.0" - } - }, - "color-convert": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", - "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "dev": true, - "requires": { - "color-name": "1.1.1" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.3" - } - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.1" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" - } - }, - "css-color-function": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.3.tgz", - "integrity": "sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4=", - "dev": true, - "requires": { - "balanced-match": "0.1.0", - "color": "0.11.4", - "debug": "3.1.0", - "rgb": "0.1.0" - }, - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz", - "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-loader": { - "version": "0.28.11", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", - "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" - } - }, - "css-select": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz", - "integrity": "sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA=", - "dev": true, - "requires": { - "boolbase": "1.0.0", - "css-what": "1.0.0", - "domutils": "1.4.3", - "nth-check": "1.0.1" - }, - "dependencies": { - "domutils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", - "integrity": "sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8=", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - } - } - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true, - "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - } - } - }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "css-what": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", - "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.3", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.3", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "1.0.2" - } - }, - "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", - "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", - "dev": true, - "requires": { - "decamelize": "1.2.0", - "map-obj": "1.0.1" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "2.0.2" - } - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1.3.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.3.61", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.61.tgz", - "integrity": "sha512-XjTdsm6x71Y48lF9EEvGciwXD70b20g0t+3YbrE+0fPFutqV08DSNrZXkoXAp3QuzX7TpL/OW+/VsNoR9GkuNg==", - "dev": true - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.5", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "1.4.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "tapable": "1.0.0" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "0.2.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - } - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "dev": true, - "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" - } - }, - "es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", - "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.3", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.3", - "globals": "11.7.0", - "ignore": "3.3.10", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.1", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", - "table": "4.0.2", - "text-table": "0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "globals": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", - "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "eslint-loader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.0.tgz", - "integrity": "sha512-f4A/Yk7qF+HcFSz5Tck2QoKIwJVHlX0soJk5MkROYahb5uvspad5Ba60rrz4u/V2/MEj1dtp/uBi6LlLWVaY7Q==", - "dev": true, - "requires": { - "loader-fs-cache": "1.0.1", - "loader-utils": "1.1.0", - "object-assign": "4.1.1", - "object-hash": "1.3.0", - "rimraf": "2.6.2" - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", - "dev": true - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "dev": true, - "requires": { - "acorn": "5.7.2", - "acorn-jsx": "3.0.1" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "4.2.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "execall": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", - "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", - "dev": true, - "requires": { - "clone-regexp": "1.0.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.4" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.1.0", - "repeat-element": "1.1.3", - "repeat-string": "1.6.1" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, - "requires": { - "async": "2.6.1", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" - } - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", - "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.1", - "glob-parent": "3.1.0", - "is-glob": "4.0.0", - "merge2": "1.2.2", - "micromatch": "3.1.10" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true - }, - "flush-write-stream": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", - "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.11.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", - "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minipass": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", - "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", - "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", - "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", - "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", - "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "global-modules-path": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", - "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", - "dev": true - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "gonzales-pe": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", - "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", - "dev": true, - "requires": { - "minimist": "1.1.3" - }, - "dependencies": { - "minimist": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", - "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "1.1.5", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "html-janitor": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-janitor/-/html-janitor-2.0.2.tgz", - "integrity": "sha1-P0VR0j0b6FVOJz+eraK2F8Kzq3A=", - "dev": true - }, - "html-tags": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", - "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", - "dev": true - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "dev": true, - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "2.1.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "import-lazy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", - "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", - "dev": true - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "dev": true, - "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "1.4.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-alphabetical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", - "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", - "dev": true - }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", - "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", - "dev": true, - "requires": { - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2" - } - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, - "is-decimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", - "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", - "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "requires": { - "is-path-inside": "1.0.1" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "1.0.3" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", - "dev": true - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-supported-regexp-flag": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", - "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", - "dev": true - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "1.1.1" - } - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "1.0.0" - } - }, - "is-whitespace-character": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", - "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-word-character": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", - "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isnumeric": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz", - "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "js-base64": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", - "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", - "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", - "dev": true - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "known-css-properties": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.6.1.tgz", - "integrity": "sha512-nQRpMcHm1cQ6gmztdvLcIvxocznSMqH/y6XtERrWrHaymOYdDGroRqetJvJycxGEr1aakXiigDgn7JnzuXlk6A==", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "dev": true, - "requires": { - "find-cache-dir": "0.1.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - } - } - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.1.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "dev": true, - "requires": { - "lodash._reinterpolate": "3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "2.4.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "long": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", - "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", - "dev": true - }, - "longest-streak": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", - "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "1.0.1" - } - }, - "markdown-escapes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", - "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", - "dev": true - }, - "markdown-table": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", - "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", - "dev": true - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "dev": true - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "mathml-tag-names": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", - "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", - "dev": true - }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "mdast-util-compact": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz", - "integrity": "sha512-d2WS98JSDVbpSsBfVvD9TaDMlqPRz7ohM/11G0rp5jOBb5q96RJ6YLszQ/09AAixyzh23FeIpCGqfaamEADtWg==", - "dev": true, - "requires": { - "unist-util-visit": "1.4.0" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" - } - }, - "meow": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", - "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" - } - }, - "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", - "dev": true - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.3" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" - } - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.3" - } - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "dev": true, - "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-releases": { - "version": "1.0.0-alpha.11", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.11.tgz", - "integrity": "sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ==", - "dev": true, - "requires": { - "semver": "5.5.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.4" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true, - "requires": { - "boolbase": "1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "object-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==", - "dev": true - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.12.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "onecolor": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-3.0.5.tgz", - "integrity": "sha1-Nu/zIgE3nv3xGA+0ReUajiQl+fY=", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, - "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "1.3.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", - "dev": true - }, - "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", - "dev": true, - "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "dev": true, - "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" - } - }, - "parse-entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", - "integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", - "dev": true, - "requires": { - "character-entities": "1.2.2", - "character-entities-legacy": "1.1.2", - "character-reference-invalid": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-decimal": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "dev": true, - "requires": { - "process": "0.11.10", - "util": "0.10.4" - } - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "3.0.0" - } - }, - "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", - "dev": true, - "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pirates": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.0.tgz", - "integrity": "sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA==", - "dev": true, - "requires": { - "node-modules-regexp": "1.0.0" - } - }, - "pixrem": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-4.0.1.tgz", - "integrity": "sha1-LaSh3m7EQjxfw3lOkwuB1EkOxoY=", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "postcss": "6.0.23", - "reduce-css-calc": "1.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "2.1.0" - } - }, - "pleeease-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-4.0.0.tgz", - "integrity": "sha1-ZjKy+wVkjSdY2GU4T7zteeHMrsc=", - "dev": true, - "requires": { - "onecolor": "3.0.5", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", - "dev": true - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.8", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "postcss-apply": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.10.0.tgz", - "integrity": "sha512-h0jVwtwViCo0wu+l3hEa9+RNlFbwpeVBYKRBF1K6Kqwat9egE3dDTZsUrQ9YyNE/AP3WWC5G2/oXQAezWPOJnw==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz", - "integrity": "sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } - }, - "postcss-color-function": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-4.0.1.tgz", - "integrity": "sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ=", - "dev": true, - "requires": { - "css-color-function": "1.3.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-gray": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-4.1.0.tgz", - "integrity": "sha512-L4iLKQLdqChz6ZOgGb6dRxkBNw78JFYcJmBz1orHpZoeLtuhDDGegRtX9gSyfoCIM7rWZ3VNOyiqqvk83BEN+w==", - "dev": true, - "requires": { - "color": "2.0.1", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", - "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", - "dev": true, - "requires": { - "color-convert": "1.9.2", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.1", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hex-alpha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz", - "integrity": "sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.2", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.1", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hsl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz", - "integrity": "sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "units-css": "0.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hwb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz", - "integrity": "sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.23", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.2", - "color-string": "1.5.3" - } - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "dev": true, - "requires": { - "color-name": "1.1.1", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-mod-function": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-2.4.3.tgz", - "integrity": "sha512-TEATRHN1m2+vM4efwRoPyrAQTbBA4xgx1jSMPv64oLcwVFC4qr6d4o9DAD5LxygIMeBBBugQHvXoSIM+87NaFQ==", - "dev": true, - "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "6.0.23", - "postcss-values-parser": "1.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rebeccapurple": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.1.0.tgz", - "integrity": "sha512-212hJUk9uSsbwO5ECqVjmh/iLsmiVL1xy9ce9TVf+X3cK/ZlUIlaMdoxje/YpsL9cmUH3I7io+/G2LyWx5rg1g==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-values-parser": "1.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rgb": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz", - "integrity": "sha1-FFOcinExSUtILg3RzCZf9lFLUmM=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rgba-fallback": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz", - "integrity": "sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0", - "rgb-hex": "2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-cssnext": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz", - "integrity": "sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA==", - "dev": true, - "requires": { - "autoprefixer": "7.2.6", - "caniuse-api": "2.0.0", - "chalk": "2.4.1", - "pixrem": "4.0.1", - "pleeease-filters": "4.0.0", - "postcss": "6.0.23", - "postcss-apply": "0.8.0", - "postcss-attribute-case-insensitive": "2.0.0", - "postcss-calc": "6.0.1", - "postcss-color-function": "4.0.1", - "postcss-color-gray": "4.1.0", - "postcss-color-hex-alpha": "3.0.0", - "postcss-color-hsl": "2.0.0", - "postcss-color-hwb": "3.0.0", - "postcss-color-rebeccapurple": "3.1.0", - "postcss-color-rgb": "2.0.0", - "postcss-color-rgba-fallback": "3.0.0", - "postcss-custom-media": "6.0.0", - "postcss-custom-properties": "6.3.1", - "postcss-custom-selectors": "4.0.1", - "postcss-font-family-system-ui": "3.0.0", - "postcss-font-variant": "3.0.0", - "postcss-image-set-polyfill": "0.3.5", - "postcss-initial": "2.0.0", - "postcss-media-minmax": "3.0.0", - "postcss-nesting": "4.2.1", - "postcss-pseudo-class-any-link": "4.0.0", - "postcss-pseudoelements": "5.0.0", - "postcss-replace-overflow-wrap": "2.0.0", - "postcss-selector-matches": "3.0.1", - "postcss-selector-not": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "autoprefixer": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000878", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.23", - "postcss-value-parser": "3.3.0" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - }, - "caniuse-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-2.0.0.tgz", - "integrity": "sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ=", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000878", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-apply": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.8.0.tgz", - "integrity": "sha1-FOVEu7XLbxweBIhXll15rgZrE0M=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "balanced-match": "0.4.2", - "postcss": "6.0.23" - } - }, - "postcss-calc": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", - "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3", - "reduce-css-calc": "2.1.4" - } - }, - "postcss-custom-properties": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-6.3.1.tgz", - "integrity": "sha512-zoiwn4sCiUFbr4KcgcNZLFkR6gVQom647L+z1p/KBVHZ1OYwT87apnS42atJtx6XlX2yI7N5fjXbFixShQO2QQ==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - } - } - }, - "postcss-nesting": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-4.2.1.tgz", - "integrity": "sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA==", - "dev": true, - "requires": { - "postcss": "6.0.23" - } - }, - "reduce-css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", - "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss-value-parser": "3.3.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-media": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz", - "integrity": "sha1-vlMnhBEOyylQRPtTlaGABushpzc=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz", - "integrity": "sha512-dl/CNaM6z2RBa0vZZqsV6Hunj4HD6Spu7FcAkiVp5B2tgm6xReKKYzI7x7QNx3wTMBNj5v+ylfVcQGMW4xdkHw==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz", - "integrity": "sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-matches": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-font-family-system-ui": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz", - "integrity": "sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-font-variant": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz", - "integrity": "sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-html": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.33.0.tgz", - "integrity": "sha512-3keDoRG0o8bJZKe/QzkOPUD3GQQvAmYhIAtsGrgTxIXB6xZnSQq3gwPjCEd2IAUtz9/Fkus70XGm6xJEZ+bAmg==", - "dev": true, - "requires": { - "htmlparser2": "3.9.2" - } - }, - "postcss-image-set-polyfill": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", - "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-media-query-parser": "0.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=", - "dev": true, - "requires": { - "lodash.template": "4.4.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-jsx": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.33.0.tgz", - "integrity": "sha512-+ZH4FyxQel2O5uYkNKBnDdW2jCwIb5HwwyFsKuEI164Vmq9Wm07nT2lj65P1qDSRXP2Ik05DrSHzY8Hmt5VP4A==", - "dev": true, - "requires": { - "@babel/core": "7.1.5", - "postcss-styled": "0.33.0" - } - }, - "postcss-less": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-2.0.0.tgz", - "integrity": "sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.23", - "postcss-load-config": "2.0.0", - "schema-utils": "0.4.7" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-markdown": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.33.0.tgz", - "integrity": "sha512-JZtetO15t5nNpymHDbRhuiOF8yJm1btrbUBP3iL39yLTiY8oChCsnCKfQjEuHB9+85fku5MoU/bRgQ8K45klMg==", - "dev": true, - "requires": { - "remark": "9.0.0", - "unist-util-find-all-after": "1.0.2" - } - }, - "postcss-media-minmax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz", - "integrity": "sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", - "dev": true - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.2" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000878", - "electron-to-chromium": "1.3.61" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", - "dev": true - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", - "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-3.0.0.tgz", - "integrity": "sha512-1xxmLHSfubuUi6xZZ0zLsNoiKfk3BWQj6fkNMaBJC529wKKLcdeCxXt6KJmDLva+trNyQNwEaE/ZWMA7cve1fA==", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-nested-ancestors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested-ancestors/-/postcss-nested-ancestors-2.0.0.tgz", - "integrity": "sha512-r8WbA1XLqbDuOGdCWpQ5nXdHvL4eKdnCEcDAnUlIAUHk7ZIQAESqPdxrWGPlq70ZB+FKw4wPbX1850dgFuxUKQ==", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "postcss": "6.0.23", - "postcss-resolve-nested-selector": "0.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-nesting": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-6.0.0.tgz", - "integrity": "sha512-Yoglsy6eZbDCbRIXoYSmnIt9ao4xyg07iFwVBd7WyIkDzMSeRxIqUk8xEAdkeJQ7eGfWo6RufrTU7FSUjZ22fg==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz", - "integrity": "sha1-kVKgYT00UHIFE+iJKFS65C0O5o4=", - "dev": true, - "requires": { - "postcss": "6.0.23", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-pseudoelements": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-5.0.0.tgz", - "integrity": "sha1-7vGU6NUkZFylIKlJ6V5RjoEkAss=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-replace-overflow-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz", - "integrity": "sha1-eU22+qVPjbEAhUOSqTr0V2i04ls=", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-reporter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz", - "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "lodash": "4.17.10", - "log-symbols": "2.2.0", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", - "dev": true - }, - "postcss-safe-parser": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", - "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", - "dev": true, - "requires": { - "postcss": "7.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.2.tgz", - "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-sass": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.2.0.tgz", - "integrity": "sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==", - "dev": true, - "requires": { - "gonzales-pe": "4.2.3", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-scss": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.6.tgz", - "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-selector-matches": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz", - "integrity": "sha1-5WNAEeE5UIgYYbvdWMLQER/8lqs=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-selector-not": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz", - "integrity": "sha1-Lk2y8JZTNsAefOx9tsYN/3ZzNdk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-smart-import": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/postcss-smart-import/-/postcss-smart-import-0.7.6.tgz", - "integrity": "sha512-9OpXaQ1uMMHWafUh0RWIpAKa3xxUDC2yyxicUPpGffH33nzbZG4/z+nk5Ocw5gGZ+3qkXV91iDV23Cmxf2Jhew==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "lodash": "4.17.10", - "object-assign": "4.1.1", - "postcss": "6.0.23", - "postcss-sass": "0.2.0", - "postcss-scss": "1.0.6", - "postcss-value-parser": "3.3.0", - "promise-each": "2.2.0", - "read-cache": "1.0.0", - "resolve": "1.8.1", - "sugarss": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-styled": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/postcss-styled/-/postcss-styled-0.33.0.tgz", - "integrity": "sha512-ybKIBKYY6q0hADQUECW2F4fDybDFIiAfpMf06/2maxU0yp0FvMTeABrDjzSmKu+99Nj2Gsxe80Xn56FbhzIZZQ==", - "dev": true - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - } - }, - "postcss-syntax": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.33.0.tgz", - "integrity": "sha512-A9ABlaRy7KWUfG5E39GVTUoc5TXNuNTts5GzwDLwnSaVG151CSLCTcr51/m8cHi4KXcYa+5ImLyeSfBOhEYtGw==", - "dev": true - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "postcss-values-parser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz", - "integrity": "sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==", - "dev": true, - "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", - "dev": true - }, - "promise-each": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", - "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=", - "dev": true, - "requires": { - "any-promise": "0.1.0" - } - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "quick-lru": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", - "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", - "dev": true - }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", - "dev": true, - "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" - } - }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" - } - }, - "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", - "dev": true, - "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", - "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", - "dev": true, - "requires": { - "regenerate": "1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - } - }, - "regexpp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", - "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", - "dev": true - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remark": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", - "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", - "dev": true, - "requires": { - "remark-parse": "5.0.0", - "remark-stringify": "5.0.0", - "unified": "6.2.0" - } - }, - "remark-parse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", - "dev": true, - "requires": { - "collapse-white-space": "1.0.4", - "is-alphabetical": "1.0.2", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "is-word-character": "1.0.2", - "markdown-escapes": "1.0.2", - "parse-entities": "1.1.2", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", - "trim": "0.0.1", - "trim-trailing-lines": "1.1.1", - "unherit": "1.1.1", - "unist-util-remove-position": "1.1.2", - "vfile-location": "2.0.3", - "xtend": "4.0.1" - } - }, - "remark-stringify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", - "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", - "dev": true, - "requires": { - "ccount": "1.0.3", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.2", - "is-whitespace-character": "1.0.2", - "longest-streak": "2.0.2", - "markdown-escapes": "1.0.2", - "markdown-table": "1.1.2", - "mdast-util-compact": "1.0.2", - "parse-entities": "1.1.2", - "repeat-string": "1.6.1", - "state-toggle": "1.0.1", - "stringify-entities": "1.3.2", - "unherit": "1.1.1", - "xtend": "4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, - "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" - } - }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "rgb": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz", - "integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=", - "dev": true - }, - "rgb-hex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-2.1.0.tgz", - "integrity": "sha1-x3PF/iJoolV42SU5qCp6XOU77aY=", - "dev": true - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "2.1.0" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "requires": { - "aproba": "1.2.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "dev": true, - "requires": { - "rx-lite": "4.0.8" - } - }, - "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "0.1.15" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "5.5.2" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "0.3.2" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, - "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", - "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", - "dev": true - }, - "specificity": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.0.tgz", - "integrity": "sha512-nGUlURFuoSsmJQ2TBKaO2l7+dBHtRnofSSQdiFKEpd+HBDWXR9/+gtJfgNpe3Nh6o5mqSxDpin/M4YoN7AijGg==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "state-toggle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", - "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - } - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "stringify-entities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", - "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "dev": true, - "requires": { - "character-entities-html4": "1.1.2", - "character-entities-legacy": "1.1.2", - "is-alphanumerical": "1.0.2", - "is-hexadecimal": "1.0.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-search": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", - "dev": true - }, - "stylelint": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.5.0.tgz", - "integrity": "sha512-63R/DGDjMekFwS4xaHSLy26N19pT1Jsxj7u5QNcJrUWBvvPoBCYx3ObINRgsvNMoupzhV7N0PjylxrDHyh4cKQ==", - "dev": true, - "requires": { - "autoprefixer": "9.1.3", - "balanced-match": "1.0.0", - "chalk": "2.4.1", - "cosmiconfig": "5.0.6", - "debug": "3.1.0", - "execall": "1.0.0", - "file-entry-cache": "2.0.0", - "get-stdin": "6.0.0", - "globby": "8.0.1", - "globjoin": "0.1.4", - "html-tags": "2.0.0", - "ignore": "4.0.6", - "import-lazy": "3.1.0", - "imurmurhash": "0.1.4", - "known-css-properties": "0.6.1", - "lodash": "4.17.10", - "log-symbols": "2.2.0", - "mathml-tag-names": "2.1.0", - "meow": "5.0.0", - "micromatch": "2.3.11", - "normalize-selector": "0.2.0", - "pify": "4.0.0", - "postcss": "7.0.2", - "postcss-html": "0.33.0", - "postcss-jsx": "0.33.0", - "postcss-less": "2.0.0", - "postcss-markdown": "0.33.0", - "postcss-media-query-parser": "0.2.3", - "postcss-reporter": "5.0.0", - "postcss-resolve-nested-selector": "0.1.1", - "postcss-safe-parser": "4.0.1", - "postcss-sass": "0.3.2", - "postcss-scss": "2.0.0", - "postcss-selector-parser": "3.1.1", - "postcss-styled": "0.33.0", - "postcss-syntax": "0.33.0", - "postcss-value-parser": "3.3.0", - "resolve-from": "4.0.0", - "signal-exit": "3.0.2", - "specificity": "0.4.0", - "string-width": "2.1.1", - "style-search": "0.1.0", - "sugarss": "2.0.0", - "svg-tags": "1.0.0", - "table": "4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "autoprefixer": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.1.3.tgz", - "integrity": "sha512-No9xrkPCGIHc9I52e+u1MuvkwfTOIXQt3tu+jGSONAJf4awvQmqOTWmk7JhA9Q3BTvBYIRdpS9PLFtrmpZcImg==", - "dev": true, - "requires": { - "browserslist": "4.1.0", - "caniuse-lite": "1.0.30000878", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.2", - "postcss-value-parser": "3.3.0" - } - }, - "browserslist": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.1.0.tgz", - "integrity": "sha512-kQBKB8hnq1SRfSpwHDpM1JNHAyk9fydW8hIDvndR2ijTFKIlBPEvkJkCt8JznOugdm12/YCaRgyq/sqDGz9PwA==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000878", - "electron-to-chromium": "1.3.61", - "node-releases": "1.0.0-alpha.11" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "cosmiconfig": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", - "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "dev": true, - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.3", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" - }, - "dependencies": { - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "pify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.0.tgz", - "integrity": "sha512-zrSP/KDf9DH3K3VePONoCstgPiYJy9z0SCatZuTpOc7YdnWIqwkWdXOuwlr4uDc7em8QZRsFWsT/685x5InjYg==", - "dev": true - }, - "postcss": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.2.tgz", - "integrity": "sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "postcss-sass": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.2.tgz", - "integrity": "sha512-0HgxikiZ07VKYr98KT+k7/rAzyMgZlP+3+R8vUti56T2dPdhW0OhPGDQzddxY/N2iDtBVZQqCHRDA09j5I6EWg==", - "dev": true, - "requires": { - "gonzales-pe": "4.2.3", - "postcss": "6.0.22" - }, - "dependencies": { - "postcss": { - "version": "6.0.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", - "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - } - } - }, - "postcss-scss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz", - "integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==", - "dev": true, - "requires": { - "postcss": "7.0.2" - } - }, - "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", - "dev": true, - "requires": { - "dot-prop": "4.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "sugarss": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", - "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", - "dev": true, - "requires": { - "postcss": "7.0.2" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "sugarss": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.1.tgz", - "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", - "dev": true, - "requires": { - "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.5.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "svg-sprite-generator": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/svg-sprite-generator/-/svg-sprite-generator-0.0.7.tgz", - "integrity": "sha1-FZd3zj6D6ADyVc7dMR2nYUkhY+k=", - "dev": true, - "requires": { - "async": "1.5.2", - "cheerio": "0.19.0", - "commander": "2.17.1", - "es6-promise": "2.3.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } - } - }, - "svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", - "dev": true - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" - } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" - } - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" - } - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "trim-trailing-lines": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", - "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", - "dev": true - }, - "trough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.3.tgz", - "integrity": "sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==", - "dev": true - }, - "ts-loader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-4.5.0.tgz", - "integrity": "sha512-ihgVaSmgrX4crGV4n7yuoHPoCHbDzj9aepCZR9TgIx4SgJ9gdnB6xLHgUBb7bsFM/f0K6x9iXa65KY/Fu1Klkw==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "enhanced-resolve": "4.1.0", - "loader-utils": "1.1.0", - "micromatch": "3.1.10", - "semver": "5.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true - }, - "tslint": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz", - "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.1", - "commander": "2.17.1", - "diff": "3.5.0", - "glob": "7.1.3", - "js-yaml": "3.7.0", - "minimatch": "3.0.4", - "resolve": "1.8.1", - "semver": "5.5.1", - "tslib": "1.9.3", - "tsutils": "2.29.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "tslint-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/tslint-loader/-/tslint-loader-3.6.0.tgz", - "integrity": "sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "object-assign": "4.1.1", - "rimraf": "2.6.2", - "semver": "5.5.1" - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "1.1.2" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.7", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.1.0", - "worker-farm": "1.6.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "unherit": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", - "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "xtend": "4.0.1" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", - "dev": true - }, - "unified": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", - "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", - "dev": true, - "requires": { - "bail": "1.0.3", - "extend": "3.0.2", - "is-plain-obj": "1.1.0", - "trough": "1.0.3", - "vfile": "2.3.0", - "x-is-string": "0.1.0" - } - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "dev": true, - "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", - "dev": true, - "requires": { - "unique-slug": "2.0.0" - } - }, - "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", - "dev": true, - "requires": { - "imurmurhash": "0.1.4" - } - }, - "unist-util-find-all-after": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", - "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", - "dev": true, - "requires": { - "unist-util-is": "2.1.2" - } - }, - "unist-util-is": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", - "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", - "dev": true - }, - "unist-util-remove-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", - "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", - "dev": true, - "requires": { - "unist-util-visit": "1.4.0" - } - }, - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", - "dev": true - }, - "unist-util-visit": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.0.tgz", - "integrity": "sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw==", - "dev": true, - "requires": { - "unist-util-visit-parents": "2.0.1" - } - }, - "unist-util-visit-parents": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz", - "integrity": "sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA==", - "dev": true, - "requires": { - "unist-util-is": "2.1.2" - } - }, - "units-css": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", - "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", - "dev": true, - "requires": { - "isnumeric": "0.2.0", - "viewport-dimensions": "0.2.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "2.1.1" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.0.3" - } - }, - "v8-compile-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", - "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" - } - }, - "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", - "dev": true - }, - "vfile": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", - "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==", - "dev": true, - "requires": { - "is-buffer": "1.1.6", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.2", - "vfile-message": "1.0.1" - } - }, - "vfile-location": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.3.tgz", - "integrity": "sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A==", - "dev": true - }, - "vfile-message": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.1.tgz", - "integrity": "sha512-vSGCkhNvJzO6VcWC6AlJW4NtYOVtS+RgCaqFIYUjoGIlHnFL+i0LbtYvonDWOMcB97uTPT4PRsyYY7REWC9vug==", - "dev": true, - "requires": { - "unist-util-stringify-position": "1.1.2" - } - }, - "viewport-dimensions": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz", - "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.11", - "neo-async": "2.5.2" - } - }, - "webpack": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.17.1.tgz", - "integrity": "sha512-vdPYogljzWPhFKDj3Gcp01Vqgu7K3IQlybc3XIdKSQHelK1C3eIQuysEUR7MxKJmdandZlQB/9BG2Jb1leJHaw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.5.13", - "@webassemblyjs/helper-module-context": "1.5.13", - "@webassemblyjs/wasm-edit": "1.5.13", - "@webassemblyjs/wasm-opt": "1.5.13", - "@webassemblyjs/wasm-parser": "1.5.13", - "acorn": "5.7.2", - "acorn-dynamic-import": "3.0.0", - "ajv": "6.5.3", - "ajv-keywords": "3.2.0", - "chrome-trace-event": "1.0.0", - "enhanced-resolve": "4.1.0", - "eslint-scope": "4.0.0", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "neo-async": "2.5.2", - "node-libs-browser": "2.1.0", - "schema-utils": "0.4.7", - "tapable": "1.0.0", - "uglifyjs-webpack-plugin": "1.3.0", - "watchpack": "1.6.0", - "webpack-sources": "1.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", - "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", - "dev": true, - "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "6.5.3", - "ajv-keywords": "3.2.0" - } - } - } - }, - "webpack-cli": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", - "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "global-modules-path": "2.3.0", - "import-local": "1.0.0", - "inquirer": "6.2.0", - "interpret": "1.1.0", - "loader-utils": "1.1.0", - "supports-color": "5.5.0", - "v8-compile-cache": "2.0.2", - "yargs": "12.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - } - }, - "chardet": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", - "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "external-editor": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.1.tgz", - "integrity": "sha512-e1neqvSt5pSwQcFnYc6yfGuJD2Q4336cdbHs5VeUO0zTkqPbrHMyw2q1r47fpfLWbvIG8H8A6YO3sck7upTV6Q==", - "dev": true, - "requires": { - "chardet": "0.5.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "inquirer": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz", - "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==", - "dev": true, - "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "3.0.1", - "figures": "2.0.0", - "lodash": "4.17.10", - "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rxjs": "6.2.2", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", - "dev": true, - "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "dev": true, - "requires": { - "errno": "0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, - "requires": { - "mkdirp": "0.5.1" - } - }, - "x-is-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", - "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", - "dev": true - }, - "xregexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", - "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", - "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "2.0.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "10.1.0" - }, - "dependencies": { - "decamelize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", - "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", - "dev": true, - "requires": { - "xregexp": "4.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - } - } - }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } - } - } -} diff --git a/package.json b/package.json index a0c33cdc..f5a9e739 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,9 @@ { "name": "codex.editor", - "version": "2.4.3", + "version": "2.5.0", "description": "Codex Editor. Native JS, based on API and Open Source", "main": "build/codex-editor.js", + "types": "./types/index.d.ts", "scripts": { "build": "rimraf dist && yarn svg && yarn build:dev", "svg": "svg-sprite-generate -d src/assets/ -o build/sprite.svg", @@ -22,6 +23,8 @@ "@babel/register": "^7.0.0", "@babel/runtime": "^7.1.2", "@codexteam/shortcuts": "^1.0.0", + "@types/webpack": "^4.4.16", + "@types/webpack-env": "^1.13.6", "babel-loader": "^8.0.4", "babel-plugin-add-module-exports": "^1.0.0", "babel-plugin-class-display-name": "^2.1.0", @@ -51,11 +54,11 @@ "rimraf": "^2.6.2", "stylelint": "^9.3.0", "svg-sprite-generator": "0.0.7", - "ts-loader": "^4.4.2", + "ts-loader": "^5.3.0", "tslint": "^5.11.0", "tslint-loader": "^3.6.0", "typescript": "^2.9.2", - "webpack": "^4.16.2", + "webpack": "4.20.2", "webpack-cli": "^3.1.0" } } diff --git a/src/codex.js b/src/codex.ts similarity index 67% rename from src/codex.js rename to src/codex.ts index 7bfb418c..b8f80b48 100644 --- a/src/codex.js +++ b/src/codex.ts @@ -1,10 +1,14 @@ 'use strict'; +import {EditorConfig} from '../types'; + +declare const VERSION: string; + /** * Apply polyfills */ import '@babel/register'; -if (!window || !window._babelPolyfill) require('@babel/polyfill'); + import 'components/polyfills'; import Core from './components/core'; @@ -17,17 +21,28 @@ import Core from './components/core'; * @author CodeX-Team */ export default class CodexEditor { + /** + * Promise that resolves when core modules are ready and UI is rendered on the page + */ + public isReady: Promise; + + /** + * Stores destroy method implementation. + * Clear heap occupied by Editor and remove UI components from the DOM. + */ + public destroy: () => void; + /** Editor version */ - static get version() { + static get version(): string { return VERSION; } /** * @constructor * - * @param {EditorConfig|String} [configuration] - user configuration + * @param {EditorConfig|String|undefined} [configuration] - user configuration */ - constructor(configuration) { + public constructor(configuration?: EditorConfig|string) { /** * Set default onReady function */ @@ -48,7 +63,7 @@ export default class CodexEditor { /** * We need to export isReady promise in the constructor * as it can be used before other API methods are exported - * @type {Promise} + * @type {Promise} */ this.isReady = editor.isReady.then(() => { this.exportAPI(editor); @@ -61,7 +76,7 @@ export default class CodexEditor { * * @param editor */ - exportAPI(editor) { + public exportAPI(editor: Core): void { const fieldsToExport = [ 'configuration' ]; const destroy = () => { editor.moduleInstances.Listeners.removeAll(); @@ -70,13 +85,15 @@ export default class CodexEditor { editor = null; for (const field in this) { - delete this[field]; + if (this.hasOwnProperty(field)) { + delete this[field]; + } } Object.setPrototypeOf(this, null); }; - fieldsToExport.forEach(field => { + fieldsToExport.forEach((field) => { this[field] = editor[field]; }); @@ -84,6 +101,6 @@ export default class CodexEditor { Object.setPrototypeOf(this, editor.moduleInstances.API.methods); - delete this['exportAPI']; + delete this.exportAPI; } } diff --git a/src/components/__module.ts b/src/components/__module.ts index f8496fe2..ad5a3043 100644 --- a/src/components/__module.ts +++ b/src/components/__module.ts @@ -1,6 +1,6 @@ -import IEditor from './interfaces/editor'; -import IEditorConfig from './interfaces/editor-config'; -import IModuleConfig from './interfaces/module-config'; +import {EditorModules} from '../types-internal/editor-modules'; +import {EditorConfig} from '../../types'; +import {ModuleConfig} from '../types-internal/module-config'; /** * @abstract @@ -9,27 +9,27 @@ import IModuleConfig from './interfaces/module-config'; * * @typedef {Module} Module * @property {Object} config - Editor user settings - * @property {IEditorConfig} Editor - List of Editor modules + * @property {EditorModules} Editor - List of Editor modules */ export default class Module { /** * Editor modules list - * @type {IEditor} + * @type {EditorModules} */ - protected Editor: IEditor; + protected Editor: EditorModules; /** * Editor configuration object - * @type {IEditorConfig} + * @type {EditorConfig} */ - protected config: IEditorConfig; + protected config: EditorConfig; /** * @constructor - * @param {IModuleConfig} + * @param {EditorConfig} */ - constructor({config}: IModuleConfig) { + constructor({config}: ModuleConfig) { if (new.target === Module) { throw new TypeError('Constructors for abstract class Module are not allowed.'); } @@ -39,9 +39,9 @@ export default class Module { /** * Editor modules setter - * @param {IEditor} Editor + * @param {EditorModules} Editor */ - set state(Editor) { + set state(Editor: EditorModules) { this.Editor = Editor; } } diff --git a/src/components/block-tunes/block-tune-delete.ts b/src/components/block-tunes/block-tune-delete.ts index c991d752..27b3d40c 100644 --- a/src/components/block-tunes/block-tune-delete.ts +++ b/src/components/block-tunes/block-tune-delete.ts @@ -4,18 +4,16 @@ * * @copyright 2018 */ -import IBlockTune from '../interfaces/block-tune'; +import {API, BlockTune} from '../../../types'; +import $ from '../dom'; -declare var $: any; -declare var _: any; - -export default class DeleteTune implements IBlockTune { +export default class DeleteTune implements BlockTune { /** * Property that contains CodeX Editor API methods * @see {docs/api.md} */ - private readonly api: any; + private readonly api: API; /** * Styles @@ -41,14 +39,14 @@ export default class DeleteTune implements IBlockTune { /** * Tune nodes */ - private nodes = { + private nodes: {button: HTMLElement} = { button: null, }; /** * DeleteTune constructor * - * @param {Object} api + * @param {{api: API}} api */ constructor({api}) { this.api = api; @@ -65,7 +63,7 @@ export default class DeleteTune implements IBlockTune { public render() { this.nodes.button = $.make('div', [this.CSS.button, this.CSS.buttonDelete], {}); this.nodes.button.appendChild($.svg('cross', 12, 12)); - this.api.listener.on(this.nodes.button, 'click', (event) => this.handleClick(event), false); + this.api.listeners.on(this.nodes.button, 'click', (event: MouseEvent) => this.handleClick(event), false); return this.nodes.button; } diff --git a/src/components/block-tunes/block-tune-move-down.ts b/src/components/block-tunes/block-tune-move-down.ts index e848ca4e..809e8b74 100644 --- a/src/components/block-tunes/block-tune-move-down.ts +++ b/src/components/block-tunes/block-tune-move-down.ts @@ -4,17 +4,16 @@ * * @copyright 2018 */ -import IBlockTune from '../interfaces/block-tune'; -declare var $: any; -declare var _: any; +import $ from '../dom'; +import {API, BlockTune} from '../../../types'; -export default class MoveDownTune implements IBlockTune { +export default class MoveDownTune implements BlockTune { /** * Property that contains CodeX Editor API methods * @see {api.md} */ - private readonly api: any; + private readonly api: API; /** * Styles @@ -29,7 +28,7 @@ export default class MoveDownTune implements IBlockTune { /** * MoveDownTune constructor * - * @param {Object} api + * @param {{api: API}} api */ public constructor({api}) { this.api = api; @@ -41,7 +40,12 @@ export default class MoveDownTune implements IBlockTune { public render() { const moveDownButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {}); moveDownButton.appendChild($.svg('arrow-down', 14, 14)); - this.api.listener.on(moveDownButton, 'click', (event) => this.handleClick(event, moveDownButton), false); + this.api.listeners.on( + moveDownButton, + 'click', + (event) => this.handleClick(event as MouseEvent, moveDownButton), + false, + ); return moveDownButton; } @@ -64,8 +68,8 @@ export default class MoveDownTune implements IBlockTune { return; } - const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1).holder, - nextBlockCoords = nextBlockElement.getBoundingClientRect(); + const nextBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex + 1); + const nextBlockCoords = nextBlockElement.getBoundingClientRect(); let scrollOffset = Math.abs(window.innerHeight - nextBlockElement.offsetHeight); diff --git a/src/components/block-tunes/block-tune-move-up.ts b/src/components/block-tunes/block-tune-move-up.ts index 22b952e9..6c6d3f0d 100644 --- a/src/components/block-tunes/block-tune-move-up.ts +++ b/src/components/block-tunes/block-tune-move-up.ts @@ -4,18 +4,16 @@ * * @copyright 2018 */ -import IBlockTune from '../interfaces/block-tune'; +import $ from '../dom'; +import {API, BlockTune} from '../../../types'; -declare var $: any; -declare var _: any; - -export default class MoveUpTune implements IBlockTune { +export default class MoveUpTune implements BlockTune { /** * Property that contains CodeX Editor API methods * @see {api.md} */ - private readonly api: any; + private readonly api: API; /** * Styles @@ -30,7 +28,7 @@ export default class MoveUpTune implements IBlockTune { /** * MoveUpTune constructor * - * @param {Object} api + * @param {{api: API}} api */ public constructor({api}) { this.api = api; @@ -43,7 +41,12 @@ export default class MoveUpTune implements IBlockTune { public render(): HTMLElement { const moveUpButton = $.make('div', [this.CSS.button, this.CSS.wrapper], {}); moveUpButton.appendChild($.svg('arrow-up', 14, 14)); - this.api.listener.on(moveUpButton, 'click', (event) => this.handleClick(event, moveUpButton), false); + this.api.listeners.on( + moveUpButton, + 'click', + (event) => this.handleClick(event as MouseEvent, moveUpButton), + false, + ); return moveUpButton; } @@ -65,8 +68,8 @@ export default class MoveUpTune implements IBlockTune { return; } - const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex).holder, - previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1).holder; + const currentBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex); + const previousBlockElement = this.api.blocks.getBlockByIndex(currentBlockIndex - 1); /** * Here is two cases: diff --git a/src/components/block.ts b/src/components/block.ts index 81f640ed..a4b29351 100644 --- a/src/components/block.ts +++ b/src/components/block.ts @@ -1,14 +1,22 @@ -import IBlockTune, {IBlockTuneConstructor} from './interfaces/block-tune'; +import { + API, + BlockTool, + BlockToolConstructable, + BlockToolData, + BlockTune, + BlockTuneConstructable, + SanitizerConfig, + ToolConfig, +} from '../../types'; + import $ from './dom'; import _ from './utils'; -type Tool = any; - /** * @class Block * @classdesc This class describes editor`s block, including block`s HTMLElement, data and tool * - * @property {Tool} tool — current block tool (Paragraph, for example) + * @property {BlockTool} tool — current block tool (Paragraph, for example) * @property {Object} CSS — block`s css classes * */ @@ -17,7 +25,6 @@ type Tool = any; import MoveUpTune from './block-tunes/block-tune-move-up'; import DeleteTune from './block-tunes/block-tune-delete'; import MoveDownTune from './block-tunes/block-tune-move-down'; -import {IAPI} from './interfaces/api'; /** * @classdesc Abstract Block class that contains Block information, Tool name and Tool class instance @@ -154,7 +161,7 @@ export default class Block { * Returns tool's sanitizer config * @return {object} */ - get sanitize(): object { + get sanitize(): SanitizerConfig { return this.tool.sanitize; } @@ -251,13 +258,45 @@ export default class Block { this.holder.classList.toggle(Block.CSS.wrapperStretched, state); } + /** + * Block Tool`s name + */ public name: string; - public tool: Tool; - public class: any; - public settings: object; + + /** + * Instance of the Tool Block represents + */ + public tool: BlockTool; + + /** + * Class blueprint of the ool Block represents + */ + public class: BlockToolConstructable; + + /** + * User Tool configuration + */ + public settings: ToolConfig; + + /** + * Wrapper for Block`s content + */ public holder: HTMLDivElement; - public tunes: IBlockTune[]; - private readonly api: IAPI; + + /** + * Tunes used by Tool + */ + public tunes: BlockTune[]; + + /** + * Editor`s API + */ + private readonly api: API; + + /** + * Focused input index + * @type {number} + */ private inputIndex = 0; /** @@ -268,7 +307,13 @@ export default class Block { * @param {Object} settings - default settings * @param {Object} apiMethods - Editor API */ - constructor(toolName: string, toolInstance: Tool, toolClass: object, settings: object, apiMethods: IAPI) { + constructor( + toolName: string, + toolInstance: BlockTool, + toolClass: BlockToolConstructable, + settings: ToolConfig, + apiMethods: API, + ) { this.name = toolName; this.tool = toolInstance; this.class = toolClass; @@ -277,7 +322,7 @@ export default class Block { this.holder = this.compose(); /** - * @type {IBlockTune[]} + * @type {BlockTune[]} */ this.tunes = this.makeTunes(); } @@ -303,19 +348,16 @@ export default class Block { * Call plugins merge method * @param {Object} data */ - public mergeWith(data: object): Promise { - return Promise.resolve() - .then(() => { - this.tool.merge(data); - }); + public async mergeWith(data: BlockToolData): Promise { + await this.tool.merge(data); } /** * Extracts data from Block * Groups Tool's save processing time * @return {Object} */ - public async save(): Promise { - const extractedBlock = await this.tool.save(this.pluginsContent); + public async save(): Promise { + const extractedBlock = await this.tool.save(this.pluginsContent as HTMLElement); /** * Measuring execution time @@ -334,8 +376,8 @@ export default class Block { time : measuringEnd - measuringStart, }; }) - .catch(function(error) { - _.log(`Saving proccess for ${this.tool.name} tool failed due to the ${error}`, 'log', 'red'); + .catch((error) => { + _.log(`Saving proccess for ${this.name} tool failed due to the ${error}`, 'log', 'red'); }); } @@ -348,7 +390,7 @@ export default class Block { * @param {Object} data * @returns {Boolean|Object} valid */ - public validateData(data: object): object|false { + public validateData(data: BlockToolData): BlockToolData|false { let isValid = true; if (this.tool.validate instanceof Function) { @@ -365,13 +407,13 @@ export default class Block { /** * Make an array with default settings * Each block has default tune instance that have states - * @return {IBlockTune[]} + * @return {BlockTune[]} */ - public makeTunes(): IBlockTune[] { + public makeTunes(): BlockTune[] { const tunesList = [MoveUpTune, DeleteTune, MoveDownTune]; // Pluck tunes list and return tune instances with passed Editor API and settings - return tunesList.map( (tune: IBlockTuneConstructor) => { + return tunesList.map( (tune: BlockTuneConstructable) => { return new tune({ api: this.api, settings: this.settings, diff --git a/src/components/blocks.ts b/src/components/blocks.ts new file mode 100644 index 00000000..d2f1232e --- /dev/null +++ b/src/components/blocks.ts @@ -0,0 +1,223 @@ +import _ from './utils'; +import $ from './dom'; +import Block from './block'; + +/** + * @class Blocks + * @classdesc Class to work with Block instances array + * + * @private + * + * @property {HTMLElement} workingArea — editor`s working node + * + */ +export default class Blocks { + + /** + * Get length of Block instances array + * + * @returns {Number} + */ + public get length(): number { + return this.blocks.length; + } + + /** + * Get Block instances array + * + * @returns {Block[]} + */ + public get array(): Block[] { + return this.blocks; + } + + /** + * Get blocks html elements array + * + * @returns {HTMLElement[]} + */ + public get nodes(): HTMLElement[] { + return _.array(this.workingArea.children); + } + + /** + * Proxy trap to implement array-like setter + * + * @example + * blocks[0] = new Block(...) + * + * @param {Blocks} instance — Blocks instance + * @param {Number|String} index — block index + * @param {Block} block — Block to set + * @returns {Boolean} + */ + public static set(instance: Blocks, index: number, block: Block) { + if (isNaN(Number(index))) { + return false; + } + + instance.insert(index, block); + + return true; + } + + /** + * Proxy trap to implement array-like getter + * + * @param {Blocks} instance — Blocks instance + * @param {Number|String} index — Block index + * @returns {Block|*} + */ + public static get(instance: Blocks, index: number) { + if (isNaN(Number(index))) { + return instance[index]; + } + + return instance.get(index); + } + + /** + * Array of Block instances in order of addition + */ + public blocks: Block[]; + + /** + * Editor`s area where to add Block`s HTML + */ + public workingArea: HTMLElement; + + /** + * @constructor + * + * @param {HTMLElement} workingArea — editor`s working node + */ + constructor(workingArea: HTMLElement) { + this.blocks = []; + this.workingArea = workingArea; + } + + /** + * Push new Block to the blocks array and append it to working area + * + * @param {Block} block + */ + public push(block: Block): void { + this.blocks.push(block); + this.workingArea.appendChild(block.holder); + } + + /** + * Swaps blocks with indexes first and second + * @param {Number} first - first block index + * @param {Number} second - second block index + */ + public swap(first: number, second: number): void { + const secondBlock = this.blocks[second]; + + /** + * Change in DOM + */ + $.swap(this.blocks[first].holder, secondBlock.holder); + + /** + * Change in array + */ + this.blocks[second] = this.blocks[first]; + this.blocks[first] = secondBlock; + } + + /** + * Insert new Block at passed index + * + * @param {Number} index — index to insert Block + * @param {Block} block — Block to insert + * @param {Boolean} replace — it true, replace block on given index + */ + public insert(index: number, block: Block, replace: boolean = false): void { + if (!this.length) { + this.push(block); + return; + } + + if (index > this.length) { + index = this.length; + } + + if (replace) { + this.blocks[index].holder.remove(); + } + + const deleteCount = replace ? 1 : 0; + + this.blocks.splice(index, deleteCount, block); + + if (index > 0) { + const previousBlock = this.blocks[index - 1]; + + previousBlock.holder.insertAdjacentElement('afterend', block.holder); + } else { + const nextBlock = this.blocks[index + 1]; + + if (nextBlock) { + nextBlock.holder.insertAdjacentElement('beforebegin', block.holder); + } else { + this.workingArea.appendChild(block.holder); + } + } + } + + /** + * Remove block + * @param {Number|null} index + */ + public remove(index: number): void { + if (isNaN(index)) { + index = this.length - 1; + } + + this.blocks[index].holder.remove(); + this.blocks.splice(index, 1); + } + + /** + * Remove all blocks + */ + public removeAll(): void { + this.workingArea.innerHTML = ''; + this.blocks.length = 0; + } + + /** + * Insert Block after passed target + * + * @todo decide if this method is necessary + * + * @param {Block} targetBlock — target after wich Block should be inserted + * @param {Block} newBlock — Block to insert + */ + public insertAfter(targetBlock: Block, newBlock: Block): void { + const index = this.blocks.indexOf(targetBlock); + + this.insert(index + 1, newBlock); + } + + /** + * Get Block by index + * + * @param {Number} index — Block index + * @returns {Block} + */ + public get(index: number): Block { + return this.blocks[index]; + } + + /** + * Return index of passed Block + * + * @param {Block} block + * @returns {Number} + */ + public indexOf(block: Block): number { + return this.blocks.indexOf(block); + } +} diff --git a/src/components/core.js b/src/components/core.ts similarity index 55% rename from src/components/core.js rename to src/components/core.ts index 25a976c6..a3e68769 100644 --- a/src/components/core.js +++ b/src/components/core.ts @@ -1,19 +1,29 @@ +import $ from './dom'; +import _ from './utils'; +import {EditorConfig, OutputData, SanitizerConfig, ToolSettings} from '../../types'; +import {EditorModules} from '../types-internal/editor-modules'; + /** * @typedef {Core} Core - editor core class */ -/** - * Dynamically imported utils - * - * @typedef {Dom} $ - {@link components/dom.js} - * @typedef {Util} _ - {@link components/utils.js} - */ - /** * Require Editor modules places in components/modules dir */ -// eslint-disable-next-line -let modules = editorModules.map( module => require('./modules/' + module )); +const contextRequire = require.context('./modules', true); + +const modules = []; + +contextRequire.keys().forEach((filename) => { + /** + * Include files if: + * - extension is .js or .ts + * - does not starts with _ + */ + if (filename.match(/^\.\/[^_][\w/]*\.([tj])s$/)) { + modules.push(contextRequire(filename)); + } +}); /** * @class Core @@ -26,31 +36,27 @@ let modules = editorModules.map( module => require('./modules/' + module )); * @type {Core} */ export default class Core { + + /** + * Editor configuration passed by user to the constructor + */ + public config: EditorConfig; + + /** + * Object with core modules instances + */ + public moduleInstances: EditorModules = {} as EditorModules; + + /** + * Promise that resolves when all core modules are prepared and UI is rendered on the page + */ + public isReady: Promise; + /** * @param {EditorConfig} config - user configuration * */ - constructor(config) { - /** - * Configuration object - * @type {EditorConfig} - */ - this.config = {}; - - /** - * @typedef {Object} EditorComponents - * @property {BlockManager} BlockManager - * @property {Tools} Tools - * @property {Events} Events - * @property {UI} UI - * @property {Toolbar} Toolbar - * @property {Toolbox} Toolbox - * @property {BlockSettings} BlockSettings - * @property {Renderer} Renderer - * @property {InlineToolbar} InlineToolbar - */ - this.moduleInstances = {}; - + constructor(config?: EditorConfig|string) { /** * Ready promise. Resolved if CodeX Editor is ready to work, rejected otherwise */ @@ -62,13 +68,13 @@ export default class Core { }); Promise.resolve() - .then(() => { + .then(async () => { this.configuration = config; - }) - .then(() => this.validate()) - .then(() => this.init()) - .then(() => this.start()) - .then(() => { + + await this.validate(); + await this.init(); + await this.start(); + _.log('I\'m ready! (ノ◕ヮ◕)ノ*:・゚✧'); setTimeout(() => { @@ -78,7 +84,7 @@ export default class Core { onReady(); }, 500); }) - .catch(error => { + .catch((error) => { _.log(`CodeX Editor does not ready because of ${error}`, 'error'); /** @@ -90,52 +96,53 @@ export default class Core { /** * Setting for configuration - * @param {IEditorConfig|string|null} config + * @param {EditorConfig|string|undefined} config */ - set configuration(config) { + set configuration(config: EditorConfig|string) { /** * Process zero-configuration or with only holderId */ if (typeof config === 'string' || typeof config === 'undefined') { - config = { - holderId: config + this.config = { + holderId: config || 'codex-editor', }; + } else { + this.config = config; } /** * If initial Block's Tool was not passed, use the Paragraph Tool */ - this.config.initialBlock = config.initialBlock || 'paragraph'; + this.config.initialBlock = this.config.initialBlock || 'paragraph'; /** * Initial block type * Uses in case when there is no blocks passed * @type {{type: (*), data: {text: null}}} */ - let initialBlockData = { + const initialBlockData = { type : this.config.initialBlock, - data : {} + data : {}, }; - this.config.holderId = config.holderId || 'codex-editor'; - this.config.placeholder = config.placeholder || 'write your story...'; - this.config.sanitizer = config.sanitizer || { + this.config.placeholder = this.config.placeholder || 'write your story...'; + this.config.sanitizer = this.config.sanitizer || { p: true, b: true, - a: true - }; + a: true, + } as SanitizerConfig; - this.config.hideToolbar = config.hideToolbar ? config.hideToolbar : false; - this.config.tools = config.tools || {}; - this.config.data = config.data || {}; - this.config.onReady = config.onReady || function () {}; - this.config.onChange = config.onChange || function () {}; + this.config.hideToolbar = this.config.hideToolbar ? this.config.hideToolbar : false; + this.config.tools = this.config.tools || {}; + this.config.data = this.config.data || {} as OutputData; + this.config.onReady = this.config.onReady || (() => {}); + this.config.onChange = this.config.onChange || (() => {}); /** * Initialize Blocks to pass data to the Renderer */ if (_.isEmpty(this.config.data)) { - this.config.data = {}; + this.config.data = {} as OutputData; this.config.data.blocks = [ initialBlockData ]; } else { if (!this.config.data.blocks || this.config.data.blocks.length === 0) { @@ -148,37 +155,41 @@ export default class Core { * Returns private property * @returns {EditorConfig} */ - get configuration() { + get configuration(): EditorConfig|string { return this.config; } /** * Checks for required fields in Editor's config - * @returns {void|Promise} + * @returns {Promise} */ - validate() { + public async validate(): Promise { /** * Check if holderId is not empty */ if (!this.config.holderId) { - return Promise.reject('«holderId» param must being not empty'); + throw Error('«holderId» param must being not empty'); } /** * Check for a holder element's existence */ if (!$.get(this.config.holderId)) { - return Promise.reject(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`); + throw Error(`element with ID «${this.config.holderId}» is missing. Pass correct holder's ID.`); } /** * Check Tools for a class containing */ - for (let toolName in this.config.tools) { - const tool = this.config.tools[toolName]; + for (const toolName in this.config.tools) { + if (this.config.tools.hasOwnProperty(toolName)) { + const tool = this.config.tools[toolName]; - if (!_.isFunction(tool) && !_.isFunction(tool.class)) { - return Promise.reject(`Tool «${toolName}» must be a constructor function or an object with that function in the «class» property`); + if (!_.isFunction(tool) && !_.isFunction((tool as ToolSettings).class)) { + throw Error( + `Tool «${toolName}» must be a constructor function or an object with function in the «class» property`, + ); + } } } } @@ -188,7 +199,7 @@ export default class Core { * - make and save instances * - configure */ - init() { + public init() { /** * Make modules instances and save it to the @property this.moduleInstances */ @@ -200,69 +211,22 @@ export default class Core { this.configureModules(); } - /** - * Make modules instances and save it to the @property this.moduleInstances - */ - constructModules() { - modules.forEach( Module => { - try { - /** - * We use class name provided by displayName property - * - * On build, Babel will transform all Classes to the Functions so, name will always be 'Function' - * To prevent this, we use 'babel-plugin-class-display-name' plugin - * @see https://www.npmjs.com/package/babel-plugin-class-display-name - */ - this.moduleInstances[Module.displayName] = new Module({ - config : this.configuration - }); - } catch ( e ) { - console.log('Module %o skipped because %o', Module, e); - } - }); - } - - /** - * Modules instances configuration: - * - pass other modules to the 'state' property - * - ... - */ - configureModules() { - for(let name in this.moduleInstances) { - /** - * Module does not need self-instance - */ - this.moduleInstances[name].state = this.getModulesDiff( name ); - } - } - - /** - * Return modules without passed name - */ - getModulesDiff( name ) { - let diff = {}; - - for(let moduleName in this.moduleInstances) { - /** - * Skip module with passed name - */ - if (moduleName === name) { - continue; - } - diff[moduleName] = this.moduleInstances[moduleName]; - } - - return diff; - } - /** * Start Editor! * * Get list of modules that needs to be prepared and return a sequence (Promise) * @return {Promise} */ - async start() { - const modulesToPrepare = ['Tools', 'UI', 'BlockManager', 'Paste', 'DragNDrop', 'ModificationsObserver', 'BlockSelection']; + public async start() { + const modulesToPrepare = [ + 'Tools', + 'UI', + 'BlockManager', + 'Paste', + 'DragNDrop', + 'ModificationsObserver', + 'BlockSelection', + ]; await modulesToPrepare.reduce( (promise, module) => promise.then(async () => { @@ -275,9 +239,67 @@ export default class Core { } _.log(`Preparing ${module} module`, 'timeEnd'); }), - Promise.resolve() + Promise.resolve(), ); return this.moduleInstances.Renderer.render(this.config.data.blocks); } -}; + + /** + * Make modules instances and save it to the @property this.moduleInstances + */ + private constructModules(): void { + modules.forEach( (Module) => { + try { + /** + * We use class name provided by displayName property + * + * On build, Babel will transform all Classes to the Functions so, name will always be 'Function' + * To prevent this, we use 'babel-plugin-class-display-name' plugin + * @see https://www.npmjs.com/package/babel-plugin-class-display-name + */ + this.moduleInstances[Module.displayName] = new Module({ + config : this.configuration, + }); + } catch ( e ) { + console.log('Module %o skipped because %o', Module, e); + } + }); + } + + /** + * Modules instances configuration: + * - pass other modules to the 'state' property + * - ... + */ + private configureModules(): void { + for (const name in this.moduleInstances) { + if (this.moduleInstances.hasOwnProperty(name)) { + /** + * Module does not need self-instance + */ + this.moduleInstances[name].state = this.getModulesDiff(name); + } + } + } + + /** + * Return modules without passed name + * @param {string} name - module for witch modules difference should be calculated + */ + private getModulesDiff(name: string): EditorModules { + const diff = {} as EditorModules; + + for (const moduleName in this.moduleInstances) { + /** + * Skip module with passed name + */ + if (moduleName === name) { + continue; + } + diff[moduleName] = this.moduleInstances[moduleName]; + } + + return diff; + } +} diff --git a/src/components/dom.ts b/src/components/dom.ts index 545e76ab..0ace62bb 100644 --- a/src/components/dom.ts +++ b/src/components/dom.ts @@ -34,9 +34,9 @@ export default class Dom { * @param {string} tagName - new Element tag name * @param {array|string} classNames - list or name of CSS classname(s) * @param {Object} attributes - any attributes - * @return {Element} + * @return {HTMLElement} */ - public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): Element { + public static make(tagName: string, classNames: string|string[] = null, attributes: object = {}): HTMLElement { const el = document.createElement(tagName); if ( Array.isArray(classNames) ) { @@ -87,7 +87,7 @@ export default class Dom { * @param {Element|DocumentFragment} parent - where to append * @param {Element|Element[]} elements - element or elements list */ - public static append(parent: Element|DocumentFragment, elements: Element|Element[]): void { + public static append(parent: Element|DocumentFragment, elements: Element|Element[]|DocumentFragment): void { if ( Array.isArray(elements) ) { elements.forEach( (el) => parent.appendChild(el) ); } else { diff --git a/src/components/inline-tools/inline-tool-bold.ts b/src/components/inline-tools/inline-tool-bold.ts index a11bf871..3b20ea09 100644 --- a/src/components/inline-tools/inline-tool-bold.ts +++ b/src/components/inline-tools/inline-tool-bold.ts @@ -1,7 +1,5 @@ -import InlineTool from '../interfaces/tools/inline-tool'; -import ISanitizerConfig from '../interfaces/sanitizer-config'; - -declare var $: any; +import $ from '../dom'; +import {API, InlineTool, SanitizerConfig} from '../../../types'; /** * Bold Tool @@ -24,10 +22,10 @@ export default class BoldInlineTool implements InlineTool { * Leave tags * @return {object} */ - static get sanitize(): ISanitizerConfig { + static get sanitize(): SanitizerConfig { return { b: {}, - }; + } as SanitizerConfig; } /** @@ -51,17 +49,11 @@ export default class BoldInlineTool implements InlineTool { button: undefined, }; - /** - * @param {{api: IAPI}} - CodeX Editor API - */ - constructor({api}) { - } - /** * Create button for Inline Toolbar */ public render(): HTMLElement { - this.nodes.button = document.createElement('button'); + this.nodes.button = document.createElement('button') as HTMLButtonElement; this.nodes.button.type = 'button'; this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier); this.nodes.button.appendChild($.svg('bold', 13, 15)); diff --git a/src/components/inline-tools/inline-tool-italic.ts b/src/components/inline-tools/inline-tool-italic.ts index c6748582..5ae07c3a 100644 --- a/src/components/inline-tools/inline-tool-italic.ts +++ b/src/components/inline-tools/inline-tool-italic.ts @@ -1,7 +1,5 @@ -import InlineTool from '../interfaces/tools/inline-tool'; -import ISanitizerConfig from '../interfaces/sanitizer-config'; - -declare var $: any; +import $ from '../dom'; +import {InlineTool, SanitizerConfig} from '../../../types'; /** * Italic Tool @@ -24,10 +22,10 @@ export default class ItalicInlineTool implements InlineTool { * Leave tags * @return {object} */ - static get sanitize(): ISanitizerConfig { + static get sanitize(): SanitizerConfig { return { i: {}, - }; + } as SanitizerConfig; } /** @@ -51,17 +49,11 @@ export default class ItalicInlineTool implements InlineTool { button: null, }; - /** - * @param {{api: IAPI}} - CodeX Editor API - */ - constructor({api}) { - } - /** * Create button for Inline Toolbar */ public render(): HTMLElement { - this.nodes.button = document.createElement('button'); + this.nodes.button = document.createElement('button') as HTMLButtonElement; this.nodes.button.type = 'button'; this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier); this.nodes.button.appendChild($.svg('italic', 6, 15)); diff --git a/src/components/inline-tools/inline-tool-link.ts b/src/components/inline-tools/inline-tool-link.ts index 1aef27f0..cba0d94c 100644 --- a/src/components/inline-tools/inline-tool-link.ts +++ b/src/components/inline-tools/inline-tool-link.ts @@ -1,10 +1,9 @@ -import InlineTool from '../interfaces/tools/inline-tool'; import SelectionUtils from '../selection'; -import ISanitizerConfig from '../interfaces/sanitizer-config'; - -declare var $: any; -declare var _: any; +import $ from '../dom'; +import _ from '../utils'; +import {API, InlineTool, SanitizerConfig} from '../../../types'; +import {Toolbar} from '../../../types/api'; /** * Link Tool * @@ -26,14 +25,14 @@ export default class LinkInlineTool implements InlineTool { * Leave
    tags * @return {object} */ - static get sanitize(): ISanitizerConfig { + static get sanitize(): SanitizerConfig { return { a: { href: true, target: '_blank', rel: 'nofollow', }, - }; + } as SanitizerConfig; } /** @@ -62,7 +61,10 @@ export default class LinkInlineTool implements InlineTool { /** * Elements */ - private nodes: {button: HTMLButtonElement, input: HTMLInputElement} = { + private nodes: { + button: HTMLButtonElement; + input: HTMLInputElement; + } = { button: null, input: null, }; @@ -80,10 +82,10 @@ export default class LinkInlineTool implements InlineTool { /** * Available Inline Toolbar methods (open/close) */ - private inlineToolbar: any; + private inlineToolbar: Toolbar; /** - * @param {{api: IAPI}} - CodeX Editor API + * @param {{api: API}} - CodeX Editor API */ constructor({api}) { this.inlineToolbar = api.toolbar; @@ -94,7 +96,7 @@ export default class LinkInlineTool implements InlineTool { * Create button for Inline Toolbar */ public render(): HTMLElement { - this.nodes.button = document.createElement('button'); + this.nodes.button = document.createElement('button') as HTMLButtonElement; this.nodes.button.type = 'button'; this.nodes.button.classList.add(this.CSS.button, this.CSS.buttonModifier); this.nodes.button.appendChild($.svg('link', 15, 14)); @@ -106,10 +108,10 @@ export default class LinkInlineTool implements InlineTool { * Input for the link */ public renderActions(): HTMLElement { - this.nodes.input = document.createElement('input'); + this.nodes.input = document.createElement('input') as HTMLInputElement; this.nodes.input.placeholder = 'Add a link'; this.nodes.input.classList.add(this.CSS.input); - this.nodes.input.addEventListener('keydown', (event) => { + this.nodes.input.addEventListener('keydown', (event: KeyboardEvent) => { if (event.keyCode === this.ENTER_KEY ) { this.enterPressed(event); } diff --git a/src/components/interfaces/api.ts b/src/components/interfaces/api.ts deleted file mode 100644 index 969f93f3..00000000 --- a/src/components/interfaces/api.ts +++ /dev/null @@ -1,230 +0,0 @@ -import IInputOutputData from './input-output-data'; -import {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier'; - -/** - * CodeX Editor Public API - * - * @copyright 2018 - */ -export interface IAPI { - blocks: IBlocksAPI; - caret: ICaretAPI; - events: IEventsAPI; - listener: IListenerAPI; - notifier: INotifierAPI; - sanitizer: ISanitizerAPI; - saver: ISaverAPI; - selection: ISelectionAPI; - styles: IStylesAPI; - toolbar: IToolbarAPI; -} - -/** - * Working with Blocks list: moving, removing, etc - */ -export interface IBlocksAPI { - - /** - * Clears Blocks list - */ - clear: () => void; - - /** - * Fills editor with Blocks data - */ - render: (data: IInputOutputData) => void; - - /** - * Removes block - */ - delete: (blockIndex?: number) => void; - - /** - * Swap two Blocks by positions - * @param {number} fromIndex - position of first Block - * @param {number} toIndex - position of second Block - */ - swap: (fromIndex: number, toIndex: number) => void; - - /** - * Returns block by passed index - * - * @param {Number} index - needed block with index - * @return {object} - */ - getBlockByIndex: (index: number) => object; - - /** - * Returns current block index - * @return {number} - */ - getCurrentBlockIndex: () => number; - - /** - * Returns Block's count - * @return {number} - */ - getBlocksCount: () => number; - - /** - * Stretch Block's content - * @param {number} index - index of Block - * @param {boolean} [status] - true to enable, false to disable - */ - stretchBlock: (index: number, status: boolean) => void; - - /** - * Insert new initial typed Block - */ - insertNewBlock: () => void; -} - -/** - * Methods for working with Caret - */ -export interface ICaretAPI { - /** - * @todo Add caret methods - */ -} - -/** - * Events Module API methods - */ -export interface IEventsAPI { - - /** - * Subsribe on events - */ - on: (eventName: string, callback: () => void) => void; - - /** - * Trigger subsribed callbacks - */ - emit: (eventName: string, data: object) => void; - - /** - * Unsubsribe callback - */ - off: (eventName: string, callback: () => void) => void; -} - -/** - * DOM Listener API - */ -export interface IListenerAPI { - - /** - * Adds event listener - * @param {HTMLElement} element - * @param {string} eventType - * @param {() => void} handler - * @param useCapture - * @return {boolean} - */ - on: (element: HTMLElement, eventType: string, handler: () => void, useCapture: boolean) => void; - - /** - * Remove event listener - * @param {HTMLElement} element - * @param {string} eventType - * @param {() => void} handler - */ - off: (element: HTMLElement, eventType: string, handler: () => void) => void; -} - -/** - * Notifier API - */ -export interface INotifierAPI { - - /** - * Show web notification - * - * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} - */ - show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => void; -} - -/** - * Sanitizer's methods - */ -export interface ISanitizerAPI { - - /** - * Clean taint string from disallowed tags and attributes - * - * @param taintString - * @param config - */ - clean: (taintString, config?) => string; -} - -/** - * Saver's methods - */ -export interface ISaverAPI { - /** - * Return current blocks - * - * @return {IInputOutputData} - */ - save: () => IInputOutputData; -} - -/** - * SelectionUtils's methods - */ -export interface ISelectionAPI { - - /** - * Looks ahead to find passed tag from current selection - * - * @param {String} tagName - * @param {String} className - */ - findParentTag: (tagName: string, className: string) => HTMLElement|null; - - /** - * Expands selection range to the passed parent node - * - * @param {HTMLElement} node - */ - expandToTag: (node: HTMLElement) => void; -} - -export interface IStylesAPI { - - block: string; - - inlineToolButton: string; - - inlineToolButtonActive: string; - - input: string; - - loader: string; - - button: string; - - settingsButton: string; - - settingsButtonActive: string; -} - -/** - * Toolbar's methods - * Basic toolbar methods - */ -export interface IToolbarAPI { - - /** - * Opens only toolbar - */ - open: () => void; - - /** - * Closes toolbar. If toolbox or toolbar-blockSettings are opened then they will be closed too - */ - close: () => void; -} diff --git a/src/components/interfaces/block-tune.ts b/src/components/interfaces/block-tune.ts deleted file mode 100644 index 83139236..00000000 --- a/src/components/interfaces/block-tune.ts +++ /dev/null @@ -1,29 +0,0 @@ -export interface IBlockTuneConstructor { - new (data: {api: any, settings: any}); -} - -/** - * BlockTune interface - * - * All tunes must implement this interface - */ -export interface IBlockTune { - /** - * Settings will be described later - */ - settings?: object; - - /** - * Returns tune button that will be appended in default settings area - */ - render(): HTMLElement; - - /** - * handle Click event - * @param {MouseEvent} event - * @param {HTMLElement} button - */ - handleClick(event: MouseEvent, button: HTMLElement): void; -} - -export default IBlockTune; diff --git a/src/components/interfaces/editor-config.ts b/src/components/interfaces/editor-config.ts deleted file mode 100644 index a244ef94..00000000 --- a/src/components/interfaces/editor-config.ts +++ /dev/null @@ -1,57 +0,0 @@ -import ISanitizerConfig from './sanitizer-config'; -import IInputOutputData from './input-output-data'; -import IToolSettings from './tools/tool-settings'; -import ITool from './tools/tool'; - -/** - * Editor Instance config - */ -export default interface IEditorConfig { - - /** - * Element to append Editor - */ - holderId: string; - - /** - * Map of used Tools with or without configuration - */ - tools: {[toolName: string]: ITool|IToolSettings}; - - /** - * This Tool will be added by default - * Name should be equal a one Tool's key of Editor's Tools - */ - initialBlock: string; - - /** - * Blocks list in JSON-format - */ - data?: IInputOutputData; - - /** - * First Block placeholder - */ - placeholder?: string; - - /** - * Define tags not to be stripped off while pasting - * @see {@link sanitizer} - */ - sanitizer?: ISanitizerConfig; - - /** - * Do not show toolbar - */ - hideToolbar?: boolean; - - /** - * Editor initialization callback - */ - onReady?(): void; - - /** - * Trigger callback if Content has beed changed - */ - onChange?(): void; -} diff --git a/src/components/interfaces/editor.ts b/src/components/interfaces/editor.ts deleted file mode 100644 index c3bfb3d2..00000000 --- a/src/components/interfaces/editor.ts +++ /dev/null @@ -1,62 +0,0 @@ -import BlockEvents from '../modules/block-events'; -import InlineToolbar from '../modules/toolbar-inline'; -import ListenerAPI from '../modules/api-listener'; -import Module from '../__module'; -import SanitizerAPI from '../modules/api-sanitizer'; -import SaverAPI from '../modules/api-saver'; -import SelectionAPI from '../modules/api-selection'; -import ToolbarAPI from '../modules/api-toolbar'; -import API from '../modules/api'; -import StylesAPI from '../modules/api-styles'; -import Shortcuts from '../modules/shortcuts'; - -export default interface IEditor { - - API: API; - - BlockEvents: BlockEvents; - - BlockSettings: Module; // @todo create interface - - BlocksAPI: Module; // @todo create interface - - Caret: Module; // @todo create interface - - Events: Module; // @todo create interface - - EventsAPI: Module; // @todo create interface - - InlineToolbar: InlineToolbar; - - ListenerAPI: ListenerAPI; - - Listeners: Module; // @todo create interface - - Notifier: Module; // @todo create interface - - Renderer: Module; // @todo create interface - - Sanitizer: Module; // @todo create interface - - SanitizerAPI: SanitizerAPI; - - Saver: Module; // @todo create interface - - SaverAPI: SaverAPI; - - SelectionAPI: SelectionAPI; - - Shortcuts: Shortcuts; - - StylesAPI: StylesAPI; - - Toolbar: Module; // @todo create interface - - ToolbarAPI: ToolbarAPI; - - Toolbox: Module; // @todo create interface - - Tools: Module; // @todo create interface - - UI: Module; // @todo create interface -} diff --git a/src/components/interfaces/input-output-data.ts b/src/components/interfaces/input-output-data.ts deleted file mode 100644 index 824faa20..00000000 --- a/src/components/interfaces/input-output-data.ts +++ /dev/null @@ -1,23 +0,0 @@ -import IBlockToolData from './tools/block-tool-data'; - -/** - * Interface represents input CodeX Editor data - * that passed with initial configuration object as 'data' key - */ -export default interface IInputOutputData { - - /** - * Timestamp of saving in milliseconds - */ - readonly time?: number; - - /** - * Saved Blocks - */ - readonly blocks: IBlockToolData[]; - - /** - * Editor's version - */ - readonly version?: string; -} diff --git a/src/components/interfaces/module-config.ts b/src/components/interfaces/module-config.ts deleted file mode 100644 index 6afa04f3..00000000 --- a/src/components/interfaces/module-config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import IEditorConfig from './editor-config'; - -/** - * Internal Module's construction parameters - */ -export default interface IModuleConfig { - - /** - * Editor's config - */ - config: IEditorConfig; -} diff --git a/src/components/interfaces/shortcuts.ts b/src/components/interfaces/shortcuts.ts deleted file mode 100644 index 214aa401..00000000 --- a/src/components/interfaces/shortcuts.ts +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Shortcuts Interface - * - * implements CodeX-Team shortcuts Module - * @see https://github.com/codex-team/codex.shortcuts - */ -export interface IShortcuts { - - /** - * Adds shortcut - * @param {IShortcut} shortcut - */ - add(shortcut: IShortcut): void; - - /** - * removes shortcut - * @param {string} shortcut - */ - remove(shortcut: string): void; -} - -/** - * Shortcut interface - * Each shortcut must have name and handler - * `name` is a shortcut, like 'CMD+K', 'CMD+B' etc - * `handler` is a callback - */ -export interface IShortcut { - - /** - * Shortcut name - * Ex. CMD+I, CMD+B .... - */ - name: string; - - /** - * Shortcut handler - */ - handler(event): (event) => void; -} diff --git a/src/components/interfaces/tools/block-tool-data.ts b/src/components/interfaces/tools/block-tool-data.ts deleted file mode 100644 index 66ff166f..00000000 --- a/src/components/interfaces/tools/block-tool-data.ts +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Object returned by Tool's {@link IBlockTool#save} method - */ -export default interface IBlockToolData {} diff --git a/src/components/interfaces/tools/tool.ts b/src/components/interfaces/tools/tool.ts deleted file mode 100644 index f5b6e5dd..00000000 --- a/src/components/interfaces/tools/tool.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Abstract interface of all Tools - */ -export default interface ITool { - - /** - * Define Tool type as Inline - */ - isInline?: boolean; -} diff --git a/src/components/modules/_notifications.js b/src/components/modules/_notifications.js deleted file mode 100644 index 1746ae6f..00000000 --- a/src/components/modules/_notifications.js +++ /dev/null @@ -1,187 +0,0 @@ -/** - * Codex Editor Notification Module - * - * @author Codex Team - * @version 1.0 - */ - -module.exports = (function (notifications) { - let editor = codex.editor; - - var queue = []; - - var addToQueue = function (settings) { - queue.push(settings); - - var index = 0; - - while ( index < queue.length && queue.length > 5) { - if (queue[index].type == 'confirm' || queue[index].type == 'prompt') { - index++; - continue; - } - - queue[index].close(); - queue.splice(index, 1); - } - }; - - notifications.createHolder = function () { - var holder = editor.draw.node('DIV', 'cdx-notifications-block'); - - editor.nodes.notifications = document.body.appendChild(holder); - - return holder; - }; - - - /** - * Error notificator. Shows block with message - * @protected - */ - notifications.errorThrown = function (errorMsg, event) { - editor.notifications.notification({message: 'This action is not available currently', type: event.type}); - }; - - /** - * - * Appends notification - * - * settings = { - * type - notification type (reserved types: alert, confirm, prompt). Just add class 'cdx-notification-'+type - * message - notification message - * okMsg - confirm button text (default - 'Ok') - * cancelBtn - cancel button text (default - 'Cancel'). Only for confirm and prompt types - * confirm - function-handler for ok button click - * cancel - function-handler for cancel button click. Only for confirm and prompt types - * time - time (in seconds) after which notification will close (default - 10s) - * } - * - * @param settings - */ - notifications.notification = function (constructorSettings) { - /** Private vars and methods */ - var notification = null, - cancel = null, - type = null, - confirm = null, - inputField = null; - - var confirmHandler = function () { - close(); - - if (typeof confirm !== 'function' ) { - return; - } - - if (type == 'prompt') { - confirm(inputField.value); - return; - } - - confirm(); - }; - - var cancelHandler = function () { - close(); - - if (typeof cancel !== 'function' ) { - return; - } - - cancel(); - }; - - - /** Public methods */ - function create(settings) { - if (!(settings && settings.message)) { - editor.core.log('Can\'t create notification. Message is missed'); - return; - } - - settings.type = settings.type || 'alert'; - settings.time = settings.time*1000 || 10000; - - var wrapper = editor.draw.node('DIV', 'cdx-notification'), - message = editor.draw.node('DIV', 'cdx-notification__message'), - input = editor.draw.node('INPUT', 'cdx-notification__input'), - okBtn = editor.draw.node('SPAN', 'cdx-notification__ok-btn'), - cancelBtn = editor.draw.node('SPAN', 'cdx-notification__cancel-btn'); - - message.textContent = settings.message; - okBtn.textContent = settings.okMsg || 'ОК'; - cancelBtn.textContent = settings.cancelMsg || 'Отмена'; - - editor.listeners.add(okBtn, 'click', confirmHandler); - editor.listeners.add(cancelBtn, 'click', cancelHandler); - - wrapper.appendChild(message); - - if (settings.type == 'prompt') { - wrapper.appendChild(input); - } - - wrapper.appendChild(okBtn); - - if (settings.type == 'prompt' || settings.type == 'confirm') { - wrapper.appendChild(cancelBtn); - } - - wrapper.classList.add('cdx-notification-' + settings.type); - wrapper.dataset.type = settings.type; - - notification = wrapper; - type = settings.type; - confirm = settings.confirm; - cancel = settings.cancel; - inputField = input; - - if (settings.type != 'prompt' && settings.type != 'confirm') { - window.setTimeout(close, settings.time); - } - }; - - /** - * Show notification block - */ - function send() { - editor.nodes.notifications.appendChild(notification); - inputField.focus(); - - editor.nodes.notifications.classList.add('cdx-notification__notification-appending'); - - window.setTimeout(function () { - editor.nodes.notifications.classList.remove('cdx-notification__notification-appending'); - }, 100); - - addToQueue({type: type, close: close}); - }; - - /** - * Remove notification block - */ - function close() { - notification.remove(); - }; - - - if (constructorSettings) { - create(constructorSettings); - send(); - } - - return { - create: create, - send: send, - close: close - }; - }; - - notifications.clear = function () { - editor.nodes.notifications.innerHTML = ''; - queue = []; - }; - - return notifications; -})({}); \ No newline at end of file diff --git a/src/components/modules/api-caret.ts b/src/components/modules/api-caret.ts deleted file mode 100644 index 5fb27a0f..00000000 --- a/src/components/modules/api-caret.ts +++ /dev/null @@ -1,26 +0,0 @@ -declare var Module: any; - -import {ICaretAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; - -/** - * @class CaretAPI - * provides with methods to work with caret - */ -export default class CaretAPI extends Module implements ICaretAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - /** - * Available methods - * @return {ICaretAPI} - */ - get methods(): ICaretAPI { - return {}; - } -} diff --git a/src/components/modules/api-sanitizer.ts b/src/components/modules/api-sanitizer.ts deleted file mode 100644 index 3baf074d..00000000 --- a/src/components/modules/api-sanitizer.ts +++ /dev/null @@ -1,33 +0,0 @@ -declare var Module: any; - -import {ISanitizerAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; - -/** - * @class API - * Provides CodeX Editor Sanitizer that allows developers to clean their HTML - */ -export default class SanitizerAPI extends Module implements ISanitizerAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - /** - * Available methods - * @return {ISanitizerAPI} - */ - get methods(): ISanitizerAPI { - return { - clean: (taintString, config) => this.clean(taintString, config), - }; - } - - public clean(taintString, config) { - return this.Editor.Sanitizer.clean(taintString, config); - } - -} diff --git a/src/components/modules/api-saver.ts b/src/components/modules/api-saver.ts deleted file mode 100644 index fef987c8..00000000 --- a/src/components/modules/api-saver.ts +++ /dev/null @@ -1,36 +0,0 @@ -declare var Module: any; - -import {ISaverAPI} from '../interfaces/api'; -import IInputOutputData from '../interfaces/input-output-data'; -import IModuleConfig from '../interfaces/module-config'; - -/** - * @class SaverAPI - * provides with methods to save data - */ -export default class SaverAPI extends Module implements ISaverAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - /** - * Available methods - * @return {ISaverAPI} - */ - get methods(): ISaverAPI { - return { - save: () => this.save(), - }; - } - - /** - * Return Editor's data - */ - public save(): IInputOutputData { - return this.Editor.Saver.save(); - } -} diff --git a/src/components/modules/api-selection.ts b/src/components/modules/api-selection.ts deleted file mode 100644 index 187bd8f2..00000000 --- a/src/components/modules/api-selection.ts +++ /dev/null @@ -1,49 +0,0 @@ -declare var Module: any; - -import {ISelectionAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; -import Selection from '../selection'; - -/** - * @class API - * Provides with methods working with SelectionUtils - */ -export default class SelectionAPI extends Module implements ISelectionAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - /** - * Available methods - * @return {ISelectionAPI} - */ - get methods(): ISelectionAPI { - return { - findParentTag: (tagName: string, className: string) => this.findParentTag(tagName, className), - expandToTag: (node: HTMLElement) => this.expandToTag(node), - }; - } - - /** - * Looks ahead from selection and find passed tag with class name - * @param {string} tagName - tag to find - * @param {string} className - tag's class name - * @return {HTMLElement|null} - */ - public findParentTag(tagName: string, className: string): HTMLElement|null { - return new Selection().findParentTag(tagName, className); - } - - /** - * Expand selection to passed tag - * @param {HTMLElement} node - tag that should contain selection - */ - public expandToTag(node: HTMLElement): void { - new Selection().expandToTag(node); - } - -} diff --git a/src/components/modules/api-toolbar.ts b/src/components/modules/api-toolbar.ts deleted file mode 100644 index d3b11660..00000000 --- a/src/components/modules/api-toolbar.ts +++ /dev/null @@ -1,44 +0,0 @@ -declare var Module: any; - -import {IToolbarAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; - -/** - * @class ToolbarsAPI - * provides with methods working with Toolbar - */ -export default class ToolbarAPI extends Module implements IToolbarAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - /** - * Available methods - * @return {IToolbarAPI} - */ - get methods(): IToolbarAPI { - return { - close: () => this.close(), - open: () => this.open(), - }; - } - - /** - * Open toolbar - */ - public open(): void { - this.Editor.Toolbar.open(); - } - - /** - * Close toolbar and all included elements - */ - public close(): void { - this.Editor.Toolbar.close(); - } - -} diff --git a/src/components/modules/api-blocks.ts b/src/components/modules/api/blocks.ts similarity index 71% rename from src/components/modules/api-blocks.ts rename to src/components/modules/api/blocks.ts index eae5fad7..ec831a8c 100644 --- a/src/components/modules/api-blocks.ts +++ b/src/components/modules/api/blocks.ts @@ -1,36 +1,29 @@ -declare var Module: any; +import Module from '../../__module'; -import { IBlocksAPI } from '../interfaces/api'; -import IInputOutputData from '../interfaces/input-output-data'; -import IModuleConfig from '../interfaces/module-config'; +import {Blocks} from '../../../../types/api'; +import {OutputData} from '../../../../types'; +import Block from '../../block'; +import {ModuleConfig} from '../../../types-internal/module-config'; /** * @class BlocksAPI * provides with methods working with Block */ -export default class BlocksAPI extends Module implements IBlocksAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - +export default class BlocksAPI extends Module { /** * Available methods - * @return {IBlocksAPI} + * @return {Blocks} */ - get methods(): IBlocksAPI { + get methods(): Blocks { return { clear: () => this.clear(), - render: (data: IInputOutputData) => this.render(data), + render: (data: OutputData) => this.render(data), delete: () => this.delete(), swap: (fromIndex: number, toIndex: number) => this.swap(fromIndex, toIndex), getBlockByIndex: (index: number) => this.getBlockByIndex(index), getCurrentBlockIndex: () => this.getCurrentBlockIndex(), getBlocksCount: () => this.getBlocksCount(), - stretchBlock: (index: number, status: boolean) => this.stretchBlock(index, status), + stretchBlock: (index: number, status: boolean = true) => this.stretchBlock(index, status), insertNewBlock: () => this.insertNewBlock(), }; } @@ -52,13 +45,14 @@ export default class BlocksAPI extends Module implements IBlocksAPI { } /** - * Returns Current Block + * Returns Block holder by Block index * @param {Number} index * - * @return {Object} + * @return {HTMLElement} */ - public getBlockByIndex(index: number): object { - return this.Editor.BlockManager.getBlockByIndex(index); + public getBlockByIndex(index: number): HTMLElement { + const block = this.Editor.BlockManager.getBlockByIndex(index); + return block.holder; } /** @@ -112,11 +106,11 @@ export default class BlocksAPI extends Module implements IBlocksAPI { /** * Fills Editor with Blocks data - * @param {IInputOutputData} data — Saved Editor data + * @param {OutputData} data — Saved Editor data */ - public render(data: IInputOutputData): void { + public render(data: OutputData): Promise { this.Editor.BlockManager.clear(); - this.Editor.Renderer.render(data.blocks); + return this.Editor.Renderer.render(data.blocks); } /** @@ -124,14 +118,14 @@ export default class BlocksAPI extends Module implements IBlocksAPI { * @param {number} index * @param {boolean} status - true to enable, false to disable */ - public stretchBlock(index: number, status: boolean): void { + public stretchBlock(index: number, status: boolean = true): void { const block = this.Editor.BlockManager.getBlockByIndex(index); if (!block) { return; } - block.stretched = status !== undefined ? status : true; + block.stretched = status; } /** diff --git a/src/components/modules/api/caret.ts b/src/components/modules/api/caret.ts new file mode 100644 index 00000000..8ff74b2f --- /dev/null +++ b/src/components/modules/api/caret.ts @@ -0,0 +1,17 @@ +import Module from '../../__module'; +import {Caret} from '../../../../types/api'; +import {ModuleConfig} from '../../../types-internal/module-config'; + +/** + * @class CaretAPI + * provides with methods to work with caret + */ +export default class CaretAPI extends Module { + /** + * Available methods + * @return {Caret} + */ + get methods(): Caret { + return {}; + } +} diff --git a/src/components/modules/api-events.ts b/src/components/modules/api/events.ts similarity index 70% rename from src/components/modules/api-events.ts rename to src/components/modules/api/events.ts index 43bb55b0..4862524d 100644 --- a/src/components/modules/api-events.ts +++ b/src/components/modules/api/events.ts @@ -1,26 +1,16 @@ -declare var Module: any; - -import {IEventsAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; +import Module from '../../__module'; +import {Events} from '../../../../types/api'; /** * @class EventsAPI * provides with methods working with Toolbar */ -export default class EventsAPI extends Module implements IEventsAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - +export default class EventsAPI extends Module { /** * Available methods - * @return {IEventsAPI} + * @return {Events} */ - get methods(): IEventsAPI { + get methods(): Events { return { emit: (eventName: string, data: object) => this.emit(eventName, data), off: (eventName: string, callback: () => void) => this.off(eventName, callback), diff --git a/src/components/modules/api.ts b/src/components/modules/api/index.ts similarity index 65% rename from src/components/modules/api.ts rename to src/components/modules/api/index.ts index 86d9fa0d..803eca76 100644 --- a/src/components/modules/api.ts +++ b/src/components/modules/api/index.ts @@ -5,37 +5,25 @@ * Each block has an Editor API instance to use provided public methods * if you cant to read more about how API works, please see docs */ -declare var Module: any; -declare var $: any; -declare var _: any; - -import { IAPI } from '../interfaces/api'; +import Module from '../../__module'; +import {API as APIInterfaces} from '../../../../types'; /** * @class API */ export default class API extends Module { - - /** - * Save Editor config. API provides passed configuration to the Blocks - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - } - - public get methods(): IAPI { + public get methods(): APIInterfaces { return { blocks: this.Editor.BlocksAPI.methods, caret: this.Editor.CaretAPI.methods, events: this.Editor.EventsAPI.methods, - listener: this.Editor.ListenerAPI.methods, + listeners: this.Editor.ListenersAPI.methods, notifier: this.Editor.NotifierAPI.methods, sanitizer: this.Editor.SanitizerAPI.methods, saver: this.Editor.SaverAPI.methods, selection: this.Editor.SelectionAPI.methods, styles: this.Editor.StylesAPI.classes, toolbar: this.Editor.ToolbarAPI.methods, - }; + } as APIInterfaces; } } diff --git a/src/components/modules/api-listener.ts b/src/components/modules/api/listeners.ts similarity index 59% rename from src/components/modules/api-listener.ts rename to src/components/modules/api/listeners.ts index 4e3eb8d2..37550162 100644 --- a/src/components/modules/api-listener.ts +++ b/src/components/modules/api/listeners.ts @@ -1,28 +1,18 @@ -declare var Module: any; - -import {IListenerAPI} from '../interfaces/api'; -import IModuleConfig from '../interfaces/module-config'; +import Module from '../../__module'; +import {Listeners} from '../../../../types/api'; /** - * @class API + * @class ListenersAPI * Provides with methods working with DOM Listener */ -export default class ListenerAPI extends Module implements IListenerAPI { - - /** - * Save Editor config. API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - +export default class ListenersAPI extends Module { /** * Available methods - * @return {IToolbarAPI} + * @return {Listeners} */ - get methods(): IListenerAPI { + get methods(): Listeners { return { - on: (element, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture), + on: (element: HTMLElement, eventType, handler, useCapture) => this.on(element, eventType, handler, useCapture), off: (element, eventType, handler) => this.off(element, eventType, handler), }; } diff --git a/src/components/modules/api-notifier.ts b/src/components/modules/api/notifier.ts similarity index 80% rename from src/components/modules/api-notifier.ts rename to src/components/modules/api/notifier.ts index 15595d6f..e91c3f7f 100644 --- a/src/components/modules/api-notifier.ts +++ b/src/components/modules/api/notifier.ts @@ -1,4 +1,5 @@ -import Module from '../__module'; +import Module from '../../__module'; +import {Notifier} from '../../../../types/api'; import {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier'; export default class NotifierAPI extends Module { @@ -6,7 +7,7 @@ export default class NotifierAPI extends Module { /** * Available methods */ - get methods() { + get methods(): Notifier { return { show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => this.show(options), }; diff --git a/src/components/modules/api/sanitizer.ts b/src/components/modules/api/sanitizer.ts new file mode 100644 index 00000000..0dd38fb3 --- /dev/null +++ b/src/components/modules/api/sanitizer.ts @@ -0,0 +1,23 @@ +import Module from '../../__module'; +import {Sanitizer} from '../../../../types/api'; + +/** + * @class SanitizerAPI + * Provides CodeX Editor Sanitizer that allows developers to clean their HTML + */ +export default class SanitizerAPI extends Module { + /** + * Available methods + * @return {Sanitizer} + */ + get methods(): Sanitizer { + return { + clean: (taintString, config) => this.clean(taintString, config), + }; + } + + public clean(taintString, config) { + return this.Editor.Sanitizer.clean(taintString, config); + } + +} diff --git a/src/components/modules/api/saver.ts b/src/components/modules/api/saver.ts new file mode 100644 index 00000000..3680331d --- /dev/null +++ b/src/components/modules/api/saver.ts @@ -0,0 +1,26 @@ +import Module from '../../__module'; +import {Saver} from '../../../../types/api'; +import {OutputData} from '../../../../types'; + +/** + * @class SaverAPI + * provides with methods to save data + */ +export default class SaverAPI extends Module { + /** + * Available methods + * @return {Saver} + */ + get methods(): Saver { + return { + save: () => this.save(), + }; + } + + /** + * Return Editor's data + */ + public save(): Promise { + return this.Editor.Saver.save(); + } +} diff --git a/src/components/modules/api/selection.ts b/src/components/modules/api/selection.ts new file mode 100644 index 00000000..df7453c3 --- /dev/null +++ b/src/components/modules/api/selection.ts @@ -0,0 +1,39 @@ +import Module from '../../__module'; +import SelectionUtils from '../../selection'; +import {Selection as SelectionAPIInterface} from '../../../../types/api'; + +/** + * @class SelectionAPI + * Provides with methods working with SelectionUtils + */ +export default class SelectionAPI extends Module { + /** + * Available methods + * @return {SelectionAPIInterface} + */ + get methods(): SelectionAPIInterface { + return { + findParentTag: (tagName: string, className?: string) => this.findParentTag(tagName, className), + expandToTag: (node: HTMLElement) => this.expandToTag(node), + }; + } + + /** + * Looks ahead from selection and find passed tag with class name + * @param {string} tagName - tag to find + * @param {string} className - tag's class name + * @return {HTMLElement|null} + */ + public findParentTag(tagName: string, className?: string): HTMLElement|null { + return new SelectionUtils().findParentTag(tagName, className); + } + + /** + * Expand selection to passed tag + * @param {HTMLElement} node - tag that should contain selection + */ + public expandToTag(node: HTMLElement): void { + new SelectionUtils().expandToTag(node); + } + +} diff --git a/src/components/modules/api-styles.ts b/src/components/modules/api/styles.ts similarity index 64% rename from src/components/modules/api-styles.ts rename to src/components/modules/api/styles.ts index 4b2b0450..7beb8127 100644 --- a/src/components/modules/api-styles.ts +++ b/src/components/modules/api/styles.ts @@ -1,22 +1,11 @@ -declare var Module: any; - -import IModuleConfig from '../interfaces/module-config'; -import {IStylesAPI} from '../interfaces/api'; +import Module from '../../__module'; +import {Styles} from '../../../../types/api'; /** * */ export default class StylesAPI extends Module { - - /** - * Save Editor config - * API provides passed configuration to the Blocks - */ - constructor({config}: IModuleConfig) { - super({config}); - } - - get classes(): IStylesAPI { + get classes(): Styles { return { /** * Base Block styles diff --git a/src/components/modules/api/toolbar.ts b/src/components/modules/api/toolbar.ts new file mode 100644 index 00000000..b7cec59d --- /dev/null +++ b/src/components/modules/api/toolbar.ts @@ -0,0 +1,34 @@ +import Module from '../../__module'; +import {Toolbar} from '../../../../types/api'; + +/** + * @class ToolbarAPI + * provides with methods working with Toolbar + */ +export default class ToolbarAPI extends Module { + /** + * Available methods + * @return {Toolbar} + */ + get methods(): Toolbar { + return { + close: () => this.close(), + open: () => this.open(), + }; + } + + /** + * Open toolbar + */ + public open(): void { + this.Editor.Toolbar.open(); + } + + /** + * Close toolbar and all included elements + */ + public close(): void { + this.Editor.Toolbar.close(); + } + +} diff --git a/src/components/modules/block-events.ts b/src/components/modules/blockEvents.ts similarity index 96% rename from src/components/modules/block-events.ts rename to src/components/modules/blockEvents.ts index db9af8af..230e2e77 100644 --- a/src/components/modules/block-events.ts +++ b/src/components/modules/blockEvents.ts @@ -1,18 +1,10 @@ /** * Contains keyboard and mouse events binded on each Block by Block Manager */ -declare var Module: any; -declare var $: any; -declare var _: any; +import Module from '../__module'; +import _ from '../utils'; export default class BlockEvents extends Module { - /** - * @constructor - */ - constructor({config}) { - super({config}); - } - /** * All keydowns on Block * @param {KeyboardEvent} event - keydown @@ -147,7 +139,7 @@ export default class BlockEvents extends Module { * @param {DragEvent} e */ public dragOver(e: DragEvent) { - const block = this.Editor.BlockManager.getBlockByChildNode(e.target); + const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node); block.dropTarget = true; } @@ -158,7 +150,7 @@ export default class BlockEvents extends Module { * @param {DragEvent} e */ public dragLeave(e: DragEvent) { - const block = this.Editor.BlockManager.getBlockByChildNode(e.target); + const block = this.Editor.BlockManager.getBlockByChildNode(e.target as Node); block.dropTarget = false; } @@ -169,7 +161,7 @@ export default class BlockEvents extends Module { */ private enter(event: KeyboardEvent): void { const currentBlock = this.Editor.BlockManager.currentBlock, - tool = this.Editor.Tools.toolsAvailable[currentBlock.name]; + tool = this.Editor.Tools.available[currentBlock.name]; /** * Don't handle Enter keydowns when Tool sets enableLineBreaks to true. @@ -228,7 +220,7 @@ export default class BlockEvents extends Module { private backspace(event: KeyboardEvent): void { const BM = this.Editor.BlockManager; const currentBlock = this.Editor.BlockManager.currentBlock, - tool = this.Editor.Tools.toolsAvailable[currentBlock.name]; + tool = this.Editor.Tools.available[currentBlock.name]; /** * Don't handle Backspaces when Tool sets enableLineBreaks to true. @@ -297,7 +289,7 @@ export default class BlockEvents extends Module { BM.mergeBlocks(targetBlock, blockToMerge) .then( () => { /** Restore caret position after merge */ - this.Editor.Caret.restoreCaret(targetBlock.pluginsContent); + this.Editor.Caret.restoreCaret(targetBlock.pluginsContent as HTMLElement); targetBlock.pluginsContent.normalize(); this.Editor.Toolbar.close(); }); diff --git a/src/components/modules/blockManager.js b/src/components/modules/blockManager.js deleted file mode 100644 index 29449547..00000000 --- a/src/components/modules/blockManager.js +++ /dev/null @@ -1,652 +0,0 @@ -/** - * @class BlockManager - * @classdesc Manage editor`s blocks storage and appearance - * - * @module BlockManager - * - * @version 2.0.0 - */ - -import Block from '../block'; - -/** - * @typedef {BlockManager} BlockManager - * @property {Number} currentBlockIndex - Index of current working block - * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks} - */ -export default class BlockManager extends Module { - /** - * @constructor - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - - /** - * Proxy for Blocks instance {@link Blocks} - * - * @type {Proxy} - * @private - */ - this._blocks = null; - - /** - * Index of current working block - * - * @type {number} - * @private - */ - this.currentBlockIndex = -1; - } - - /** - * Should be called after Editor.UI preparation - * Define this._blocks property - * - * @returns {Promise} - */ - prepare() { - return new Promise(resolve => { - let blocks = new Blocks(this.Editor.UI.nodes.redactor); - - /** - * We need to use Proxy to overload set/get [] operator. - * So we can use array-like syntax to access blocks - * - * @example - * this._blocks[0] = new Block(...); - * - * block = this._blocks[0]; - * - * @todo proxy the enumerate method - * - * @type {Proxy} - * @private - */ - this._blocks = new Proxy(blocks, { - set: Blocks.set, - get: Blocks.get - }); - - resolve(); - }); - } - - /** - * Creates Block instance by tool name - * - * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools} - * @param {Object} data - constructor params - * @param {Object} settings - block settings - * - * @return {Block} - */ - composeBlock(toolName, data, settings) { - let toolInstance = this.Editor.Tools.construct(toolName, data), - toolClass = this.Editor.Tools.available[toolName], - block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods); - - this.bindEvents(block); - return block; - } - - /** - * Bind Events - * @param {Object} block - */ - bindEvents(block) { - this.Editor.Listeners.on(block.holder, 'keydown', (event) => this.Editor.BlockEvents.keydown(event), true); - this.Editor.Listeners.on(block.holder, 'mouseup', (event) => this.Editor.BlockEvents.mouseUp(event)); - this.Editor.Listeners.on(block.holder, 'keyup', (event) => this.Editor.BlockEvents.keyup(event)); - this.Editor.Listeners.on(block.holder, 'dragover', (event) => this.Editor.BlockEvents.dragOver(event)); - this.Editor.Listeners.on(block.holder, 'dragleave', (event) => this.Editor.BlockEvents.dragLeave(event)); - } - - /** - * Insert new block into _blocks - * - * @param {String} toolName — plugin name, by default method inserts initial block type - * @param {Object} data — plugin data - * @param {Object} settings - default settings - * - * @return {Block} - */ - insert(toolName = this.config.initialBlock, data = {}, settings = {}) { - // Increment index before construct, - // because developers can use API/Blocks/getCurrentInputIndex on the render() method - const newIndex = ++this.currentBlockIndex; - const block = this.composeBlock(toolName, data, settings); - - this._blocks[newIndex] = block; - return block; - } - - /** - * Always inserts at the end - * @return {Block} - */ - insertAtEnd() { - /** - * Define new value for current block index - */ - this.currentBlockIndex = this.blocks.length - 1; - - /** - * Insert initial typed block - */ - return this.insert(); - } - - /** - * Merge two blocks - * @param {Block} targetBlock - previous block will be append to this block - * @param {Block} blockToMerge - block that will be merged with target block - * - * @return {Promise} - the sequence that can be continued - */ - mergeBlocks(targetBlock, blockToMerge) { - let blockToMergeIndex = this._blocks.indexOf(blockToMerge); - - return Promise.resolve() - .then( () => { - if (blockToMerge.isEmpty) { - return; - } - - return blockToMerge.data - .then((blockToMergeInfo) => { - targetBlock.mergeWith(blockToMergeInfo.data); - }); - }) - .then( () => { - this.removeBlock(blockToMergeIndex); - this.currentBlockIndex = this._blocks.indexOf(targetBlock); - }); - } - - /** - * Remove block with passed index or remove last - * @param {Number|null} index - */ - removeBlock(index) { - if (!index) { - index = this.currentBlockIndex; - } - this._blocks.remove(index); - - /** - * If first Block was removed, insert new Initial Block and set focus on it`s first input - */ - if (!this.blocks.length) { - this.currentBlockIndex = -1; - this.insert(); - this.currentBlock.firstInput.focus(); - } - } - - /** - * Split current Block - * 1. Extract content from Caret position to the Block`s end - * 2. Insert a new Block below current one with extracted content - * - * @return {Block} - */ - split() { - let extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(), - wrapper = $.make('div'); - - wrapper.append(extractedFragment); - - /** - * @todo make object in accordance with Tool - */ - let data = { - text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML, - }; - - /** - * Renew current Block - * @type {Block} - */ - return this.insert(this.config.initialBlock, data); - } - - /** - * Replace current working block - * - * @param {String} toolName — plugin name - * @param {Object} data — plugin data - * - * @return {Block} - */ - replace(toolName, data = {}) { - let block = this.composeBlock(toolName, data); - - this._blocks.insert(this.currentBlockIndex, block, true); - - return block; - } - - /** - * returns last Block - * @return {Block} - */ - get lastBlock() { - return this._blocks[this._blocks.length - 1]; - } - - /** - * Returns Block by passed index - * @param {Number} index - * @return {Block} - */ - getBlockByIndex(index) { - return this._blocks[index]; - } - - /** - * Get Block instance by html element - * @param {Node} element - * @returns {Block} - */ - getBlock(element) { - if (!$.isElement(element)) { - element = element.parentNode; - } - - let nodes = this._blocks.nodes, - firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`), - index = nodes.indexOf(firstLevelBlock); - - if (index >= 0) { - return this._blocks[index]; - } - } - - /** - * Get current Block instance - * - * @return {Block} - */ - get currentBlock() { - return this._blocks[this.currentBlockIndex]; - } - - /** - * Returns next Block instance - * @return {Block|null} - */ - get nextBlock() { - let isLastBlock = this.currentBlockIndex === (this._blocks.length - 1); - - if (isLastBlock) { - return null; - } - - return this._blocks[this.currentBlockIndex + 1]; - } - - /** - * Return first Block with inputs after current Block - * - * @returns {Block | undefined} - */ - get nextContentfulBlock() { - const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1); - - return nextBlocks.find(block => !!block.inputs.length); - } - - /** - * Return first Block with inputs before current Block - * - * @returns {Block | undefined} - */ - get previousContentfulBlock() { - const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse(); - - return previousBlocks.find(block => !!block.inputs.length); - } - - /** - * Returns previous Block instance - * @return {Block|null} - */ - get previousBlock() { - let isFirstBlock = this.currentBlockIndex === 0; - - if (isFirstBlock) { - return null; - } - - return this._blocks[this.currentBlockIndex - 1]; - } - - /** - * Remove selection from all Blocks then highlight only Current Block - */ - highlightCurrentNode() { - /** - * Remove previous selected Block's state - */ - this.clearFocused(); - - /** - * Mark current Block as selected - * @type {boolean} - */ - this.currentBlock.focused = true; - } - - /** - * Remove selection from all Blocks - */ - clearFocused() { - this.blocks.forEach( block => block.focused = false); - } - - /** - * Get array of Block instances - * - * @returns {Block[]} {@link Blocks#array} - */ - get blocks() { - return this._blocks.array; - } - - /** - * 1) Find first-level Block from passed child Node - * 2) Mark it as current - * - * @param {Element|Text} childNode - look ahead from this node. - * @param {string} caretPosition - position where to set caret - * @throws Error - when passed Node is not included at the Block - */ - setCurrentBlockByChildNode(childNode, caretPosition = 'default') { - /** - * If node is Text TextNode - */ - if (!$.isElement(childNode)) { - childNode = childNode.parentNode; - } - - const parentFirstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`); - - if (parentFirstLevelBlock) { - /** - * Update current Block's index - * @type {number} - */ - this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock); - - this.Editor.Caret.setToInput(childNode, caretPosition); - } else { - throw new Error('Can not find a Block from this child Node'); - } - } - - /** - * Return block which contents passed node - * - * @param {Node} childNode - * @return {Block} - */ - getBlockByChildNode(childNode) { - /** - * If node is Text TextNode - */ - if (!$.isElement(childNode)) { - childNode = childNode.parentNode; - } - - const firstLevelBlock = childNode.closest(`.${Block.CSS.wrapper}`); - - return this.blocks.find(block => block.holder === firstLevelBlock); - } - - /** - * Swap Blocks Position - * @param {Number} fromIndex - * @param {Number} toIndex - */ - swap(fromIndex, toIndex) { - /** Move up current Block */ - this._blocks.swap(fromIndex, toIndex); - - /** Now actual block moved up so that current block index decreased */ - this.currentBlockIndex = toIndex; - } - - /** - * Sets current Block Index -1 which means unknown - * and clear highlightings - */ - dropPointer() { - this.currentBlockIndex = -1; - this.clearFocused(); - } - - /** - * Clears Editor - * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render) - * we don't need to add empty initial block - * 2) in api.blocks.clear we should add empty block - */ - clear(needAddInitialBlock = false) { - this._blocks.removeAll(); - this.dropPointer(); - - if (needAddInitialBlock) { - this.insert(this.config.initialBlock); - } - } -}; - -/** - * @class Blocks - * @classdesc Class to work with Block instances array - * - * @private - * - * @property {HTMLElement} workingArea — editor`s working node - * - */ -class Blocks { - /** - * @constructor - * - * @param {HTMLElement} workingArea — editor`s working node - */ - constructor(workingArea) { - this.blocks = []; - this.workingArea = workingArea; - } - - /** - * Push back new Block - * - * @param {Block} block - */ - push(block) { - this.blocks.push(block); - this.workingArea.appendChild(block.holder); - } - - /** - * Swaps blocks with indexes first and second - * @param {Number} first - first block index - * @param {Number} second - second block index - */ - swap(first, second) { - let secondBlock = this.blocks[second]; - - /** - * Change in DOM - */ - $.swap(this.blocks[first].holder, secondBlock.holder); - - /** - * Change in array - */ - this.blocks[second] = this.blocks[first]; - this.blocks[first] = secondBlock; - } - - /** - * Insert new Block at passed index - * - * @param {Number} index — index to insert Block - * @param {Block} block — Block to insert - * @param {Boolean} replace — it true, replace block on given index - */ - insert(index, block, replace = false) { - if (!this.length) { - this.push(block); - return; - } - - if (index > this.length) { - index = this.length; - } - - if (replace) { - this.blocks[index].holder.remove(); - } - - let deleteCount = replace ? 1 : 0; - - this.blocks.splice(index, deleteCount, block); - - if (index > 0) { - let previousBlock = this.blocks[index - 1]; - - previousBlock.holder.insertAdjacentElement('afterend', block.holder); - } else { - let nextBlock = this.blocks[index + 1]; - - if (nextBlock) { - nextBlock.holder.insertAdjacentElement('beforebegin', block.holder); - } else { - this.workingArea.appendChild(block.holder); - } - } - } - - /** - * Remove block - * @param {Number|null} index - */ - remove(index) { - if (isNaN(index)) { - index = this.length - 1; - } - - this.blocks[index].holder.remove(); - this.blocks.splice(index, 1); - } - - /** - * Remove all blocks - */ - removeAll() { - this.workingArea.innerHTML = ''; - this.blocks.length = 0; - } - - /** - * Insert Block after passed target - * - * @todo decide if this method is necessary - * - * @param {Block} targetBlock — target after wich Block should be inserted - * @param {Block} newBlock — Block to insert - */ - insertAfter(targetBlock, newBlock) { - let index = this.blocks.indexOf(targetBlock); - - this.insert(index + 1, newBlock); - } - - /** - * Get Block by index - * - * @param {Number} index — Block index - * @returns {Block} - */ - get(index) { - return this.blocks[index]; - } - - /** - * Return index of passed Block - * - * @param {Block} block - * @returns {Number} - */ - indexOf(block) { - return this.blocks.indexOf(block); - } - - /** - * Get length of Block instances array - * - * @returns {Number} - */ - get length() { - return this.blocks.length; - } - - /** - * Get Block instances array - * - * @returns {Block[]} - */ - get array() { - return this.blocks; - } - - /** - * Get blocks html elements array - * - * @returns {HTMLElement[]} - */ - get nodes() { - return _.array(this.workingArea.children); - } - - /** - * Proxy trap to implement array-like setter - * - * @example - * blocks[0] = new Block(...) - * - * @param {Blocks} instance — Blocks instance - * @param {Number|String} index — block index - * @param {Block} block — Block to set - * @returns {Boolean} - */ - static set(instance, index, block) { - if (isNaN(Number(index))) { - return false; - } - - instance.insert(index, block); - - return true; - } - - /** - * Proxy trap to implement array-like getter - * - * @param {Blocks} instance — Blocks instance - * @param {Number|String} index — Block index - * @returns {Block|*} - */ - static get(instance, index) { - if (isNaN(Number(index))) { - return instance[index]; - } - - return instance.get(index); - } -} diff --git a/src/components/modules/blockManager.ts b/src/components/modules/blockManager.ts new file mode 100644 index 00000000..90fe430c --- /dev/null +++ b/src/components/modules/blockManager.ts @@ -0,0 +1,437 @@ +/** + * @class BlockManager + * @classdesc Manage editor`s blocks storage and appearance + * + * @module BlockManager + * + * @version 2.0.0 + */ +import Block from '../block'; +import Module from '../__module'; +import $ from '../dom'; +import Blocks from '../blocks'; +import {BlockTool, BlockToolConstructable, BlockToolData, ToolConfig} from '../../../types'; +import Caret from './caret'; + +/** + * @typedef {BlockManager} BlockManager + * @property {Number} currentBlockIndex - Index of current working block + * @property {Proxy} _blocks - Proxy for Blocks instance {@link Blocks} + */ +export default class BlockManager extends Module { + + /** + * returns last Block + * @return {Block} + */ + public get lastBlock(): Block { + return this._blocks[this._blocks.length - 1]; + } + + /** + * Get current Block instance + * + * @return {Block} + */ + public get currentBlock(): Block { + return this._blocks[this.currentBlockIndex]; + } + + /** + * Returns next Block instance + * @return {Block|null} + */ + public get nextBlock(): Block { + const isLastBlock = this.currentBlockIndex === (this._blocks.length - 1); + + if (isLastBlock) { + return null; + } + + return this._blocks[this.currentBlockIndex + 1]; + } + + /** + * Return first Block with inputs after current Block + * + * @returns {Block | undefined} + */ + public get nextContentfulBlock(): Block { + const nextBlocks = this.blocks.slice(this.currentBlockIndex + 1); + + return nextBlocks.find((block) => !!block.inputs.length); + } + + /** + * Return first Block with inputs before current Block + * + * @returns {Block | undefined} + */ + public get previousContentfulBlock(): Block { + const previousBlocks = this.blocks.slice(0, this.currentBlockIndex).reverse(); + + return previousBlocks.find((block) => !!block.inputs.length); + } + + /** + * Returns previous Block instance + * @return {Block|null} + */ + public get previousBlock(): Block { + const isFirstBlock = this.currentBlockIndex === 0; + + if (isFirstBlock) { + return null; + } + + return this._blocks[this.currentBlockIndex - 1]; + } + + /** + * Get array of Block instances + * + * @returns {Block[]} {@link Blocks#array} + */ + public get blocks(): Block[] { + return this._blocks.array; + } + + /** + * Index of current working block + * + * @type {number} + */ + public currentBlockIndex: number = -1; + + /** + * Proxy for Blocks instance {@link Blocks} + * + * @type {Proxy} + * @private + */ + private _blocks: Blocks = null; + + /** + * Should be called after Editor.UI preparation + * Define this._blocks property + * + * @returns {Promise} + */ + public async prepare() { + const blocks = new Blocks(this.Editor.UI.nodes.redactor); + + /** + * We need to use Proxy to overload set/get [] operator. + * So we can use array-like syntax to access blocks + * + * @example + * this._blocks[0] = new Block(...); + * + * block = this._blocks[0]; + * + * @todo proxy the enumerate method + * + * @type {Proxy} + * @private + */ + this._blocks = new Proxy(blocks, { + set: Blocks.set, + get: Blocks.get, + }); + } + + /** + * Creates Block instance by tool name + * + * @param {String} toolName - tools passed in editor config {@link EditorConfig#tools} + * @param {Object} data - constructor params + * @param {Object} settings - block settings + * + * @return {Block} + */ + public composeBlock(toolName: string, data: BlockToolData, settings?: ToolConfig): Block { + const toolInstance = this.Editor.Tools.construct(toolName, data) as BlockTool; + const toolClass = this.Editor.Tools.available[toolName] as BlockToolConstructable; + const block = new Block(toolName, toolInstance, toolClass, settings, this.Editor.API.methods); + + this.bindEvents(block); + + return block; + } + + /** + * Insert new block into _blocks + * + * @param {String} toolName — plugin name, by default method inserts initial block type + * @param {Object} data — plugin data + * @param {Object} settings - default settings + * + * @return {Block} + */ + public insert( + toolName: string = this.config.initialBlock, + data: BlockToolData = {}, + settings: ToolConfig = {}, + ): Block { + // Increment index before construct, + // because developers can use API/Blocks/getCurrentInputIndex on the render() method + const newIndex = ++this.currentBlockIndex; + const block = this.composeBlock(toolName, data, settings); + + this._blocks[newIndex] = block; + return block; + } + + /** + * Always inserts at the end + * @return {Block} + */ + public insertAtEnd(): Block { + /** + * Define new value for current block index + */ + this.currentBlockIndex = this.blocks.length - 1; + + /** + * Insert initial typed block + */ + return this.insert(); + } + + /** + * Merge two blocks + * @param {Block} targetBlock - previous block will be append to this block + * @param {Block} blockToMerge - block that will be merged with target block + * + * @return {Promise} - the sequence that can be continued + */ + public async mergeBlocks(targetBlock: Block, blockToMerge: Block): Promise { + const blockToMergeIndex = this._blocks.indexOf(blockToMerge); + + if (blockToMerge.isEmpty) { + return; + } + + const blockToMergeData = await blockToMerge.data; + + await targetBlock.mergeWith(blockToMergeData); + + this.removeBlock(blockToMergeIndex); + this.currentBlockIndex = this._blocks.indexOf(targetBlock); + } + + /** + * Remove block with passed index or remove last + * @param {Number|null} index + */ + public removeBlock(index?: number): void { + if (!index) { + index = this.currentBlockIndex; + } + this._blocks.remove(index); + + /** + * If first Block was removed, insert new Initial Block and set focus on it`s first input + */ + if (!this.blocks.length) { + this.currentBlockIndex = -1; + this.insert(); + this.currentBlock.firstInput.focus(); + } + } + + /** + * Split current Block + * 1. Extract content from Caret position to the Block`s end + * 2. Insert a new Block below current one with extracted content + * + * @return {Block} + */ + public split(): Block { + const extractedFragment = this.Editor.Caret.extractFragmentFromCaretPosition(); + const wrapper = $.make('div'); + + wrapper.append(extractedFragment); + + /** + * @todo make object in accordance with Tool + */ + const data = { + text: $.isEmpty(wrapper) ? '' : wrapper.innerHTML, + }; + + /** + * Renew current Block + * @type {Block} + */ + return this.insert(this.config.initialBlock, data); + } + + /** + * Replace current working block + * + * @param {String} toolName — plugin name + * @param {Object} data — plugin data + * + * @return {Block} + */ + public replace(toolName: string, data: BlockToolData = {}): Block { + const block = this.composeBlock(toolName, data); + + this._blocks.insert(this.currentBlockIndex, block, true); + + return block; + } + + /** + * Returns Block by passed index + * @param {Number} index + * @return {Block} + */ + public getBlockByIndex(index): Block { + return this._blocks[index]; + } + + /** + * Get Block instance by html element + * @param {Node} element + * @returns {Block} + */ + public getBlock(element: HTMLElement): Block { + if (!$.isElement(element)) { + element = element.parentNode as HTMLElement; + } + + const nodes = this._blocks.nodes, + firstLevelBlock = element.closest(`.${Block.CSS.wrapper}`), + index = nodes.indexOf(firstLevelBlock as HTMLElement); + + if (index >= 0) { + return this._blocks[index]; + } + } + + /** + * Remove selection from all Blocks then highlight only Current Block + */ + public highlightCurrentNode(): void { + /** + * Remove previous selected Block's state + */ + this.clearFocused(); + + /** + * Mark current Block as selected + * @type {boolean} + */ + this.currentBlock.focused = true; + } + + /** + * Remove selection from all Blocks + */ + public clearFocused(): void { + this.blocks.forEach( (block) => block.focused = false); + } + + /** + * 1) Find first-level Block from passed child Node + * 2) Mark it as current + * + * @param {Node} childNode - look ahead from this node. + * @param {string} caretPosition - position where to set caret + * @throws Error - when passed Node is not included at the Block + */ + public setCurrentBlockByChildNode(childNode: Node, caretPosition: string = Caret.positions.DEFAULT): void { + /** + * If node is Text TextNode + */ + if (!$.isElement(childNode)) { + childNode = childNode.parentNode; + } + + const parentFirstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`); + + if (parentFirstLevelBlock) { + /** + * Update current Block's index + * @type {number} + */ + this.currentBlockIndex = this._blocks.nodes.indexOf(parentFirstLevelBlock as HTMLElement); + + this.Editor.Caret.setToInput(childNode as HTMLElement, caretPosition); + } else { + throw new Error('Can not find a Block from this child Node'); + } + } + + /** + * Return block which contents passed node + * + * @param {Node} childNode + * @return {Block} + */ + public getBlockByChildNode(childNode: Node): Block { + /** + * If node is Text TextNode + */ + if (!$.isElement(childNode)) { + childNode = childNode.parentNode; + } + + const firstLevelBlock = (childNode as HTMLElement).closest(`.${Block.CSS.wrapper}`); + + return this.blocks.find((block) => block.holder === firstLevelBlock); + } + + /** + * Swap Blocks Position + * @param {Number} fromIndex + * @param {Number} toIndex + */ + public swap(fromIndex, toIndex): void { + /** Move up current Block */ + this._blocks.swap(fromIndex, toIndex); + + /** Now actual block moved up so that current block index decreased */ + this.currentBlockIndex = toIndex; + } + + /** + * Sets current Block Index -1 which means unknown + * and clear highlightings + */ + public dropPointer(): void { + this.currentBlockIndex = -1; + this.clearFocused(); + } + + /** + * Clears Editor + * @param {boolean} needAddInitialBlock - 1) in internal calls (for example, in api.blocks.render) + * we don't need to add empty initial block + * 2) in api.blocks.clear we should add empty block + */ + public clear(needAddInitialBlock: boolean = false): void { + this._blocks.removeAll(); + this.dropPointer(); + + if (needAddInitialBlock) { + this.insert(this.config.initialBlock); + } + } + + /** + * Bind Events + * @param {Object} block + */ + private bindEvents(block: Block): void { + const {BlockEvents, Listeners} = this.Editor; + + Listeners.on(block.holder, 'keydown', (event) => BlockEvents.keydown(event as KeyboardEvent), true); + Listeners.on(block.holder, 'mouseup', (event) => BlockEvents.mouseUp(event)); + Listeners.on(block.holder, 'keyup', (event) => BlockEvents.keyup(event)); + Listeners.on(block.holder, 'dragover', (event) => BlockEvents.dragOver(event as DragEvent)); + Listeners.on(block.holder, 'dragleave', (event) => BlockEvents.dragLeave(event as DragEvent)); + } +} diff --git a/src/components/modules/blockSelection.ts b/src/components/modules/blockSelection.ts index 8a9a3c0e..66ed2ed7 100644 --- a/src/components/modules/blockSelection.ts +++ b/src/components/modules/blockSelection.ts @@ -5,9 +5,9 @@ * @module BlockSelection * @version 1.0.0 */ -declare var Module: any; -declare var _: any; -declare var $: any; +import Module from '../__module'; +import _ from '../utils'; +import $ from '../dom'; import SelectionUtils from '../selection'; diff --git a/src/components/modules/caret.js b/src/components/modules/caret.ts similarity index 74% rename from src/components/modules/caret.js rename to src/components/modules/caret.ts index f86deb02..855f5f2e 100644 --- a/src/components/modules/caret.js +++ b/src/components/modules/caret.ts @@ -10,26 +10,15 @@ */ import Selection from '../selection'; +import Module from '../__module'; +import Block from '../block'; +import $ from '../dom'; +import _ from '../utils'; /** * @typedef {Caret} Caret */ export default class Caret extends Module { - /** - * @constructor - */ - constructor({config}) { - super({config}); - } - - /** - * Elements styles that can be useful for Caret Module - */ - static get CSS() { - return { - shadowCaret: 'cdx-shadow-caret' - }; - }; /** * Allowed caret positions in input @@ -37,14 +26,130 @@ export default class Caret extends Module { * @static * @returns {{START: string, END: string, DEFAULT: string}} */ - static get positions() { + public static get positions(): {START: string, END: string, DEFAULT: string} { return { START: 'start', END: 'end', - DEFAULT: 'default' + DEFAULT: 'default', }; } + /** + * Elements styles that can be useful for Caret Module + */ + private static get CSS(): {shadowCaret: string} { + return { + shadowCaret: 'cdx-shadow-caret', + }; + } + + /** + * Get's deepest first node and checks if offset is zero + * @return {boolean} + */ + public get isAtStart(): boolean { + /** + * Don't handle ranges + */ + if (!Selection.isCollapsed) { + return false; + } + + const selection = Selection.get(), + anchorNode = selection.anchorNode, + firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput); + + /** In case lastNode is native input */ + if ($.isNativeInput(firstNode)) { + return (firstNode as HTMLInputElement).selectionEnd === 0; + } + + /** + * Workaround case when caret in the text like " |Hello!" + * selection.anchorOffset is 1, but real caret visible position is 0 + * @type {number} + */ + let firstLetterPosition = anchorNode.textContent.search(/\S/); + + if (firstLetterPosition === -1) { // empty text + firstLetterPosition = 0; + } + + /** + * In case of + *
    + *

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

    <-- first (and deepest) node is + *
    + */ + if ($.isEmpty(lastNode)) { + const leftSiblings = this.getHigherLevelSiblings(anchorNode as HTMLElement, 'right'), + nothingAtRight = leftSiblings.every( (node) => $.isEmpty(node) ); + + if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) { + return true; + } + } + + /** + * Workaround case: + * hello | <--- anchorOffset will be 5, but textContent.length will be 6. + * Why not regular .trim(): + * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset + */ + const rightTrimmedText = lastNode.textContent.replace(/\s+$/, ''); + + /** + * We use >= comparison for case: + * "Hello |" <--- selection.anchorOffset is 7, but rightTrimmedText is 6 + */ + return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length; + } + /** * Method gets Block instance and puts caret to the text node with offset * There two ways that method applies caret position: @@ -52,14 +157,15 @@ export default class Caret extends Module { * - last found text node: sets at the end of the node. Also, you can customize the behaviour * * @param {Block} block - Block class - * @param {String} position - position where to set caret. If default - leave default behaviour and apply offset if it's passed + * @param {String} position - position where to set caret. + * If default - leave default behaviour and apply offset if it's passed * @param {Number} offset - caret offset regarding to the text node */ - setToBlock(block, position = Caret.positions.DEFAULT, offset = 0) { + public setToBlock(block: Block, position: string = Caret.positions.DEFAULT, offset: number = 0): void { const {BlockManager} = this.Editor; let element; - switch(position) { + switch (position) { case Caret.positions.START: element = block.firstInput; break; @@ -91,7 +197,7 @@ export default class Caret extends Module { * @todo try to fix via Promises or use querySelectorAll to not to use timeout */ _.delay( () => { - this.set(nodeToSet, offset); + this.set(nodeToSet as HTMLElement, offset); }, 20)(); BlockManager.setCurrentBlockByChildNode(block.holder); @@ -102,27 +208,28 @@ export default class Caret extends Module { * Set caret to the current input of current Block. * * @param {HTMLElement} input - input where caret should be set - * @param {String} position - position of the caret. If default - leave default behaviour and apply offset if it's passed + * @param {String} position - position of the caret. + * If default - leave default behaviour and apply offset if it's passed * @param {number} offset - caret offset regarding to the text node */ - setToInput(input, position = Caret.positions.DEFAULT, offset = 0) { + public setToInput(input: HTMLElement, position: string = Caret.positions.DEFAULT, offset: number = 0): void { const {currentBlock} = this.Editor.BlockManager; const nodeToSet = $.getDeepestNode(input); switch (position) { case Caret.positions.START: - this.set(nodeToSet, 0); + this.set(nodeToSet as HTMLElement, 0); break; case Caret.positions.END: const contentLength = $.getContentLength(nodeToSet); - this.set(nodeToSet, contentLength); + this.set(nodeToSet as HTMLElement, contentLength); break; default: if (offset) { - this.set(nodeToSet, offset); + this.set(nodeToSet as HTMLElement, offset); } } @@ -131,17 +238,17 @@ export default class Caret extends Module { /** * Creates Document Range and sets caret to the element with offset - * @param {Element} element - target node. + * @param {HTMLElement} element - target node. * @param {Number} offset - offset */ - set( element, offset = 0) { + public set(element: HTMLElement, offset: number = 0): void { const range = document.createRange(), selection = Selection.get(); /** if found deepest node is native input */ if ($.isNativeInput(element)) { element.focus(); - element.selectionStart = element.selectionEnd = offset; + (element as HTMLInputElement).selectionStart = (element as HTMLInputElement).selectionEnd = offset; return; } @@ -151,23 +258,23 @@ export default class Caret extends Module { selection.removeAllRanges(); selection.addRange(range); - /** If new cursor position is not visible, scroll to it */ const {top, bottom} = range.getBoundingClientRect(); const {innerHeight} = window; - if (top < 0) window.scrollBy(0, top); - if (bottom > innerHeight) window.scrollBy(0, bottom - innerHeight); - }; - + if (top < 0) { window.scrollBy(0, top); } + if (bottom > innerHeight) { window.scrollBy(0, bottom - innerHeight); } + } /** * Set Caret to the last Block * If last block is not empty, append another empty block */ - setToTheLastBlock() { - let lastBlock = this.Editor.BlockManager.lastBlock; + public setToTheLastBlock(): void { + const lastBlock = this.Editor.BlockManager.lastBlock; - if (!lastBlock) return; + if (!lastBlock) { + return; + } /** * If last block is empty and it is an initialBlock, set to that. @@ -185,18 +292,17 @@ export default class Caret extends Module { /** * Extract content fragment of current Block from Caret position to the end of the Block */ - extractFragmentFromCaretPosition() { - let selection = Selection.get(); + public extractFragmentFromCaretPosition(): void|DocumentFragment { + const selection = Selection.get(); if (selection.rangeCount) { const selectRange = selection.getRangeAt(0); const currentBlockInput = this.Editor.BlockManager.currentBlock.currentInput; - selectRange.deleteContents(); if (currentBlockInput) { - let range = selectRange.cloneRange(true); + const range = selectRange.cloneRange(); range.selectNodeContents(currentBlockInput); range.setStart(selectRange.endContainer, selectRange.endOffset); @@ -205,47 +311,6 @@ export default class Caret extends Module { } } - /** - * Get all first-level (first child of [contenteditabel]) siblings from passed node - * Then you can check it for emptiness - * - * @example - *
    - * - * @return {Element[]} - */ - getHigherLevelSiblings(from, direction ) { - let current = from, - siblings = []; - - /** - * Find passed node's firs-level parent (in example - blockquote) - */ - while (current.parentNode && current.parentNode.contentEditable !== 'true') { - current = current.parentNode; - } - - let sibling = direction === 'left' ? 'previousSibling' : 'nextSibling'; - - /** - * Find all left/right siblings - */ - while (current[sibling]) { - current = current[sibling]; - siblings.push(current); - } - - return siblings; - } - /** * Set's caret to the next Block or Tool`s input * Before moving caret, we should check if caret position is at the end of Plugins node @@ -255,7 +320,7 @@ export default class Caret extends Module { * * @return {Boolean} */ - navigateNext(force = false) { + public navigateNext(force: boolean = false): boolean { const {currentBlock, nextContentfulBlock} = this.Editor.BlockManager; const {nextInput} = currentBlock; @@ -291,9 +356,14 @@ export default class Caret extends Module { * * @return {Boolean} */ - navigatePrevious(force = false) { + public navigatePrevious(force: boolean = false): boolean { const {currentBlock, previousContentfulBlock} = this.Editor.BlockManager; - const {previousInput} = currentBlock || {}; + + if (!currentBlock) { + return false; + } + + const {previousInput} = currentBlock; if (!previousContentfulBlock && !previousInput) { return false; @@ -316,121 +386,12 @@ export default class Caret extends Module { return false; } - /** - * Get's deepest first node and checks if offset is zero - * @return {boolean} - */ - get isAtStart() { - /** - * Don't handle ranges - */ - if (!Selection.isCollapsed) { - return false; - } - - let selection = Selection.get(), - anchorNode = selection.anchorNode, - firstNode = $.getDeepestNode(this.Editor.BlockManager.currentBlock.currentInput); - - /** In case lastNode is native input */ - if ($.isNativeInput(firstNode)) { - return firstNode.selectionEnd === 0; - } - - /** - * Workaround case when caret in the text like " |Hello!" - * selection.anchorOffset is 1, but real caret visible position is 0 - * @type {number} - */ - let firstLetterPosition = anchorNode.textContent.search(/\S/); - - if (firstLetterPosition === -1) { // empty text - firstLetterPosition = 0; - } - - /** - * In case of - *
    - *

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

    <-- first (and deepest) node is - *
    - */ - if ($.isEmpty(lastNode)) { - let leftSiblings = this.getHigherLevelSiblings(anchorNode, 'right'), - nothingAtRight = leftSiblings.every( node => $.isEmpty(node) ); - - if (nothingAtRight && selection.anchorOffset === anchorNode.textContent.length) { - return true; - } - } - - /** - * Workaround case: - * hello | <--- anchorOffset will be 5, but textContent.length will be 6. - * Why not regular .trim(): - * in case of ' hello |' trim() will also remove space at the beginning, so length will be lower than anchorOffset - */ - let rightTrimmedText = lastNode.textContent.replace(/\s+$/, ''); - - /** - * We use >= comparison for case: - * "Hello |" <--- selection.anchorOffset is 7, but rightTrimmedText is 6 - */ - return anchorNode === lastNode && selection.anchorOffset >= rightTrimmedText.length; - } - /** * Inserts shadow element after passed element where caret can be placed * @param {Node} element */ - createShadow(element) { - let shadowCaret = document.createElement('span'); + public createShadow(element): void { + const shadowCaret = document.createElement('span'); shadowCaret.classList.add(Caret.CSS.shadowCaret); element.insertAdjacentElement('beforeEnd', shadowCaret); @@ -438,10 +399,10 @@ export default class Caret extends Module { /** * Restores caret position - * @param {Node} element + * @param {HTMLElement} element */ - restoreCaret(element) { - let shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`); + public restoreCaret(element: HTMLElement): void { + const shadowCaret = element.querySelector(`.${Caret.CSS.shadowCaret}`); if (!shadowCaret) { return; @@ -455,15 +416,56 @@ export default class Caret extends Module { * - select shadowed span * - use extractContent to remove it from DOM */ - let sel = new Selection(); + const sel = new Selection(); - sel.expandToTag(shadowCaret); + sel.expandToTag(shadowCaret as HTMLElement); setTimeout(() => { - let newRange = document.createRange(); + const newRange = document.createRange(); newRange.selectNode(shadowCaret); newRange.extractContents(); }, 50); } + + /** + * Get all first-level (first child of [contenteditabel]) siblings from passed node + * Then you can check it for emptiness + * + * @example + *
    + * + * @return {Element[]} + */ + private getHigherLevelSiblings(from: HTMLElement, direction?: string): HTMLElement[] { + let current = from; + const siblings = []; + + /** + * Find passed node's firs-level parent (in example - blockquote) + */ + while (current.parentNode && (current.parentNode as HTMLElement).contentEditable !== 'true') { + current = current.parentNode as HTMLElement; + } + + const sibling = direction === 'left' ? 'previousSibling' : 'nextSibling'; + + /** + * Find all left/right siblings + */ + while (current[sibling]) { + current = current[sibling] as HTMLElement; + siblings.push(current); + } + + return siblings; + } } diff --git a/src/components/modules/dragNDrop.ts b/src/components/modules/dragNDrop.ts index 469e1a71..16bdc9a0 100644 --- a/src/components/modules/dragNDrop.ts +++ b/src/components/modules/dragNDrop.ts @@ -1,6 +1,7 @@ import SelectionUtils from '../selection'; -declare var Module: any; +import Module from '../__module'; +import Caret from './caret'; export default class DragNDrop extends Module { @@ -67,9 +68,9 @@ export default class DragNDrop extends Module { * If drop target (error will be thrown) is not part of the Block, set last Block as current. */ try { - BlockManager.setCurrentBlockByChildNode(dropEvent.target, 'end'); + BlockManager.setCurrentBlockByChildNode(dropEvent.target as Node, Caret.positions.END); } catch (e) { - BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, 'end'); + BlockManager.setCurrentBlockByChildNode(BlockManager.lastBlock.holder, Caret.positions.END); } Paste.processDataTransfer(dropEvent.dataTransfer, true); diff --git a/src/components/modules/events.js b/src/components/modules/events.ts similarity index 69% rename from src/components/modules/events.js rename to src/components/modules/events.ts index 5cb42283..5b95e5d4 100644 --- a/src/components/modules/events.js +++ b/src/components/modules/events.ts @@ -1,3 +1,5 @@ +import Module from '../__module'; + /** * @module eventDispatcher * @@ -12,13 +14,12 @@ * @property {Object} subscribers - all subscribers grouped by event name */ export default class Events extends Module { + /** - * @constructor + * Object with events` names as key and array of callback functions as value + * @type {{}} */ - constructor({config}) { - super({config}); - this.subscribers = {}; - } + private subscribers: {[name: string]: Array<(data?: any) => void>} = {}; /** * Subscribe any event on callback @@ -26,7 +27,7 @@ export default class Events extends Module { * @param {String} eventName - event name * @param {Function} callback - subscriber */ - on(eventName, callback) { + public on(eventName: string, callback: (data: any) => void) { if (!(eventName in this.subscribers)) { this.subscribers[eventName] = []; } @@ -41,13 +42,13 @@ export default class Events extends Module { * @param {String} eventName - event name * @param {Object} data - subscribers get this data when they were fired */ - emit(eventName, data) { + public emit(eventName: string, data?: any): void { if (!this.subscribers[eventName]) { return; } - this.subscribers[eventName].reduce(function (previousData, currentHandler) { - let newData = currentHandler(previousData); + this.subscribers[eventName].reduce((previousData, currentHandler) => { + const newData = currentHandler(previousData); return newData ? newData : previousData; }, data); @@ -59,8 +60,8 @@ export default class Events extends Module { * @param eventName * @param callback */ - off(eventName, callback) { - for(let i = 0; i < this.subscribers[eventName].length; i++) { + public off(eventName: string, callback: (data: any) => void): void { + for (let i = 0; i < this.subscribers[eventName].length; i++) { if (this.subscribers[eventName][i] === callback) { delete this.subscribers[eventName][i]; break; @@ -72,7 +73,7 @@ export default class Events extends Module { * Destroyer * clears subsribers list */ - destroy() { + public destroy(): void { this.subscribers = null; } } diff --git a/src/components/modules/listeners.js b/src/components/modules/listeners.js deleted file mode 100644 index 435d75e5..00000000 --- a/src/components/modules/listeners.js +++ /dev/null @@ -1,174 +0,0 @@ -/** - * Codex Editor Listeners module - * - * @module Listeners - * - * Module-decorator for event listeners assignment - * - * @author Codex Team - * @version 2.0.0 - */ - -/** - * @typedef {Listeners} Listeners - * @property {Array} allListeners - */ -export default class Listeners extends Module { - /** - * @constructor - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - this.allListeners = []; - } - - /** - * Assigns event listener on element - * - * @param {Element} element - DOM element that needs to be listened - * @param {String} eventType - event type - * @param {Function} handler - method that will be fired on event - * @param {Boolean} useCapture - use event bubbling - */ - on(element, eventType, handler, useCapture = false) { - let assignedEventData = { - element, - eventType, - handler, - useCapture - }; - - let alreadyExist = this.findOne(element, eventType, handler); - - if (alreadyExist) return; - - this.allListeners.push(assignedEventData); - element.addEventListener(eventType, handler, useCapture); - } - - /** - * Removes event listener from element - * - * @param {Element} element - DOM element that we removing listener - * @param {String} eventType - event type - * @param {Function} handler - remove handler, if element listens several handlers on the same event type - * @param {Boolean} useCapture - use event bubbling - */ - off(element, eventType, handler, useCapture = false) { - let existingListeners = this.findAll(element, eventType, handler); - - for (let i = 0; i < existingListeners.length; i++) { - let index = this.allListeners.indexOf(existingListeners[i]); - - if (index > 0) { - this.allListeners.splice(index, 1); - } - } - - element.removeEventListener(eventType, handler, useCapture); - } - - /** - * Search method: looks for listener by passed element - * @param {Element} element - searching element - * @returns {Array} listeners that found on element - */ - findByElement(element) { - let listenersOnElement = []; - - for (let i = 0; i < this.allListeners.length; i++) { - let listener = this.allListeners[i]; - - if (listener.element === element) { - listenersOnElement.push(listener); - } - } - - return listenersOnElement; - } - - /** - * Search method: looks for listener by passed event type - * @param {String} eventType - * @return {Array} listeners that found on element - */ - findByType(eventType) { - let listenersWithType = []; - - for (let i = 0; i < this.allListeners.length; i++) { - let listener = this.allListeners[i]; - - if (listener.type === eventType) { - listenersWithType.push(listener); - } - } - - return listenersWithType; - } - - /** - * Search method: looks for listener by passed handler - * @param {Function} handler - * @return {Array} listeners that found on element - */ - findByHandler(handler) { - let listenersWithHandler = []; - - for (let i = 0; i < this.allListeners.length; i++) { - let listener = this.allListeners[i]; - - if (listener.handler === handler) { - listenersWithHandler.push(listener); - } - } - - return listenersWithHandler; - } - - /** - * @param {Element} element - * @param {String} eventType - * @param {Function} handler - * @return {Element|null} - */ - findOne(element, eventType, handler) { - let foundListeners = this.findAll(element, eventType, handler); - - return foundListeners.length > 0 ? foundListeners[0] : null; - } - - /** - * @param {Element} element - * @param {String} eventType - * @param {Function} handler - * @return {Array} - */ - findAll(element, eventType, handler) { - let found, - foundByElements = element ? this.findByElement(element) : []; - // foundByEventType = eventType ? this.findByType(eventType) : [], - // foundByHandler = handler ? this.findByHandler(handler) : []; - - if (element && eventType && handler) { - found = foundByElements.filter( event => event.eventType === eventType && event.handler === handler ); - } else if (element && eventType) { - found = foundByElements.filter( event => event.eventType === eventType); - } else { - found = foundByElements; - } - - return found; - } - - /** - * Removes all listeners - */ - removeAll() { - this.allListeners.map( (current) => { - current.element.removeEventListener(current.eventType, current.handler); - }); - - this.allListeners = []; - } -} diff --git a/src/components/modules/listeners.ts b/src/components/modules/listeners.ts new file mode 100644 index 00000000..395d370d --- /dev/null +++ b/src/components/modules/listeners.ts @@ -0,0 +1,192 @@ +import Module from '../__module'; +import {EditorConfig} from '../../../types'; + +/** + * Event listener information + */ +export interface ListenerData { + /** + * Element where to listen to dispatched events + */ + element: EventTarget; + + /** + * Event to listen + */ + eventType: string; + + /** + * Event handler + * + * @param {Event} event + */ + handler: (event: Event) => void; + + /** + * Should event bubbling be used or not + */ + useCapture: boolean; +} + +/** + * Codex Editor Listeners module + * + * @module Listeners + * + * Module-decorator for event listeners assignment + * + * @author Codex Team + * @version 2.0.0 + */ + +/** + * @typedef {Listeners} Listeners + * @property {Array} allListeners + */ +export default class Listeners extends Module { + + /** + * Stores all listeners data to find/remove/process it + * @type {ListenerData[]} + */ + private allListeners: ListenerData[] = []; + + /** + * Assigns event listener on element + * + * @param {EventTarget} element - DOM element that needs to be listened + * @param {String} eventType - event type + * @param {Function} handler - method that will be fired on event + * @param {Boolean} useCapture - use event bubbling + */ + public on( + element: EventTarget, + eventType: string, + handler: (event: Event) => void, + useCapture: boolean = false, + ): void { + const assignedEventData = { + element, + eventType, + handler, + useCapture, + }; + + const alreadyExist = this.findOne(element, eventType, handler); + + if (alreadyExist) { return; } + + this.allListeners.push(assignedEventData); + element.addEventListener(eventType, handler, useCapture); + } + + /** + * Removes event listener from element + * + * @param {EventTarget} element - DOM element that we removing listener + * @param {String} eventType - event type + * @param {Function} handler - remove handler, if element listens several handlers on the same event type + * @param {Boolean} useCapture - use event bubbling + */ + public off( + element: EventTarget, + eventType: string, + handler: (event: Event) => void, + useCapture: boolean = false, + ): void { + const existingListeners = this.findAll(element, eventType, handler); + + existingListeners.forEach((listener, i) => { + const index = this.allListeners.indexOf(existingListeners[i]); + + if (index > 0) { + this.allListeners.splice(index, 1); + } + }); + + element.removeEventListener(eventType, handler, useCapture); + } + + /** + * @param {EventTarget} element + * @param {String} eventType + * @param {Function} handler + * @return {EventTarget|null} + */ + public findOne(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData { + const foundListeners = this.findAll(element, eventType, handler); + + return foundListeners.length > 0 ? foundListeners[0] : null; + } + + /** + * @param {EventTarget} element + * @param {String} eventType + * @param {Function} handler + * @return {Array} + */ + public findAll(element: EventTarget, eventType: string, handler: (event: Event) => void): ListenerData[] { + let found; + const foundByEventTargets = element ? this.findByEventTarget(element) : []; + + if (element && eventType && handler) { + found = foundByEventTargets.filter( (event) => event.eventType === eventType && event.handler === handler ); + } else if (element && eventType) { + found = foundByEventTargets.filter( (event) => event.eventType === eventType); + } else { + found = foundByEventTargets; + } + + return found; + } + + /** + * Removes all listeners + */ + public removeAll(): void { + this.allListeners.map( (current) => { + current.element.removeEventListener(current.eventType, current.handler); + }); + + this.allListeners = []; + } + + /** + * Search method: looks for listener by passed element + * @param {EventTarget} element - searching element + * @returns {Array} listeners that found on element + */ + private findByEventTarget(element: EventTarget): ListenerData[] { + return this.allListeners.filter((listener) => { + if (listener.element === element) { + return listener; + } + }); + } + + /** + * Search method: looks for listener by passed event type + * @param {String} eventType + * @return {Array} listeners that found on element + */ + private findByType(eventType: string): ListenerData[] { + return this.allListeners.filter((listener) => { + if (listener.eventType === eventType) { + return listener; + } + }); + } + + /** + * Search method: looks for listener by passed handler + * @param {Function} handler + * @return {Array} listeners that found on element + */ + private findByHandler(handler: (event: Event) => void): ListenerData[] { + return this.allListeners.filter((listener) => { + if (listener.handler === handler) { + return listener; + } + }); + } +} diff --git a/src/components/modules/modificationsObserver.ts b/src/components/modules/modificationsObserver.ts index 6ce041dc..ccbfd28c 100644 --- a/src/components/modules/modificationsObserver.ts +++ b/src/components/modules/modificationsObserver.ts @@ -5,10 +5,8 @@ * and gives opportunity to handle outside */ -import IEditorConfig from '../interfaces/editor-config'; - -declare const Module: any; -declare const _: any; +import Module from '../__module'; +import _ from '../utils'; export default class ModificationsObserver extends Module { @@ -23,17 +21,9 @@ export default class ModificationsObserver extends Module { * @type {Function} */ private mutationDebouncer = _.debounce( () => { - this.config.onChange.call(); + this.config.onChange(); }, ModificationsObserver.DebounceTimer); - /** - * Constructor - * @param {IEditorConfig} config - */ - constructor({config}) { - super({config}); - } - /** * Clear timeout and set null to mutationDebouncer property */ diff --git a/src/components/modules/paste.ts b/src/components/modules/paste.ts index ff8869e4..d23c85da 100644 --- a/src/components/modules/paste.ts +++ b/src/components/modules/paste.ts @@ -1,76 +1,117 @@ -import IBlockToolData from '../interfaces/tools/block-tool'; -import IEditorConfig from '../interfaces/editor-config'; import CaretClass from './caret'; import SelectionUtils from '../selection'; -declare const Module: any; -declare const $: any; -declare const _: any; +import Module from '../__module'; +import $ from '../dom'; +import _ from '../utils'; +import {BlockToolData, PasteConfig} from '../../../types'; /** * Tag substitute object. - * - * @param {string} tool - name of related Tool - * @param {Function} handler - callback to handle pasted element */ -interface ITagSubstitute { +interface TagSubstitute { + /** + * Name of related Tool + * @type {string} + */ tool: string; - handler: (element: HTMLElement) => IBlockToolData; + + /** + * Callback to handle pasted element + * + * @param {HTMLElement} element + * @return {BlockToolData} + */ + handler: (element: HTMLElement) => BlockToolData; } /** * Pattern substitute object. - * - * @param {string} key - pattern`s key - * @param {RegExp} pattern - pasted pattern - * @param {Function} handler - callback to handle pasted pattern - * @param {string} tool - name of related Tool */ -interface IPatternSubstitute { +interface PatternSubstitute { + /** + * Pattern`s key + * @type {string} + */ key: string; + + /** + * Pattern regexp + * @type {RegExp} + */ pattern: RegExp; - handler: (text: string, key: string) => IBlockToolData; + + /** + * Callback to handle pasted pattern + * + * @param {string} text + * @param {string} key + * @return {BlockToolData} + */ + handler: (text: string, key: string) => BlockToolData; + + /** + * Name of related Tool + * @type {string} + */ tool: string; } /** * Files` types substitutions object. - * - * @param {string[]} extensions - array of extenstions Tool can handle - * @param {string[]} mimeTypes - array of MIME types Tool can handle - * @param {Function} handler - callback to handle pasted File */ -interface IFilesSubstitution { +interface FilesSubstitution { + /** + * Array of file extensions Tool can handle + * @type {string[]} + */ extensions: string[]; + + /** + * Array of MIME types Tool can handle + * @type {string[]} + */ mimeTypes: string[]; - handler: (file: File) => IBlockToolData; + + /** + * Callback to handle pasted File + * + * @param {File} file + * @return {BlockToolData} + */ + handler: (file: File) => BlockToolData; } /** * Processed paste data object. - * - * @param {string} tool - name of related Tool - * @param {HTMLElement} content - processed pasted content - * @param {boolean} isBlock - true if content should be inserted as new Block - * @param {Function} handler - callback that returns pasted data in IBlockToolData format */ -interface IPasteData { +interface PasteData { + /** + * Name of related Tool + * @type {string} + */ tool: string; - content: HTMLElement; - isBlock: boolean; - handler: (content: HTMLElement|string, patten?: RegExp) => IBlockToolData; -} -/** - * Tool onPaste configuration object - */ -interface IPasteConfig { - tags?: string[]; - handler?: (element: HTMLElement) => IBlockToolData; - patterns?: {[key: string]: RegExp}; - patternHandler?: (text: string, key: string) => IBlockToolData; - files?: {extensions?: string[], mimeTypes?: string[]}; - fileHandler?: (file: File) => IBlockToolData; + /** + * Pasted data. Processed and wrapped to HTML element + * @type {HTMLElement} + */ + content: HTMLElement; + + /** + * True if content should be inserted as new Block + * @type {boolean} + */ + isBlock: boolean; + + /** + * Callback that returns pasted data in BlockToolData format + * + * @param {HTMLElement | string} content + * @param {RegExp} patten + * @return {BlockToolData} + */ + handler: (content: HTMLElement|string, patten?: RegExp) => BlockToolData; } /** @@ -89,7 +130,7 @@ export default class Paste extends Module { /** * Tags` substitutions parameters */ - private toolsTags: {[tag: string]: ITagSubstitute} = {}; + private toolsTags: {[tag: string]: TagSubstitute} = {}; /** * Store tags to substitute by tool name @@ -97,21 +138,13 @@ export default class Paste extends Module { private tagsByTool: {[tools: string]: string[]} = {}; /** Patterns` substitutions parameters */ - private toolsPatterns: IPatternSubstitute[] = []; + private toolsPatterns: PatternSubstitute[] = []; /** Files` substitutions parameters */ private toolsFiles: { - [tool: string]: IFilesSubstitution, + [tool: string]: FilesSubstitution, } = {}; - /** - * @constructor - * @param {IEditorConfig} config - */ - constructor({config}) { - super({config}); - } - /** * Set onPaste callback and collect tools` paste configurations * @@ -126,6 +159,7 @@ export default class Paste extends Module { * Handle pasted or dropped data transfer object * * @param {DataTransfer} dataTransfer - pasted or dropped data transfer object + * @param {boolean} isDragNDrop */ public async processDataTransfer(dataTransfer: DataTransfer, isDragNDrop = false): Promise { const { Sanitizer } = this.Editor; @@ -208,9 +242,9 @@ export default class Paste extends Module { * Get tags to substitute by Tool * * @param {string} name - Tool name - * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration + * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration */ - private getTagsConfig(name: string, toolPasteConfig: IPasteConfig): void { + private getTagsConfig(name: string, toolPasteConfig: PasteConfig): void { if (this.config.initialBlock === name && !toolPasteConfig.handler) { _.log( `«${name}» Tool must provide a paste handler.`, @@ -256,9 +290,9 @@ export default class Paste extends Module { * Get files` types and extensions to substitute by Tool * * @param {string} name - Tool name - * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration + * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration */ - private getFilesConfig(name: string, toolPasteConfig: IPasteConfig): void { + private getFilesConfig(name: string, toolPasteConfig: PasteConfig): void { const {fileHandler, files = {}} = toolPasteConfig; let {extensions, mimeTypes} = files; @@ -304,9 +338,9 @@ export default class Paste extends Module { * Get RegExp patterns to substitute by Tool * * @param {string} name - Tool name - * @param {IPasteConfig} toolPasteConfig - Tool onPaste configuration + * @param {PasteConfig} toolPasteConfig - Tool onPaste configuration */ - private getPatternsConfig(name: string, toolPasteConfig: IPasteConfig): void { + private getPatternsConfig(name: string, toolPasteConfig: PasteConfig): void { if (!toolPasteConfig.patternHandler || _.isEmpty(toolPasteConfig.patterns)) { return; } @@ -351,7 +385,7 @@ export default class Paste extends Module { return true; } - const block = BlockManager.getBlock(element); + const block = BlockManager.getBlock(element as HTMLElement); return !block; } @@ -362,10 +396,6 @@ export default class Paste extends Module { * @param {ClipboardEvent} event */ private handlePasteEvent = async (event: ClipboardEvent): Promise => { - const { - Editor: {Sanitizer, BlockManager, Tools, Caret}, - } = this; - /** If target is native input or is not Block, use browser behaviour */ if ( this.isNativeBehaviour(event.target) && !event.clipboardData.types.includes('Files') @@ -385,7 +415,7 @@ export default class Paste extends Module { private async processFiles(items: DataTransferItemList) { const {BlockManager} = this.Editor; - let dataToInsert: Array<{type: string, data: IBlockToolData}>; + let dataToInsert: Array<{type: string, data: BlockToolData}>; dataToInsert = await Promise.all( Array @@ -483,9 +513,9 @@ export default class Paste extends Module { * Split HTML string to blocks and return it as array of Block data * * @param {string} innerHTML - * @returns {IPasteData[]} + * @returns {PasteData[]} */ - private processHTML(innerHTML: string): IPasteData[] { + private processHTML(innerHTML: string): PasteData[] { const {Tools, Sanitizer} = this.Editor, initialTool = this.config.initialBlock, wrapper = $.make('DIV'); @@ -536,9 +566,9 @@ export default class Paste extends Module { * Split plain text by new line symbols and return it as array of Block data * * @param {string} plain - * @returns {IPasteData[]} + * @returns {PasteData[]} */ - private processPlain(plain: string): IPasteData[] { + private processPlain(plain: string): PasteData[] { const {initialBlock} = this.config as {initialBlock: string}, {Tools} = this.Editor; @@ -567,9 +597,9 @@ export default class Paste extends Module { * 2. Insert new block if it is not the same type as current one * 3. Just insert text if there is no substitutions * - * @param {IPasteData} dataToInsert + * @param {PasteData} dataToInsert */ - private async processSingleBlock(dataToInsert: IPasteData): Promise { + private async processSingleBlock(dataToInsert: PasteData): Promise { const initialTool = this.config.initialBlock, {BlockManager, Caret, Sanitizer} = this.Editor, {content, tool} = dataToInsert; @@ -607,9 +637,9 @@ export default class Paste extends Module { * Get patterns` matches * * @param {string} text - * @returns Promise<{data: IBlockToolData, tool: string}> + * @returns Promise<{data: BlockToolData, tool: string}> */ - private async processPattern(text: string): Promise<{data: IBlockToolData, tool: string}> { + private async processPattern(text: string): Promise<{data: BlockToolData, tool: string}> { const pattern = this.toolsPatterns.find((substitute) => { const execResult = substitute.pattern.exec(text); @@ -630,11 +660,11 @@ export default class Paste extends Module { /** * - * @param {IPasteData} data + * @param {PasteData} data * @param {Boolean} canReplaceCurrentBlock - if true and is current Block is empty, will replace current Block * @returns {Promise} */ - private async insertBlock(data: IPasteData, canReplaceCurrentBlock: boolean = false): Promise { + private async insertBlock(data: PasteData, canReplaceCurrentBlock: boolean = false): Promise { const blockData = await data.handler(data.content), {BlockManager, Caret} = this.Editor, {currentBlock} = BlockManager; @@ -644,9 +674,9 @@ export default class Paste extends Module { return; } - const Block = BlockManager.insert(data.tool, blockData); + const block = BlockManager.insert(data.tool, blockData); - Caret.setToBlock(Block); + Caret.setToBlock(block); } /** diff --git a/src/components/modules/renderer.js b/src/components/modules/renderer.ts similarity index 72% rename from src/components/modules/renderer.js rename to src/components/modules/renderer.ts index 81f7a809..6ef26e82 100644 --- a/src/components/modules/renderer.js +++ b/src/components/modules/renderer.ts @@ -1,3 +1,7 @@ +import Module from '../__module'; +import _, {ChainData} from '../utils'; +import {BlockToolData} from '../../../types'; + /** * Codex Editor Renderer Module * @@ -7,14 +11,6 @@ * @version 2.0.0 */ export default class Renderer extends Module { - /** - * @constructor - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - } - /** * @typedef {Object} RendererBlocks * @property {String} type - tool name @@ -45,16 +41,10 @@ export default class Renderer extends Module { * Make plugin blocks from array of plugin`s data * @param {RendererBlocks[]} blocks */ - render(blocks) { - let chainData = []; + public render(blocks: BlockToolData[]): Promise { + const chainData = blocks.map((block) => ({function: () => this.insertBlock(block)})); - for (let i = 0; i < blocks.length; i++) { - chainData.push({ - function: () => this.insertBlock(blocks[i]) - }); - } - - return _.sequence(chainData); + return _.sequence(chainData as ChainData[]); } /** @@ -63,20 +53,20 @@ export default class Renderer extends Module { * Insert block to working zone * * @param {Object} item - * @returns {Promise.} + * @returns {Promise} * @private */ - insertBlock(item) { - let tool = item.type, - data = item.data, - settings = item.settings; + public async insertBlock(item): Promise { + const tool = item.type; + const data = item.data; + const settings = item.settings; if (tool in this.Editor.Tools.available) { try { this.Editor.BlockManager.insert(tool, data, settings); } catch (error) { _.log(`Block «${tool}» skipped because of plugins error`, 'warn', data); - Promise.reject(error); + throw Error(error); } } else { /** @@ -86,7 +76,5 @@ export default class Renderer extends Module { */ _.log(`Tool «${tool}» is not found. Check 'tools' property at your initial CodeX Editor config.`, 'warn'); } - - return Promise.resolve(); } } diff --git a/src/components/modules/sanitizer.ts b/src/components/modules/sanitizer.ts index 8e5feaf2..1cca914a 100644 --- a/src/components/modules/sanitizer.ts +++ b/src/components/modules/sanitizer.ts @@ -16,7 +16,8 @@ * {@link SanitizerConfig} */ -import ISanitizerConfig from '../interfaces/sanitizer-config'; +import Module from '../__module'; +import _ from '../utils'; /** * @typedef {Object} SanitizerConfig @@ -34,46 +35,30 @@ import ISanitizerConfig from '../interfaces/sanitizer-config'; * } */ -declare const Module: any; -declare const _: any; - import HTMLJanitor from 'html-janitor'; -import IBlockToolData from '../interfaces/tools/block-tool-data'; -import IInlineTool from '../interfaces/tools/inline-tool'; +import {BlockToolData, InlineToolConstructable, SanitizerConfig} from '../../../types'; export default class Sanitizer extends Module { /** * Memoize tools config */ - private configCache: {[toolName: string]: ISanitizerConfig} = {}; + private configCache: {[toolName: string]: SanitizerConfig} = {}; /** * Cached inline tools config */ - private inlineToolsConfigCache: ISanitizerConfig | null = null; - - /** - * Initializes Sanitizer module - * Sets default configuration if custom not exists - * - * @property {HTMLJanitor} this._sanitizerInstance - Sanitizer library - * - * @param {IEditorConfig} config - */ - constructor({config}) { - super({config}); - } + private inlineToolsConfigCache: SanitizerConfig | null = null; /** * Sanitize Blocks * * Enumerate blocks and clean data * - * @param {{tool, data: IBlockToolData}[]} blocksData[] + * @param {{tool, data: BlockToolData}[]} blocksData[] */ public sanitizeBlocks( - blocksData: Array<{tool: string, data: IBlockToolData}>, - ): Array<{tool: string, data: IBlockToolData}> { + blocksData: Array<{tool: string, data: BlockToolData}>, + ): Array<{tool: string, data: BlockToolData}> { return blocksData.map((block) => { const toolConfig = this.composeToolConfig(block.tool); @@ -91,10 +76,10 @@ export default class Sanitizer extends Module { /** * Method recursively reduces Block's data and cleans with passed rules * - * @param {IBlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string - * @param {ISanitizerConfig} rules - object with sanitizer rules + * @param {BlockToolData|object|*} dataToSanitize - taint string or object/array that contains taint string + * @param {SanitizerConfig} rules - object with sanitizer rules */ - public deepSanitize(dataToSanitize: any, rules: ISanitizerConfig): any { + public deepSanitize(dataToSanitize: any, rules: SanitizerConfig): any { /** * BlockData It may contain 3 types: * - Array @@ -133,7 +118,7 @@ export default class Sanitizer extends Module { * * @return {string} clean HTML */ - public clean(taintString: string, customConfig: ISanitizerConfig = {}): string { + public clean(taintString: string, customConfig: SanitizerConfig = {} as SanitizerConfig): string { const sanitizerConfig = { tags: customConfig, @@ -150,10 +135,10 @@ export default class Sanitizer extends Module { * Merge with inline tool config * * @param {string} toolName - * @param {ISanitizerConfig} toolRules - * @return {ISanitizerConfig} + * @param {SanitizerConfig} toolRules + * @return {SanitizerConfig} */ - public composeToolConfig(toolName: string): ISanitizerConfig { + public composeToolConfig(toolName: string): SanitizerConfig { /** * If cache is empty, then compose tool config and put it to the cache object */ @@ -174,7 +159,7 @@ export default class Sanitizer extends Module { const toolRules = toolClass.sanitize; - const toolConfig = {}; + const toolConfig = {} as SanitizerConfig; for (const fieldName in toolRules) { if (toolRules.hasOwnProperty(fieldName)) { const rule = toolRules[fieldName]; @@ -195,13 +180,13 @@ export default class Sanitizer extends Module { * When Tool's "inlineToolbar" value is True, get all sanitizer rules from all tools, * otherwise get only enabled */ - public getInlineToolsConfig(name: string): ISanitizerConfig { + public getInlineToolsConfig(name: string): SanitizerConfig { const {Tools} = this.Editor; const toolsConfig = Tools.getToolSettings(name), enableInlineTools = toolsConfig.inlineToolbar || []; - let config = {}; + let config = {} as SanitizerConfig; if (typeof enableInlineTools === 'boolean' && enableInlineTools) { /** @@ -212,8 +197,11 @@ export default class Sanitizer extends Module { /** * getting only enabled */ - enableInlineTools.map( (inlineToolName) => { - config = Object.assign(config, Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG]); + (enableInlineTools as string[]).map( (inlineToolName) => { + config = Object.assign( + config, + Tools.inline[inlineToolName][Tools.apiSettings.SANITIZE_CONFIG], + ) as SanitizerConfig; }); } @@ -223,19 +211,19 @@ export default class Sanitizer extends Module { /** * Return general config for all inline tools */ - public getAllInlineToolsConfig(): ISanitizerConfig { + public getAllInlineToolsConfig(): SanitizerConfig { const {Tools} = this.Editor; if (this.inlineToolsConfigCache) { return this.inlineToolsConfigCache; } - const config: ISanitizerConfig = {}; + const config: SanitizerConfig = {} as SanitizerConfig; Object.entries(Tools.inline) - .forEach( ([name, inlineTool]: [string, IInlineTool]) => { - Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]); - }); + .forEach( ([name, inlineTool]: [string, InlineToolConstructable]) => { + Object.assign(config, inlineTool[Tools.apiSettings.SANITIZE_CONFIG]); + }); this.inlineToolsConfigCache = config; @@ -247,7 +235,7 @@ export default class Sanitizer extends Module { * @param {array} array - [1, 2, {}, []] * @param {object} ruleForItem */ - private cleanArray(array: any[], ruleForItem: ISanitizerConfig): any[] { + private cleanArray(array: any[], ruleForItem: SanitizerConfig): any[] { return array.map( (arrayItem) => this.deepSanitize(arrayItem, ruleForItem)); } @@ -257,7 +245,7 @@ export default class Sanitizer extends Module { * @param {object} rules - { b: true } or true|false * @return {object} */ - private cleanObject(object: any, rules: ISanitizerConfig|{[field: string]: ISanitizerConfig}): any { + private cleanObject(object: any, rules: SanitizerConfig|{[field: string]: SanitizerConfig}): any { const cleanData = {}; for (const fieldName in object) { @@ -272,23 +260,23 @@ export default class Sanitizer extends Module { * - if it is a HTML Janitor rule, call with this rule * - otherwise, call with parent's config */ - const ruleForItem = this.isRule(rules[fieldName] as ISanitizerConfig) ? rules[fieldName] : rules; + const ruleForItem = this.isRule(rules[fieldName] as SanitizerConfig) ? rules[fieldName] : rules; - cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as ISanitizerConfig); + cleanData[fieldName] = this.deepSanitize(currentIterationItem, ruleForItem as SanitizerConfig); } return cleanData; } /** * @param {string} taintString - * @param {ISanitizerConfig|boolean} rule + * @param {SanitizerConfig|boolean} rule * @return {string} */ - private cleanOneItem(taintString: string, rule: ISanitizerConfig|boolean): string { + private cleanOneItem(taintString: string, rule: SanitizerConfig|boolean): string { if (typeof rule === 'object') { return this.clean(taintString, rule); } else if (rule === false) { - return this.clean(taintString, {}); + return this.clean(taintString, {} as SanitizerConfig); } else { return taintString; } @@ -300,7 +288,7 @@ export default class Sanitizer extends Module { * undefined, null, 0, 1, 2 — not a rules * @param config */ - private isRule(config: ISanitizerConfig): boolean { + private isRule(config: SanitizerConfig): boolean { return typeof config === 'object' || typeof config === 'boolean' || typeof config === 'function'; } @@ -313,7 +301,7 @@ export default class Sanitizer extends Module { * * @param {SanitizerConfig} config - sanitizer extension */ - private createHTMLJanitorInstance(config: {tags: ISanitizerConfig}): any { + private createHTMLJanitorInstance(config: {tags: SanitizerConfig}): HTMLJanitor|null { if (config) { return new HTMLJanitor(config); } diff --git a/src/components/modules/saver.ts b/src/components/modules/saver.ts index e4ee5922..2b899525 100644 --- a/src/components/modules/saver.ts +++ b/src/components/modules/saver.ts @@ -5,18 +5,10 @@ * @author Codex Team * @version 2.0.0 */ +import Module from '../__module'; +import {OutputData} from '../../../types'; -/** - * @typedef {Object} SavedData - * @property {Date} time - saving proccess time - * @property {Object} blocks - extracted data - * @property {String} version - CodexEditor version - */ -interface SavedData { - time: number; - blocks: object[]; - version: string; -} +declare const VERSION: string; /** * @classdesc This method reduces all Blocks asyncronically and calls Block's save method to extract data @@ -25,48 +17,31 @@ interface SavedData { * @property {Element} html - Editor HTML content * @property {String} json - Editor JSON output */ - -declare const Module: any; -declare const VERSION: string; - export default class Saver extends Module { - /** - * @constructor - * @param config - */ - constructor({config}) { - super({config}); - - this.output = null; - this.blocksData = []; - } - /** * Composes new chain of Promises to fire them alternatelly - * @return {SavedData} + * @return {OutputData} */ - public save(): Promise { - const blocks = this.Editor.BlockManager.blocks, + public async save(): Promise { + const blocks = this.Editor.BlockManager.blocks, chainData = []; blocks.forEach((block) => { chainData.push(block.data); }); - return Promise.all(chainData) - .then((extractedData) => this.Editor.Sanitizer.sanitizeBlocks(extractedData)) - .then((allExtractedData) => this.makeOutput(allExtractedData)) - .then((outputData) => { - return outputData; - }); + const extractedData = await Promise.all(chainData); + + const sanitizedData = await this.Editor.Sanitizer.sanitizeBlocks(extractedData); + return this.makeOutput(sanitizedData); } /** * Creates output object with saved data, time and version of editor * @param {Object} allExtractedData - * @return {SavedData} + * @return {OutputData} */ - private makeOutput(allExtractedData): SavedData { + private makeOutput(allExtractedData): OutputData { let totalTime = 0; const blocks = []; @@ -87,8 +62,8 @@ export default class Saver extends Module { return { time: +new Date(), - version: VERSION, blocks, + version: VERSION, }; } } diff --git a/src/components/modules/shortcuts.ts b/src/components/modules/shortcuts.ts index abbc74ac..566c7edb 100644 --- a/src/components/modules/shortcuts.ts +++ b/src/components/modules/shortcuts.ts @@ -1,12 +1,29 @@ - import Shortcut from '@codexteam/shortcuts'; -import {IShortcut, IShortcuts} from '../interfaces/shortcuts'; -import IEditorConfig from '../interfaces/editor-config'; + +/** + * ShortcutData interface + * Each shortcut must have name and handler + * `name` is a shortcut, like 'CMD+K', 'CMD+B' etc + * `handler` is a callback + */ +export interface ShortcutData { + + /** + * Shortcut name + * Ex. CMD+I, CMD+B .... + */ + name: string; + + /** + * Shortcut handler + */ + handler(event): void; +} /** * Contains keyboard and mouse events binded on each Block by Block Manager */ -declare var Module: any; +import Module from '../__module'; /** * @class Shortcut @@ -14,27 +31,18 @@ declare var Module: any; * * Internal Shortcuts Module */ -export default class Shortcuts extends Module implements IShortcuts { +export default class Shortcuts extends Module { /** * All registered shortcuts - * @type {IShortcut[]} + * @type {Shortcut[]} */ - private registeredShortcuts: IShortcut[]; - - /** - * @constructor - * @param {IEditorConfig} config - */ - constructor({config}) { - super({config}); - this.registeredShortcuts = []; - } + private registeredShortcuts: Shortcut[] = []; /** * Register shortcut - * @param {IShortcut} shortcut + * @param {ShortcutData} shortcut */ - public add(shortcut: IShortcut): void { + public add(shortcut: ShortcutData): void { const { UI } = this.Editor; const newShortcut = new Shortcut({ @@ -48,9 +56,12 @@ export default class Shortcuts extends Module implements IShortcuts { /** * Remove shortcut - * @param {IShortcut} shortcut + * @param {ShortcutData} shortcut */ public remove(shortcut: string): void { - // Remove + const index = this.registeredShortcuts.findIndex((shc) => shc.name === shortcut); + + this.registeredShortcuts[index].remove(); + this.registeredShortcuts.splice(index, 1); } } diff --git a/src/components/modules/toolbar-blockSettings.js b/src/components/modules/toolbar/blockSettings.ts similarity index 83% rename from src/components/modules/toolbar-blockSettings.js rename to src/components/modules/toolbar/blockSettings.ts index e57163d8..4fd3bfb5 100644 --- a/src/components/modules/toolbar-blockSettings.js +++ b/src/components/modules/toolbar/blockSettings.ts @@ -1,3 +1,6 @@ +import Module from '../../__module'; +import $ from '../../dom'; + /** * Block Settings * @@ -10,24 +13,12 @@ * |________________________| */ export default class BlockSettings extends Module { - /** - * @constructor - */ - constructor({config}) { - super({config}); - - this.nodes = { - wrapper: null, - toolSettings: null, - defaultSettings: null - }; - } /** * Module Events * @return {{opened: string, closed: string}} */ - get events() { + public get events(): {opened: string, closed: string} { return { opened: 'block-settings-opened', closed: 'block-settings-closed', @@ -38,7 +29,7 @@ export default class BlockSettings extends Module { * Block Settings CSS * @return {{wrapper, wrapperOpened, toolSettings, defaultSettings, button}} */ - static get CSS() { + private static get CSS() { return { // Settings Panel wrapper: 'ce-settings', @@ -46,10 +37,27 @@ export default class BlockSettings extends Module { toolSettings: 'ce-settings__plugin-zone', defaultSettings: 'ce-settings__default-zone', - button: 'ce-settings__button' + button: 'ce-settings__button', }; } + /** + * Is Block Settings opened or not + * @returns {boolean} + */ + public get opened(): boolean { + return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened); + } + + /** + * Block settings UI HTML elements + */ + public nodes: {[key: string]: HTMLElement} = { + wrapper: null, + toolSettings: null, + defaultSettings: null, + }; + /** * Panel with block settings with 2 sections: * - Tool's Settings @@ -57,7 +65,7 @@ export default class BlockSettings extends Module { * * @return {Element} */ - make() { + public make(): void { this.nodes.wrapper = $.make('div', BlockSettings.CSS.wrapper); this.nodes.toolSettings = $.make('div', BlockSettings.CSS.toolSettings); @@ -66,34 +74,10 @@ export default class BlockSettings extends Module { $.append(this.nodes.wrapper, [this.nodes.toolSettings, this.nodes.defaultSettings]); } - /** - * Add Tool's settings - */ - addToolSettings() { - if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') { - $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings()); - } - } - - /** - * Add default settings - */ - addDefaultSettings() { - $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes()); - } - - /** - * Is Block Settings opened or not - * @returns {boolean} - */ - get opened() { - return this.nodes.wrapper.classList.contains(BlockSettings.CSS.wrapperOpened); - } - /** * Open Block Settings pane */ - open() { + public open(): void { this.nodes.wrapper.classList.add(BlockSettings.CSS.wrapperOpened); /** @@ -113,7 +97,7 @@ export default class BlockSettings extends Module { /** * Close Block Settings pane */ - close() { + public close(): void { this.nodes.wrapper.classList.remove(BlockSettings.CSS.wrapperOpened); /** Clear settings */ @@ -123,4 +107,20 @@ export default class BlockSettings extends Module { /** Tell to subscribers that block settings is closed */ this.Editor.Events.emit(this.events.closed); } + + /** + * Add Tool's settings + */ + private addToolSettings(): void { + if (typeof this.Editor.BlockManager.currentBlock.tool.renderSettings === 'function') { + $.append(this.nodes.toolSettings, this.Editor.BlockManager.currentBlock.tool.renderSettings()); + } + } + + /** + * Add default settings + */ + private addDefaultSettings(): void { + $.append(this.nodes.defaultSettings, this.Editor.BlockManager.currentBlock.renderTunes()); + } } diff --git a/src/components/modules/toolbar.js b/src/components/modules/toolbar/index.ts similarity index 87% rename from src/components/modules/toolbar.js rename to src/components/modules/toolbar/index.ts index 96560c8e..89091393 100644 --- a/src/components/modules/toolbar.js +++ b/src/components/modules/toolbar/index.ts @@ -1,3 +1,6 @@ +import Module from '../../__module'; +import $ from '../../dom'; + /** * * «Toolbar» is the node that moves up/down over current block @@ -51,31 +54,26 @@ */ export default class Toolbar extends Module { /** - * @constructor + * HTML Elements used for Toolbar UI */ - constructor({config}) { - super({config}); + public nodes: {[key: string]: HTMLElement} = { + wrapper : null, + content : null, + actions : null, - this.nodes = { - wrapper : null, - content : null, - actions : null, + // Content Zone + plusButton : null, - // Content Zone - plusButton : null, - - // Actions Zone - blockActionsButtons: null, - settingsToggler : null, - }; - } + // Actions Zone + blockActionsButtons: null, + settingsToggler : null, + }; /** * CSS styles * @return {Object} - * @constructor */ - static get CSS() { + private static get CSS() { return { toolbar: 'ce-toolbar', content: 'ce-toolbar__content', @@ -96,18 +94,17 @@ export default class Toolbar extends Module { /** * Makes toolbar */ - make() { + public make(): void { this.nodes.wrapper = $.make('div', Toolbar.CSS.toolbar); /** * Make Content Zone and Actions Zone */ - ['content', 'actions'].forEach( el => { + ['content', 'actions'].forEach( (el) => { this.nodes[el] = $.make('div', Toolbar.CSS[el]); $.append(this.nodes.wrapper, this.nodes[el]); }); - /** * Fill Content Zone: * - Plus Button @@ -116,8 +113,7 @@ export default class Toolbar extends Module { this.nodes.plusButton = $.make('div', Toolbar.CSS.plusButton); $.append(this.nodes.plusButton, $.svg('plus', 14, 14)); $.append(this.nodes.content, this.nodes.plusButton); - this.nodes.plusButton.addEventListener('click', event => this.plusButtonClicked(event), false); - + this.Editor.Listeners.on(this.nodes.plusButton, 'click', () => this.plusButtonClicked(), false); /** * Make a Toolbox @@ -159,14 +155,14 @@ export default class Toolbar extends Module { * Move Toolbar to the Current Block * @param {Boolean} forceClose - force close Toolbar Settings and Toolbar */ - move(forceClose = true) { + public move(forceClose: boolean = true): void { if (forceClose) { /** Close Toolbox when we move toolbar */ this.Editor.Toolbox.close(); this.Editor.BlockSettings.close(); } - let currentBlock = this.Editor.BlockManager.currentBlock.holder; + const currentBlock = this.Editor.BlockManager.currentBlock.holder; /** * If no one Block selected as a Current @@ -192,7 +188,7 @@ export default class Toolbar extends Module { /** * Open Toolbar with Plus Button */ - open() { + public open(): void { /** * Wait Block rendering for correct height computing */ @@ -206,14 +202,14 @@ export default class Toolbar extends Module { * returns toolbar opened state * @return {Boolean} */ - get opened() { + public get opened(): boolean { return this.nodes.wrapper.classList.contains(Toolbar.CSS.toolbarOpened); } /** * Close the Toolbar */ - close() { + public close(): void { this.nodes.wrapper.classList.remove(Toolbar.CSS.toolbarOpened); /** Close components */ @@ -225,7 +221,7 @@ export default class Toolbar extends Module { * Plus Button public methods * @return {{hide: function(): void, show: function(): void}} */ - get plusButton() { + public get plusButton(): {hide: () => void, show: () => void} { return { hide: () => this.nodes.plusButton.classList.add(Toolbar.CSS.plusButtonHidden), show: () => { @@ -233,7 +229,7 @@ export default class Toolbar extends Module { return; } this.nodes.plusButton.classList.remove(Toolbar.CSS.plusButtonHidden); - } + }, }; } @@ -241,7 +237,7 @@ export default class Toolbar extends Module { * Handler for Plus Button * @param {MouseEvent} event */ - plusButtonClicked() { + private plusButtonClicked(): void { this.Editor.Toolbox.toggle(); } @@ -249,19 +245,17 @@ export default class Toolbar extends Module { * Bind events on the Toolbar Elements: * - Block Settings */ - bindEvents() { + private bindEvents(): void { /** * Settings toggler */ - this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', (event) => { - this.settingsTogglerClicked(event); - }); + this.Editor.Listeners.on(this.nodes.settingsToggler, 'click', () => this.settingsTogglerClicked()); } /** * Clicks on the Block Settings toggler */ - settingsTogglerClicked() { + private settingsTogglerClicked(): void { if (this.Editor.BlockSettings.opened) { this.Editor.BlockSettings.close(); } else { diff --git a/src/components/modules/toolbar-inline.ts b/src/components/modules/toolbar/inline.ts similarity index 84% rename from src/components/modules/toolbar-inline.ts rename to src/components/modules/toolbar/inline.ts index aa4fecd3..0e6d2f3f 100644 --- a/src/components/modules/toolbar-inline.ts +++ b/src/components/modules/toolbar/inline.ts @@ -1,12 +1,12 @@ -import ITool from '../interfaces/tools/tool'; +import Module from '../../__module'; +import $ from '../../dom'; -declare var Module: any; -declare var $: any; - -import EditorConfig from '../interfaces/editor-config'; -import InlineTool from '../interfaces/tools/inline-tool'; -import SelectionUtils from '../selection'; -import _ from '../utils'; +import BoldInlineTool from '../../inline-tools/inline-tool-bold'; +import ItalicInlineTool from '../../inline-tools/inline-tool-italic'; +import LinkInlineTool from '../../inline-tools/inline-tool-link'; +import SelectionUtils from '../../selection'; +import _ from '../../utils'; +import {InlineTool, InlineToolConstructable, ToolConstructable, ToolSettings} from '../../../../types'; /** * Inline toolbar with actions that modifies selected text fragment @@ -17,6 +17,34 @@ import _ from '../utils'; */ export default class InlineToolbar extends Module { + /** + * Returns internal inline tools + * Includes Bold, Italic, Link + */ + private get internalTools(): {[name: string]: InlineTool} { + return { + bold: this.Editor.Tools.constructInline(BoldInlineTool), + italic: this.Editor.Tools.constructInline(ItalicInlineTool), + link: this.Editor.Tools.constructInline(LinkInlineTool), + }; + } + + /** + * Get external tools + * Tools that has isInline is true + */ + private get externalTools(): {[name: string]: InlineTool} { + const result = {}; + + for (const tool in this.Editor.Tools.inline) { + if (this.Editor.Tools.inline.hasOwnProperty(tool)) { + result[tool] = this.Editor.Tools.constructInline(this.Editor.Tools.inline[tool]); + } + } + + return result; + } + /** * CSS styles */ @@ -32,7 +60,7 @@ export default class InlineToolbar extends Module { /** * Inline Toolbar elements */ - private nodes = { + private nodes: {wrapper: HTMLElement, buttons: HTMLElement, actions: HTMLElement} = { wrapper: null, buttons: null, /** @@ -52,14 +80,6 @@ export default class InlineToolbar extends Module { */ private toolsInstances: Map; - /** - * @constructor - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - } - /** * Inline Toolbar Tools * @@ -152,10 +172,22 @@ export default class InlineToolbar extends Module { this.nodes.wrapper.style.top = Math.floor(newCoords.y) + 'px'; } + /** + * Hides Inline Toolbar + */ + public close(): void { + this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed); + this.tools.forEach( (toolInstance, toolName) => { + if (typeof toolInstance.clear === 'function') { + toolInstance.clear(); + } + }); + } + /** * Shows Inline Toolbar */ - private open() { + private open(): void { /** * Filter inline-tools and show only allowed by Block's Tool */ @@ -169,19 +201,7 @@ export default class InlineToolbar extends Module { /** * Call 'clear' method for Inline Tools (for example, 'link' want to clear input) */ - this.tools.forEach( (toolInstance, toolName) => { - if (typeof toolInstance.clear === 'function') { - toolInstance.clear(); - } - }); - } - - /** - * Hides Inline Toolbar - */ - private close() { - this.nodes.wrapper.classList.remove(this.CSS.inlineToolbarShowed); - this.tools.forEach( (toolInstance, toolName) => { + this.tools.forEach( (toolInstance: InlineTool) => { if (typeof toolInstance.clear === 'function') { toolInstance.clear(); } @@ -217,7 +237,7 @@ export default class InlineToolbar extends Module { } // is enabled by current Block's Tool - const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode); + const currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement); if (!currentBlock) { return false; @@ -233,7 +253,7 @@ export default class InlineToolbar extends Module { */ private filterTools(): void { const currentSelection = SelectionUtils.get(), - currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode); + currentBlock = this.Editor.BlockManager.getBlock(currentSelection.anchorNode as HTMLElement); const toolSettings = this.Editor.Tools.getToolSettings(currentBlock.name), inlineToolbarSettings = toolSettings && toolSettings[this.Editor.Tools.apiSettings.IS_ENABLED_INLINE_TOOLBAR]; @@ -328,8 +348,14 @@ export default class InlineToolbar extends Module { */ const internalTools: string[] = Object .entries(Tools.internalTools) - .filter(([name, toolClass]: [string, ITool]) => toolClass[Tools.apiSettings.IS_INLINE]) - .map(([name, toolClass]: [string, ITool]) => name); + .filter(([name, toolClass]: [string, ToolConstructable|ToolSettings]) => { + if (_.isFunction(toolClass)) { + return toolClass[Tools.apiSettings.IS_INLINE]; + } + + return (toolClass as ToolSettings).class[Tools.apiSettings.IS_INLINE]; + }) + .map(([name, toolClass]: [string, InlineToolConstructable|ToolSettings]) => name); /** * 1) For internal tools, check public getter 'shortcut' @@ -349,7 +375,7 @@ export default class InlineToolbar extends Module { /** * Enable Tool shortcut with Editor Shortcuts Module * @param {InlineTool} tool - Tool instance - * @param {string} shortcut - shortcut according to the Shortcut Module format + * @param {string} shortcut - shortcut according to the ShortcutData Module format */ private enableShortcuts(tool: InlineTool, shortcut: string): void { this.Editor.Shortcuts.add({ @@ -398,7 +424,7 @@ export default class InlineToolbar extends Module { * Check Tools` state by selection */ private checkToolsState(): void { - this.tools.forEach( (toolInstance, toolName) => { + this.tools.forEach( (toolInstance) => { toolInstance.checkState(SelectionUtils.get()); }); } diff --git a/src/components/modules/toolbar-toolbox.js b/src/components/modules/toolbar/toolbox.ts similarity index 71% rename from src/components/modules/toolbar-toolbox.js rename to src/components/modules/toolbar/toolbox.ts index 8834ffe9..aaaede62 100644 --- a/src/components/modules/toolbar-toolbox.js +++ b/src/components/modules/toolbar/toolbox.ts @@ -1,4 +1,7 @@ -import IEditorConfig from '../interfaces/editor-config'; +import Module from '../../__module'; +import $ from '../../dom'; +import _ from '../../utils'; +import {BlockToolConstructable} from '../../../../types'; /** * @class Toolbox @@ -11,37 +14,41 @@ import IEditorConfig from '../interfaces/editor-config'; * */ export default class Toolbox extends Module { + + private static LEAF_DIRECTIONS = { + RIGHT: 'right', + LEFT: 'left', + }; + /** - * @constructor - * @param {IEditorConfig} config + * Opening state + * @type {boolean} */ - constructor({config}) { - super({config}); + public opened: boolean = false; - this.nodes = { - toolbox: null, - buttons: [] - }; + /** + * HTMLElements used for Toolbox UI + */ + public nodes: { + toolbox: HTMLElement, + buttons: HTMLElement[], + } = { + toolbox: null, + buttons: [], + }; - /** - * Opening state - * @type {boolean} - */ - this.opened = false; + /** + * Active button index + * -1 equals no chosen Tool + * @type {number} + */ + private activeButtonIndex: number = -1; - /** - * Active button index - * -1 equals no chosen Tool - * @type {number} - */ - this.activeButtonIndex = -1; - - /** - * How many tools displayed in Toolbox - * @type {number} - */ - this.displayedToolsCount = 0; - } + /** + * How many tools displayed in Toolbox + * @type {number} + */ + private displayedToolsCount: number = 0; /** * CSS styles @@ -59,21 +66,157 @@ export default class Toolbox extends Module { /** * Makes the Toolbox */ - make() { + public make(): void { this.nodes.toolbox = $.make('div', Toolbox.CSS.toolbox); $.append(this.Editor.Toolbar.nodes.content, this.nodes.toolbox); this.addTools(); } + /** + * Toolbox Tool's button click handler + * + * @param {MouseEvent|KeyboardEvent} event + * @param {string} toolName + */ + public toolButtonActivate(event: MouseEvent|KeyboardEvent, toolName: string): void { + const tool = this.Editor.Tools.toolsClasses[toolName] as BlockToolConstructable; + + this.insertNewBlock(tool, toolName); + } + + /** + * Open Toolbox with Tools + */ + public open(): void { + if (this.isEmpty) { + return; + } + + this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened); + this.opened = true; + } + + /** + * Close Toolbox + */ + public close(): void { + this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened); + this.opened = false; + + /** remove active item pointer */ + this.activeButtonIndex = -1; + const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`); + + if (activeButton) { + activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive); + } + } + + /** + * Close Toolbox + */ + public toggle(): void { + if (!this.opened) { + this.open(); + } else { + this.close(); + } + } + + /** + * Leaf + * flip through the toolbox items + * @param {String} direction - leaf direction, right is default + */ + public leaf(direction: string = Toolbox.LEAF_DIRECTIONS.RIGHT): void { + const childNodes = this.nodes.toolbox.childNodes; + + /** + * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox + */ + if (this.activeButtonIndex === -1) { + /** + * Normalize "previous" Tool index depending on direction. + * We need to do this to highlight "first" Tool correctly + * + * Order of Tools: [0] [1] ... [n - 1] + * [0 = n] because of: n % n = 0 % n + * + * Direction 'right': for [0] the [n - 1] is a previous index + * [n - 1] -> [0] + * + * Direction 'left': for [n - 1] the [0] is a previous index + * [n - 1] <- [0] + * + * @type {number} + */ + this.activeButtonIndex = direction === Toolbox.LEAF_DIRECTIONS.RIGHT ? -1 : 0; + } else { + /** + * If we have chosen Tool then remove highlighting + */ + (childNodes[this.activeButtonIndex] as HTMLElement).classList.remove(Toolbox.CSS.toolboxButtonActive); + } + + /** + * Count index for next Tool + */ + if (direction === Toolbox.LEAF_DIRECTIONS.RIGHT) { + /** + * If we go right then choose next (+1) Tool + * @type {number} + */ + this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length; + } else { + /** + * If we go left then choose previous (-1) Tool + * Before counting module we need to add length before because of "The JavaScript Modulo Bug" + * @type {number} + */ + this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length; + } + + /** + * Highlight new chosen Tool + */ + (childNodes[this.activeButtonIndex] as HTMLElement).classList.add(Toolbox.CSS.toolboxButtonActive); + } + + /** + * get tool name when it is selected + * In case when nothing selection returns null + * + * @return {String|null} + */ + public get getActiveTool(): string { + const childNodes = this.nodes.toolbox.childNodes; + + if (this.activeButtonIndex === -1) { + return null; + } + + return (childNodes[this.activeButtonIndex] as HTMLElement).title; + } + + /** + * Returns True if Toolbox is Empty and nothing to show + * @return {boolean} + */ + public get isEmpty(): boolean { + return this.displayedToolsCount === 0; + } + /** * Iterates available tools and appends them to the Toolbox */ - addTools() { - let tools = this.Editor.Tools.toolsAvailable; + private addTools(): void { + const tools = this.Editor.Tools.available; - for (let toolName in tools) { - this.addTool(toolName, tools[toolName]); + for (const toolName in tools) { + if (tools.hasOwnProperty(toolName)) { + this.addTool(toolName, tools[toolName] as BlockToolConstructable); + } } } @@ -81,9 +224,9 @@ export default class Toolbox extends Module { * Append Tool to the Toolbox * * @param {string} toolName - tool name - * @param {IBlockTool} tool - tool class + * @param {BlockToolConstructable} tool - tool class */ - addTool(toolName, tool) { + private addTool(toolName: string, tool: BlockToolConstructable): void { const api = this.Editor.Tools.apiSettings; if (tool[api.IS_DISPLAYED_IN_TOOLBOX] && !tool[api.TOOLBAR_ICON]) { @@ -106,8 +249,8 @@ export default class Toolbox extends Module { return; } - let button = $.make('li', [ Toolbox.CSS.toolboxButton ], { - title: toolName + const button = $.make('li', [ Toolbox.CSS.toolboxButton ], { + title: toolName, }); button.innerHTML = tool.toolboxIcon; @@ -120,7 +263,7 @@ export default class Toolbox extends Module { /** * Add click listener */ - this.Editor.Listeners.on(button, 'click', (event) => { + this.Editor.Listeners.on(button, 'click', (event: KeyboardEvent|MouseEvent) => { this.toolButtonActivate(event, toolName); }); @@ -139,28 +282,28 @@ export default class Toolbox extends Module { /** * Enable shortcut Block Tool implemented shortcut - * @param {IBlockTool} tool - Tool class + * @param {BlockToolConstructable} tool - Tool class * @param {String} toolName - Tool name - * @param {String} shortcut - shortcut according to the Shortcut Module format + * @param {String} shortcut - shortcut according to the ShortcutData Module format */ - enableShortcut(tool, toolName, shortcut) { + private enableShortcut(tool: BlockToolConstructable, toolName: string, shortcut: string) { this.Editor.Shortcuts.add({ name: shortcut, - handler: (event) => { + handler: (event: KeyboardEvent) => { event.preventDefault(); this.insertNewBlock(tool, toolName); - } + }, }); } /** * Inserts new block - * Can be called when button clicked on Toolbox or by Shortcut + * Can be called when button clicked on Toolbox or by ShortcutData * - * @param {IBlockTool} tool - Tool Class + * @param {BlockToolConstructable} tool - Tool Class * @param {String} toolName - Tool name */ - insertNewBlock(tool, toolName) { + private insertNewBlock(tool: BlockToolConstructable, toolName: string) { /** * @type {Block} */ @@ -192,138 +335,4 @@ export default class Toolbox extends Module { */ this.Editor.Toolbar.close(); } - - /** - * Toolbox Tool's button click handler - * - * @param {MouseEvent|KeyboardEvent} event - * @param {string} toolName - */ - toolButtonActivate(event, toolName) { - const tool = this.Editor.Tools.toolsClasses[toolName]; - - this.insertNewBlock(tool, toolName); - } - - /** - * Open Toolbox with Tools - */ - open() { - if (this.isEmpty) { - return; - } - - this.nodes.toolbox.classList.add(Toolbox.CSS.toolboxOpened); - this.opened = true; - } - - /** - * Close Toolbox - */ - close() { - this.nodes.toolbox.classList.remove(Toolbox.CSS.toolboxOpened); - this.opened = false; - - /** remove active item pointer */ - this.activeButtonIndex = -1; - const activeButton = this.nodes.toolbox.querySelector(`.${Toolbox.CSS.toolboxButtonActive}`); - - if (activeButton) { - activeButton.classList.remove(Toolbox.CSS.toolboxButtonActive); - } - } - - /** - * Close Toolbox - */ - toggle() { - if (!this.opened) { - this.open(); - } else { - this.close(); - } - } - - /** - * Leaf - * flip through the toolbox items - * @param {String} direction - leaf direction, right is default - */ - leaf(direction = 'right') { - const childNodes = this.nodes.toolbox.childNodes; - - /** - * If activeButtonIndex === -1 then we have no chosen Tool in Toolbox - */ - if (this.activeButtonIndex === -1) { - /** - * Normalize "previous" Tool index depending on direction. - * We need to do this to highlight "first" Tool correctly - * - * Order of Tools: [0] [1] ... [n - 1] - * [0 = n] because of: n % n = 0 % n - * - * Direction 'right': for [0] the [n - 1] is a previous index - * [n - 1] -> [0] - * - * Direction 'left': for [n - 1] the [0] is a previous index - * [n - 1] <- [0] - * - * @type {number} - */ - this.activeButtonIndex = direction === 'right' ? -1 : 0; - } else { - /** - * If we have chosen Tool then remove highlighting - */ - childNodes[this.activeButtonIndex].classList.remove(Toolbox.CSS.toolboxButtonActive); - } - - /** - * Count index for next Tool - */ - if (direction === 'right') { - /** - * If we go right then choose next (+1) Tool - * @type {number} - */ - this.activeButtonIndex = (this.activeButtonIndex + 1) % childNodes.length; - } else { - /** - * If we go left then choose previous (-1) Tool - * Before counting module we need to add length before because of "The JavaScript Modulo Bug" - * @type {number} - */ - this.activeButtonIndex = (childNodes.length + this.activeButtonIndex - 1) % childNodes.length; - } - - /** - * Highlight new chosen Tool - */ - childNodes[this.activeButtonIndex].classList.add(Toolbox.CSS.toolboxButtonActive); - } - - /** - * get tool name when it is selected - * In case when nothing selection returns null - * - * @return {String|null} - */ - get getActiveTool() { - const childNodes = this.nodes.toolbox.childNodes; - - if (this.activeButtonIndex === -1) { - return null; - } - - return childNodes[this.activeButtonIndex].title; - } - - /** - * Returns True if Toolbox is Empty and nothing to show - * @return {boolean} - */ - get isEmpty() { - return this.displayedToolsCount === 0; - } } diff --git a/src/components/modules/tools.js b/src/components/modules/tools.ts similarity index 66% rename from src/components/modules/tools.js rename to src/components/modules/tools.ts index d787109b..70eb6afa 100644 --- a/src/components/modules/tools.js +++ b/src/components/modules/tools.ts @@ -1,9 +1,11 @@ +import Paragraph from '../tools/paragraph/dist/bundle'; +import Module from '../__module'; +import _ from '../utils'; +import {BlockToolConstructable, ToolConfig, ToolConstructable, ToolSettings} from '../../../types'; import BoldInlineTool from '../inline-tools/inline-tool-bold'; import ItalicInlineTool from '../inline-tools/inline-tool-italic'; import LinkInlineTool from '../inline-tools/inline-tool-link'; -const Paragraph = require('../tools/paragraph/dist/bundle'); - /** * @module Codex Editor Tools Submodule * @@ -17,7 +19,8 @@ const Paragraph = require('../tools/paragraph/dist/bundle'); * @property {String} iconClassname - this a icon in toolbar * @property {Boolean} displayInToolbox - will be displayed in toolbox. Default value is TRUE * @property {Boolean} enableLineBreaks - inserts new block or break lines. Default value is FALSE - * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, all pass an array with specified Tools list | + * @property {Boolean|String[]} inlineToolbar - Pass `true` to enable the Inline Toolbar with all Tools, + * all pass an array with specified Tools list * @property render @todo add description * @property save @todo add description * @property settings @todo add description @@ -49,54 +52,12 @@ const Paragraph = require('../tools/paragraph/dist/bundle'); * @property {EditorConfig} config - Editor config */ export default class Tools extends Module { - /** - * @constructor - * - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - - /** - * Map {name: Class, ...} where: - * name — block type name in JSON. Got from EditorConfig.tools keys - * @type {Object} - */ - this.toolsClasses = {}; - - /** - * Tools settings in a map {name: settings, ...} - * @type {Object} - */ - this.toolsSettings = {}; - - /** - * Available tools list - * {name: Class, ...} - * @type {Object} - */ - this.toolsAvailable = {}; - - /** - * Tools that rejected a prepare method - * {name: Class, ... } - * @type {Object} - */ - this.toolsUnavailable = {}; - - /** - * Cache for the prepared inline tools - * @type {null|object} - * @private - */ - this._inlineTools = null; - } /** * Returns available Tools * @return {Tool[]} */ - get available() { + public get available(): {[name: string]: ToolConstructable} { return this.toolsAvailable; } @@ -104,7 +65,7 @@ export default class Tools extends Module { * Returns unavailable Tools * @return {Tool[]} */ - get unavailable() { + public get unavailable(): {[name: string]: ToolConstructable} { return this.toolsUnavailable; } @@ -112,7 +73,7 @@ export default class Tools extends Module { * Return Tools for the Inline Toolbar * @return {Object} - object of Inline Tool's classes */ - get inline() { + public get inline(): {[name: string]: ToolConstructable} { if (this._inlineTools) { return this._inlineTools; } @@ -126,10 +87,14 @@ export default class Tools extends Module { * Some Tools validation */ const inlineToolRequiredMethods = ['render', 'surround', 'checkState']; - const notImplementedMethods = inlineToolRequiredMethods.filter( method => !this.constructInline(tool)[method]); + const notImplementedMethods = inlineToolRequiredMethods.filter( (method) => !this.constructInline(tool)[method]); if (notImplementedMethods.length) { - _.log(`Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, 'warn', notImplementedMethods); + _.log( + `Incorrect Inline Tool: ${tool.name}. Some of required methods is not implemented %o`, + 'warn', + notImplementedMethods, + ); return false; } @@ -154,14 +119,10 @@ export default class Tools extends Module { /** * Return editor block tools */ - get blockTools() { + public get blockTools(): {[name: string]: BlockToolConstructable} { // eslint-disable-next-line no-unused-vars const tools = Object.entries(this.available).filter( ([name, tool]) => { - if (tool[this.apiSettings.IS_INLINE]) { - return false; - } - - return true; + return !tool[this.apiSettings.IS_INLINE]; }); /** @@ -178,7 +139,7 @@ export default class Tools extends Module { * Constant for available Tools Settings * @return {object} */ - get apiSettings() { + public get apiSettings() { return { CONFIG: 'config', IS_CONTENTLESS: 'contentless', @@ -190,28 +151,87 @@ export default class Tools extends Module { IS_PASTE_DISALLOWED: 'disallowPaste', SHORTCUT: 'shortcut', TOOLBAR_ICON: 'toolboxIcon', - SANITIZE_CONFIG: 'sanitize' + SANITIZE_CONFIG: 'sanitize', }; } + /** + * Map {name: Class, ...} where: + * name — block type name in JSON. Got from EditorConfig.tools keys + * @type {Object} + */ + public readonly toolsClasses: {[name: string]: ToolConstructable} = {}; + + /** + * Tools` classes available to use + */ + private readonly toolsAvailable: {[name: string]: ToolConstructable} = {}; + + /** + * Tools` classes not availbale to use beacause of preparation failure + */ + private readonly toolsUnavailable: {[name: string]: ToolConstructable} = {}; + + /** + * Tools settings in a map {name: settings, ...} + * @type {Object} + */ + private readonly toolsSettings: {[name: string]: ToolSettings} = {}; + + /** + * Cache for the prepared inline tools + * @type {null|object} + * @private + */ + private _inlineTools: {[name: string]: ToolConstructable} = {}; + + /** + * @constructor + * + * @param {EditorConfig} config + */ + constructor({config}) { + super({config}); + + this.toolsClasses = {}; + + this.toolsSettings = {}; + + /** + * Available tools list + * {name: Class, ...} + * @type {Object} + */ + this.toolsAvailable = {}; + + /** + * Tools that rejected a prepare method + * {name: Class, ... } + * @type {Object} + */ + this.toolsUnavailable = {}; + + this._inlineTools = null; + } + /** * Creates instances via passed or default configuration * @return {Promise} */ - prepare() { + public prepare() { /** * Assign internal tools */ Object.assign(this.config.tools, this.internalTools); if (!this.config.hasOwnProperty('tools') || Object.keys(this.config.tools).length === 0) { - return Promise.reject('Can\'t start without tools'); + throw Error('Can\'t start without tools'); } /** * Save Tools settings to a map */ - for(let toolName in this.config.tools) { + for (const toolName in this.config.tools) { /** * If Tool is an object not a Tool's class then * save class and settings separately @@ -219,15 +239,15 @@ export default class Tools extends Module { if (typeof this.config.tools[toolName] === 'object') { /** * Save Tool's class from 'class' field - * @type {ITool} + * @type {Tool} */ - this.toolsClasses[toolName] = this.config.tools[toolName].class; + this.toolsClasses[toolName] = (this.config.tools[toolName] as ToolSettings).class; /** * Save Tool's settings - * @type {IToolSettings} + * @type {ToolSettings} */ - this.toolsSettings[toolName] = this.config.tools[toolName]; + this.toolsSettings[toolName] = this.config.tools[toolName] as ToolSettings; /** * Remove Tool's class from settings @@ -236,22 +256,22 @@ export default class Tools extends Module { } else { /** * Save Tool's class - * @type {ITool} + * @type {Tool} */ - this.toolsClasses[toolName] = this.config.tools[toolName]; + this.toolsClasses[toolName] = this.config.tools[toolName] as ToolConstructable; /** * Set empty settings for Block by default * @type {{}} */ - this.toolsSettings[toolName] = {}; + this.toolsSettings[toolName] = {class: this.config.tools[toolName] as ToolConstructable}; } } /** * getting classes that has prepare method */ - let sequenceData = this.getListOfPrepareFunctions(); + const sequenceData = this.getListOfPrepareFunctions(); /** * if sequence data contains nothing then resolve current chain and run other module prepare @@ -263,53 +283,24 @@ export default class Tools extends Module { /** * to see how it works {@link Util#sequence} */ - return _.sequence(sequenceData, (data) => { + return _.sequence(sequenceData, (data: any) => { this.success(data); }, (data) => { this.fallback(data); }); } - /** - * Binds prepare function of plugins with user or default config - * @return {Array} list of functions that needs to be fired sequentially - */ - getListOfPrepareFunctions() { - let toolPreparationList = []; - - for(let toolName in this.toolsClasses) { - let toolClass = this.toolsClasses[toolName]; - - if (typeof toolClass.prepare === 'function') { - toolPreparationList.push({ - function : toolClass.prepare, - data : { - toolName, - config: this.toolsSettings[toolName][this.apiSettings.CONFIG] - } - }); - } else { - /** - * If Tool hasn't a prepare method, mark it as available - */ - this.toolsAvailable[toolName] = toolClass; - } - } - - return toolPreparationList; - } - /** * @param {ChainData.data} data - append tool to available list */ - success(data) { + public success(data) { this.toolsAvailable[data.toolName] = this.toolsClasses[data.toolName]; } /** * @param {ChainData.data} data - append tool to unavailable list */ - fallback(data) { + public fallback(data) { this.toolsUnavailable[data.toolName] = this.toolsClasses[data.toolName]; } @@ -317,10 +308,10 @@ export default class Tools extends Module { * Return Tool`s instance * * @param {String} tool — tool name - * @param {IBlockToolData} data — initial data - * @return {IBlockTool} + * @param {BlockToolData} data — initial data + * @return {BlockTool} */ - construct(tool, data) { + public construct(tool, data) { const plugin = this.toolsClasses[tool]; /** @@ -329,12 +320,12 @@ export default class Tools extends Module { const config = this.toolsSettings[tool][this.apiSettings.CONFIG]; /** - * @type {{api: IAPI, config: ({}), data: IBlockToolData}} + * @type {{api: API, config: ({}), data: BlockToolData}} */ const constructorOptions = { api: this.Editor.API.methods, config: config || {}, - data: data + data, }; return new plugin(constructorOptions); @@ -343,15 +334,15 @@ export default class Tools extends Module { /** * Return Inline Tool's instance * - * @param {IInlineTool} tool - * @return {IInlineTool} — instance + * @param {InlineTool} tool + * @return {InlineTool} — instance */ - constructInline(tool) { + public constructInline(tool) { /** - * @type {{api: IAPI}} + * @type {{api: API}} */ const constructorOptions = { - api: this.Editor.API.methods + api: this.Editor.API.methods, }; return new tool(constructorOptions); @@ -362,19 +353,56 @@ export default class Tools extends Module { * @param {Tool} tool - Tool to check * @return {Boolean} */ - isInitial(tool) { + public isInitial(tool) { return tool instanceof this.available[this.config.initialBlock]; } /** * Return Tool's config by name * @param {string} toolName - * @return {IToolSettings} + * @return {ToolSettings} */ - getToolSettings(toolName) { + public getToolSettings(toolName) { return this.toolsSettings[toolName]; } + /** + * Binds prepare function of plugins with user or default config + * @return {Array} list of functions that needs to be fired sequentially + */ + private getListOfPrepareFunctions(): Array<{ + function: (data: {toolName: string, config: ToolConfig}) => void, + data: {toolName: string, config: ToolConfig}, + }> { + const toolPreparationList: Array<{ + function: (data: {toolName: string, config: ToolConfig}) => void, + data: {toolName: string, config: ToolConfig}} + > = []; + + for (const toolName in this.toolsClasses) { + if (this.toolsClasses.hasOwnProperty(toolName)) { + const toolClass = this.toolsClasses[toolName]; + + if (typeof toolClass.prepare === 'function') { + toolPreparationList.push({ + function: toolClass.prepare, + data: { + toolName, + config: this.toolsSettings[toolName][this.apiSettings.CONFIG], + }, + }); + } else { + /** + * If Tool hasn't a prepare method, mark it as available + */ + this.toolsAvailable[toolName] = toolClass; + } + } + } + + return toolPreparationList; + } + /** * Returns internal tools * Includes Bold, Italic, Link and Paragraph @@ -386,8 +414,8 @@ export default class Tools extends Module { link: LinkInlineTool, paragraph: { class: Paragraph, - inlineToolbar: true - } + inlineToolbar: true, + }, }; } } diff --git a/src/components/modules/ui.js b/src/components/modules/ui.ts similarity index 74% rename from src/components/modules/ui.js rename to src/components/modules/ui.ts index 1257ae8a..204a1b15 100644 --- a/src/components/modules/ui.js +++ b/src/components/modules/ui.ts @@ -1,15 +1,19 @@ -/** - * Module UI - * - * @type {UI} - */ - /** * Prebuilded sprite of SVG icons */ import sprite from '../../../build/sprite.svg'; +/** + * Module UI + * + * @type {UI} + */ +import Module from '../__module'; +import $ from '../dom'; +import _ from '../utils'; + import Selection from '../selection'; +import {ModuleConfig} from '../../types-internal/module-config'; /** * @class @@ -30,25 +34,31 @@ import Selection from '../selection'; * @property {Element} nodes.redactor - */ export default class UI extends Module { - /** - * @constructor - * - * @param {EditorConfig} config - */ - constructor({config}) { - super({config}); - this.nodes = { - holder: null, - wrapper: null, - redactor: null + /** + * CodeX Editor UI CSS class names + * @return {{editorWrapper: string, editorZone: string}} + */ + private get CSS(): {editorWrapper: string, editorZone: string} { + return { + editorWrapper : 'codex-editor', + editorZone : 'codex-editor__redactor', }; } + /** + * HTML Elements used for UI + */ + public nodes: {[key: string]: HTMLElement} = { + holder: null, + wrapper: null, + redactor: null, + }; + /** * Making main interface */ - async prepare() { + public async prepare(): Promise { await this.make(); /** @@ -78,21 +88,17 @@ export default class UI extends Module { } /** - * CodeX Editor UI CSS class names - * @return {{editorWrapper: string, editorZone: string, block: string}} + * Clean editor`s UI */ - get CSS() { - return { - editorWrapper : 'codex-editor', - editorZone : 'codex-editor__redactor', - }; + public destroy(): void { + this.nodes.holder.innerHTML = ''; } /** - * Makes CodeX Editor interface - * @return {Promise} - */ - async make() { + * Makes CodeX Editor interface + * @return {Promise} + */ + private async make(): Promise { /** * Element where we need to append CodeX Editor * @type {Element} @@ -100,7 +106,7 @@ export default class UI extends Module { this.nodes.holder = document.getElementById(this.config.holderId); if (!this.nodes.holder) { - throw Error("Holder wasn't found by ID: #" + this.config.holderId); + throw Error('Holder wasn\'t found by ID: #' + this.config.holderId); } /** @@ -116,17 +122,17 @@ export default class UI extends Module { /** * Appends CSS */ - loadStyles() { + private loadStyles(): void { /** * Load CSS */ - let styles = require('../../styles/main.css'); + const styles = require('../../styles/main.css'); /** * Make tag */ - let tag = $.make('style', null, { - textContent: styles.toString() + const tag = $.make('style', null, { + textContent: styles.toString(), }); /** @@ -138,17 +144,22 @@ export default class UI extends Module { /** * Bind events on the CodeX Editor interface */ - bindEvents() { - this.Editor.Listeners.on(this.nodes.redactor, 'click', event => this.redactorClicked(event), false ); - this.Editor.Listeners.on(document, 'keydown', event => this.documentKeydown(event), true ); - this.Editor.Listeners.on(document, 'click', event => this.documentClicked(event), false ); + private bindEvents(): void { + this.Editor.Listeners.on( + this.nodes.redactor, + 'click', + (event) => this.redactorClicked(event as MouseEvent), + false, + ); + this.Editor.Listeners.on(document, 'keydown', (event) => this.documentKeydown(event as KeyboardEvent), true ); + this.Editor.Listeners.on(document, 'click', (event) => this.documentClicked(event as MouseEvent), false ); } /** * All keydowns on document * @param {Event} event */ - documentKeydown(event) { + private documentKeydown(event: KeyboardEvent): void { switch (event.keyCode) { case _.keyCodes.ENTER: this.enterPressed(event); @@ -163,8 +174,8 @@ export default class UI extends Module { * Ignore all other document's keydown events * @param {KeyboardEvent} event */ - defaultBehaviour(event) { - const keyDownOnEditor = event.target.closest(`.${this.CSS.editorWrapper}`); + private defaultBehaviour(event: KeyboardEvent): void { + const keyDownOnEditor = (event.target as HTMLElement).closest(`.${this.CSS.editorWrapper}`); /** * Ignore keydowns on document @@ -187,8 +198,8 @@ export default class UI extends Module { * Enter pressed on document * @param event */ - enterPressed(event) { - let hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0; + private enterPressed(event: KeyboardEvent): void { + const hasPointerToBlock = this.Editor.BlockManager.currentBlockIndex >= 0; /** * If Caret is not set anywhere, event target on Enter is always Element that we handle @@ -197,7 +208,7 @@ export default class UI extends Module { * So, BlockManager points some Block and Enter press is on Body * We can create a new block */ - if (hasPointerToBlock && event.target.tagName === 'BODY') { + if (hasPointerToBlock && (event.target as HTMLElement).tagName === 'BODY') { /** * Insert initial typed Block */ @@ -224,13 +235,14 @@ export default class UI extends Module { * All clicks on document * @param {MouseEvent} event - Click */ - documentClicked(event) { + private documentClicked(event: MouseEvent): void { /** * Close Inline Toolbar when nothing selected * Do not fire check on clicks at the Inline Toolbar buttons */ - const clickedOnInlineToolbarButton = event.target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`); - const clickedInsideofEditor = event.target.closest(`.${this.CSS.editorWrapper}`); + const target = event.target as HTMLElement; + const clickedOnInlineToolbarButton = target.closest(`.${this.Editor.InlineToolbar.CSS.inlineToolbar}`); + const clickedInsideofEditor = target.closest(`.${this.CSS.editorWrapper}`); /** Clear highlightings and pointer on BlockManager */ if (!clickedInsideofEditor && !Selection.isAtEditor) { @@ -274,8 +286,8 @@ export default class UI extends Module { * @see selectClickedBlock * */ - redactorClicked(event) { - const clickedNode = event.target; + private redactorClicked(event: MouseEvent): void { + const clickedNode = event.target as HTMLElement; /** * Select clicked Block as Current @@ -319,7 +331,7 @@ export default class UI extends Module { * - Block is an initial-block (Text) * - Block is empty */ - let isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool), + const isInitialBlock = this.Editor.Tools.isInitial(this.Editor.BlockManager.currentBlock.tool), isEmptyBlock = this.Editor.BlockManager.currentBlock.isEmpty; if (isInitialBlock && isEmptyBlock) { @@ -333,8 +345,8 @@ export default class UI extends Module { /** * Append prebuilded sprite with SVG icons */ - appendSVGSprite() { - let spriteHolder = $.make('div'); + private appendSVGSprite(): void { + const spriteHolder = $.make('div'); spriteHolder.hidden = true; spriteHolder.style.display = 'none'; @@ -342,11 +354,4 @@ export default class UI extends Module { $.append(this.nodes.wrapper, spriteHolder); } - - /** - * Clean editor`s UI - */ - destroy() { - this.nodes.holder.innerHTML = ''; - } } diff --git a/src/components/polyfills.ts b/src/components/polyfills.ts index 9fc6c560..cd4fd30c 100644 --- a/src/components/polyfills.ts +++ b/src/components/polyfills.ts @@ -9,6 +9,7 @@ interface Element { oMatchesSelector: (selector: string) => boolean; prepend: (nodes: Node|Node[]|any) => void; + append: (nodes: Node|Node[]|DocumentFragment|void) => void; } /** diff --git a/src/components/selection.ts b/src/components/selection.ts index 809c5535..e935cf8e 100644 --- a/src/components/selection.ts +++ b/src/components/selection.ts @@ -29,14 +29,13 @@ interface Document { /** * Working with selection - * @typedef {Selection} Selection + * @typedef {SelectionUtils} SelectionUtils */ export default class SelectionUtils { /** * Editor styles * @return {{editorWrapper: string, editorZone: string}} - * @constructor */ static get CSS(): {editorWrapper: string, editorZone: string} { return { diff --git a/src/components/utils.ts b/src/components/utils.ts index e031988a..dbfc8d89 100644 --- a/src/components/utils.ts +++ b/src/components/utils.ts @@ -9,8 +9,8 @@ import Dom from './dom'; * @property {Object} data - data that will be passed to the success or fallback * @property {Function} function - function's that must be called asynchronically */ -interface ChainData { - data: any; +export interface ChainData { + data?: any; function: (...args: any[]) => any; } @@ -51,7 +51,7 @@ export default class Util { * Returns basic keycodes as constants * @return {{}} */ - static get keyCodes(): object { + static get keyCodes() { return { BACKSPACE: 8, TAB: 9, @@ -79,7 +79,11 @@ export default class Util { * * @return {Promise} */ - public static async sequence(chains: ChainData[], success = () => {}, fallback = () => {}): Promise { + public static async sequence( + chains: ChainData[], + success: (data: any) => void = () => {}, + fallback: (data: any) => void = () => {}, + ): Promise { /** * Decorator * @@ -219,7 +223,7 @@ export default class Util { * @param {Boolean} immediate - call now * @return {Function} */ - public static debounce(func: () => void, wait: number , immediate: boolean): () => void { + public static debounce(func: () => void, wait?: number , immediate?: boolean): () => void { let timeout; return () => { diff --git a/src/types-internal/editor-modules.d.ts b/src/types-internal/editor-modules.d.ts new file mode 100644 index 00000000..bc157881 --- /dev/null +++ b/src/types-internal/editor-modules.d.ts @@ -0,0 +1,65 @@ +import UI from '../components/modules/ui'; +import BlockEvents from '../components/modules/blockEvents'; +import Listeners from '../components/modules/listeners'; +import Toolbar from '../components/modules/toolbar/index'; +import InlineToolbar from '../components/modules/toolbar/inline'; +import Toolbox from '../components/modules/toolbar/toolbox'; +import BlockSettings from '../components/modules/toolbar/blockSettings'; +import Events from '../components/modules/events'; +import Shortcuts from '../components/modules/shortcuts'; +import Paste from '../components/modules/paste'; +import Notifier from '../components/modules/notifier'; +import DragNDrop from '../components/modules/dragNDrop'; +import ModificationsObserver from '../components/modules/modificationsObserver'; +import Renderer from '../components/modules/renderer'; +import Sanitizer from '../components/modules/sanitizer'; +import Tools from '../components/modules/tools'; +import API from '../components/modules/api/index'; +import Caret from '../components/modules/caret'; +import BlockManager from '../components/modules/blockManager'; +import BlocksAPI from '../components/modules/api/blocks'; +import CaretAPI from '../components/modules/api/caret'; +import EventsAPI from '../components/modules/api/events'; +import ListenersAPI from '../components/modules/api/listeners'; +import SanitizerAPI from '../components/modules/api/sanitizer'; +import ToolbarAPI from '../components/modules/api/toolbar'; +import StylesAPI from '../components/modules/api/styles'; +import SelectionAPI from '../components/modules/api/selection'; +import NotifierAPI from '../components/modules/api/notifier'; +import SaverAPI from '../components/modules/api/saver'; +import Saver from '../components/modules/saver'; +import BlockSelection from '../components/modules/blockSelection'; + +export interface EditorModules { + UI: UI; + BlockEvents: BlockEvents; + BlockSelection: BlockSelection; + Listeners: Listeners; + Toolbar: Toolbar; + InlineToolbar: InlineToolbar; + Toolbox: Toolbox; + BlockSettings: BlockSettings; + Events: Events; + Shortcuts: Shortcuts; + Paste: Paste; + DragNDrop: DragNDrop; + ModificationsObserver: ModificationsObserver; + Renderer: Renderer; + Sanitizer: Sanitizer; + Tools: Tools; + API: API; + Caret: Caret; + Saver: Saver; + Notifier: Notifier; + BlockManager: BlockManager; + BlocksAPI: BlocksAPI; + CaretAPI: CaretAPI; + EventsAPI: EventsAPI; + ListenersAPI: ListenersAPI; + SanitizerAPI: SanitizerAPI; + SaverAPI: SaverAPI; + SelectionAPI: SelectionAPI; + StylesAPI: StylesAPI; + ToolbarAPI: ToolbarAPI; + NotifierAPI: NotifierAPI; +} diff --git a/src/types-internal/html-janitor.d.ts b/src/types-internal/html-janitor.d.ts new file mode 100644 index 00000000..6f9cc035 --- /dev/null +++ b/src/types-internal/html-janitor.d.ts @@ -0,0 +1,22 @@ +/** + * Declaration for external JS module + * After that we can use it at the TS modules + */ +declare module 'html-janitor' { + interface Config { + tags: { + [key: string]: boolean|{[attr: string]: boolean|string}|(() => any) + }; + } + + export class HTMLJanitor { + constructor(config: Config); + + public clean(taintString: string): string; + } + + /** + * Default export + */ + export default HTMLJanitor; +} diff --git a/src/types-internal/module-config.d.ts b/src/types-internal/module-config.d.ts new file mode 100644 index 00000000..f0e224c6 --- /dev/null +++ b/src/types-internal/module-config.d.ts @@ -0,0 +1,8 @@ +import {EditorConfig} from '../../types/index'; + +/** + * Describes object passed to Editor modules constructor + */ +export interface ModuleConfig { + config: EditorConfig; +} diff --git a/src/types-internal/svg.d.ts b/src/types-internal/svg.d.ts new file mode 100644 index 00000000..5b2ab770 --- /dev/null +++ b/src/types-internal/svg.d.ts @@ -0,0 +1,7 @@ +/** + * Allow to import .svg from components/modules/ui from TypeScript file + */ +declare module '*.svg' { + const content: string; + export default content; +} diff --git a/tslint.json b/tslint.json index 7833928e..603ebde7 100644 --- a/tslint.json +++ b/tslint.json @@ -1,5 +1,10 @@ { "extends": "tslint:recommended", + "linterOptions": { + "exclude": [ + "node_modules" + ] + }, "rules": { "indent": [true, "spaces", 2], "interface-name": false, @@ -12,6 +17,11 @@ "import-sources-order": "any", "named-imports-order": "case-insensitive" }], - "no-empty": false + "no-empty": false, + "no-namespace": false, + "variable-name": [true, "allow-leading-underscore", "allow-pascal-case"] + }, + "globals": { + "require": true } } diff --git a/types/api/blocks.d.ts b/types/api/blocks.d.ts new file mode 100644 index 00000000..dfab4365 --- /dev/null +++ b/types/api/blocks.d.ts @@ -0,0 +1,61 @@ +import {OutputData} from '../data-formats/output-data'; + +/** + * Describes methods to manipulate with Editor`s blocks + */ +export interface Blocks { + /** + * Remove all blocks from Editor zone + */ + clear(): void; + + /** + * Render passed data + * @param {OutputData} data + * @return {Promise} + */ + render(data: OutputData): Promise; + + /** + * Removes current Block + */ + delete(): void; + + /** + * Swaps two Blocks + * @param {number} fromIndex - block to swap + * @param {number} toIndex - block to swap with + */ + swap(fromIndex: number, toIndex: number): void; + + /** + * Returns Block holder by Block index + * @param {number} index + * @returns {HTMLElement} + */ + getBlockByIndex(index: number): HTMLElement; + + /** + * Returns current Block index + * @returns {number} + */ + getCurrentBlockIndex(): number; + + /** + * Mark Block as stretched + * @param {number} index - Block to mark + * @param {boolean} status - stretch status + */ + stretchBlock(index: number, status?: boolean): void; + + /** + * Returns Blocks count + * @return {number} + */ + getBlocksCount(): number; + + /** + * Insert new Initial Block after current Block + */ + insertNewBlock(): void; +} diff --git a/types/api/caret.d.ts b/types/api/caret.d.ts new file mode 100644 index 00000000..5f88cc57 --- /dev/null +++ b/types/api/caret.d.ts @@ -0,0 +1,6 @@ +/** + * Describes Editor`s caret API + * + * TODO + */ +export interface Caret {} diff --git a/types/api/events.d.ts b/types/api/events.d.ts new file mode 100644 index 00000000..a668b528 --- /dev/null +++ b/types/api/events.d.ts @@ -0,0 +1,28 @@ +/** + * Describes Editor`s events API + */ +export interface Events { + /** + * Emits event + * + * @param {string} eventName + * @param {any} data + */ + emit(eventName: string, data: any): void; + + /** + * Unsubscribe from event + * + * @param {string} eventName + * @param {(data: any) => void} callback + */ + off(eventName: string, callback: (data?: any) => void): void; + + /** + * Subscribe to event + * + * @param {string} eventName + * @param {(data: any) => void} callback + */ + on(eventName: string, callback: (data?: any) => void): void; +} diff --git a/types/api/index.d.ts b/types/api/index.d.ts new file mode 100644 index 00000000..661ed5b4 --- /dev/null +++ b/types/api/index.d.ts @@ -0,0 +1,10 @@ +export * from './blocks'; +export * from './events'; +export * from './listeners'; +export * from './sanitizer'; +export * from './saver'; +export * from './selection'; +export * from './styles'; +export * from './caret'; +export * from './toolbar'; +export * from './notifier'; diff --git a/types/api/listeners.d.ts b/types/api/listeners.d.ts new file mode 100644 index 00000000..a6c8d5e3 --- /dev/null +++ b/types/api/listeners.d.ts @@ -0,0 +1,24 @@ +/** + * Describes Editor`s listeners API + */ +export interface Listeners { + /** + * Subscribe to event dispatched on passed element + * + * @param {Element} element + * @param {string} eventType + * @param {(event: Event) => void}handler + * @param {boolean} useCapture + */ + on(element: Element, eventType: string, handler: (event?: Event) => void, useCapture?: boolean): void; + + /** + * Unsubscribe from event dispatched on passed element + * + * @param {Element} element + * @param {string} eventType + * @param {(event: Event) => void}handler + * @param {boolean} useCapture + */ + off(element: Element, eventType: string, handler: (event?: Event) => void, useCapture?: boolean): void; +} diff --git a/types/api/notifier.d.ts b/types/api/notifier.d.ts new file mode 100644 index 00000000..bd91f91d --- /dev/null +++ b/types/api/notifier.d.ts @@ -0,0 +1,14 @@ +import {ConfirmNotifierOptions, NotifierOptions, PromptNotifierOptions} from 'codex-notifier'; + +/** + * Notifier API + */ +export interface Notifier { + + /** + * Show web notification + * + * @param {NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions} + */ + show: (options: NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions) => void; +} diff --git a/types/api/sanitizer.d.ts b/types/api/sanitizer.d.ts new file mode 100644 index 00000000..0f4c7588 --- /dev/null +++ b/types/api/sanitizer.d.ts @@ -0,0 +1,14 @@ +import {SanitizerConfig} from '../index'; + +/** + * Describes Editor`s sanitizer API + */ +export interface Sanitizer { + /** + * Clean taint string with html and returns clean string + * + * @param {string} taintString + * @param {SanitizerConfig} config - configuration for sanitizer + */ + clean(taintString: string, config: SanitizerConfig): string; +} diff --git a/types/api/saver.d.ts b/types/api/saver.d.ts new file mode 100644 index 00000000..835682c2 --- /dev/null +++ b/types/api/saver.d.ts @@ -0,0 +1,13 @@ +import {OutputData} from '../data-formats/output-data'; + +/** + * Describes Editor`s saver API + */ +export interface Saver { + /** + * Saves Editors data and returns promise with it + * + * @returns {Promise} + */ + save(): Promise; +} diff --git a/types/api/selection.d.ts b/types/api/selection.d.ts new file mode 100644 index 00000000..ba7b2bd7 --- /dev/null +++ b/types/api/selection.d.ts @@ -0,0 +1,18 @@ +/** + * Describes methods for work with Selections + */ +export interface Selection { + /** + * Looks ahead from selection and find passed tag with class name + * @param {string} tagName - tag to find + * @param {string} className - tag's class name + * @return {HTMLElement|null} + */ + findParentTag(tagName: string, className?: string): HTMLElement|null; + + /** + * Expand selection to passed tag + * @param {HTMLElement} node - tag that should contain selection + */ + expandToTag(node: HTMLElement): void; +} diff --git a/types/api/styles.d.ts b/types/api/styles.d.ts new file mode 100644 index 00000000..e0ea960a --- /dev/null +++ b/types/api/styles.d.ts @@ -0,0 +1,44 @@ +/** + * Describes styles API + */ +export interface Styles { + /** + * Main Editor`s block styles + */ + block: string; + + /** + * Styles for Inline Toolbar button + */ + inlineToolButton: string; + + /** + * Styles for active Inline Toolbar button + */ + inlineToolButtonActive: string; + + /** + * Styles for inputs + */ + input: string; + + /** + * Loader styles + */ + loader: string; + + /** + * Styles for Settings box buttons + */ + settingsButton: string; + + /** + * Styles for active Settings box buttons + */ + settingsButtonActive: string; + + /** + * Styles for buttons + */ + button: string; +} diff --git a/types/api/toolbar.d.ts b/types/api/toolbar.d.ts new file mode 100644 index 00000000..91710890 --- /dev/null +++ b/types/api/toolbar.d.ts @@ -0,0 +1,14 @@ +/** + * Describes Toolbar API methods + */ +export interface Toolbar { + /** + * Closes Toolbar + */ + close(): void; + + /** + * Opens Toolbar + */ + open(): void; +} diff --git a/types/block-tunes/block-tune.d.ts b/types/block-tunes/block-tune.d.ts new file mode 100644 index 00000000..17618a9b --- /dev/null +++ b/types/block-tunes/block-tune.d.ts @@ -0,0 +1,20 @@ +import {API, ToolConfig} from '../index'; + +/** + * Describes BLockTune blueprint + */ +export interface BlockTune { + /** + * Returns block tune HTMLElement + * + * @return {HTMLElement} + */ + render(): HTMLElement; +} + +/** + * Describes BlockTune class constructor function + */ +export interface BlockTuneConstructable { + new (config: {api: API, settings?: ToolConfig}): BlockTune; +} diff --git a/types/block-tunes/index.d.ts b/types/block-tunes/index.d.ts new file mode 100644 index 00000000..e1f5908a --- /dev/null +++ b/types/block-tunes/index.d.ts @@ -0,0 +1 @@ +export * from './block-tune'; diff --git a/types/configs/editor-config.d.ts b/types/configs/editor-config.d.ts new file mode 100644 index 00000000..53967df7 --- /dev/null +++ b/types/configs/editor-config.d.ts @@ -0,0 +1,53 @@ +import {ToolConstructable, ToolSettings} from '../tools'; +import {OutputData} from '../index'; +import {SanitizerConfig} from './sanitizer-config'; + +export interface EditorConfig { + /** + * Element where Editor will be append + */ + holderId: string; + + /** + * This Tool will be used as default + * Name should be equal to one of Tool`s keys of passed tools + * If not specified, Paragraph Tool will be used + */ + initialBlock?: string; + + /** + * First Block placeholder + */ + placeholder?: string; + + /** + * Define default sanitizer configuration + * @see {@link sanitizer} + */ + sanitizer?: SanitizerConfig; + + /** + * If true, toolbar won't be shown + */ + hideToolbar?: boolean; + + /** + * Map of Tools to use + */ + tools?: {[toolName: string]: ToolConstructable|ToolSettings}; + + /** + * Data to render on Editor start + */ + data?: OutputData; + + /** + * Fires when Editor is ready to work + */ + onReady?(): void; + + /** + * Fires when something changed in DOM + */ + onChange?(): void; +} diff --git a/types/configs/index.d.ts b/types/configs/index.d.ts new file mode 100644 index 00000000..1ad63020 --- /dev/null +++ b/types/configs/index.d.ts @@ -0,0 +1,3 @@ +export * from './editor-config'; +export * from './sanitizer-config'; +export * from './paste-config'; diff --git a/types/configs/paste-config.d.ts b/types/configs/paste-config.d.ts new file mode 100644 index 00000000..197610bf --- /dev/null +++ b/types/configs/paste-config.d.ts @@ -0,0 +1,50 @@ +import {BlockToolData} from '../index'; + +/** + * Tool onPaste configuration object + */ +export interface PasteConfig { + /** + * Array of tags Tool can substitute + * @type string[] + */ + tags?: string[]; + + /** + * Handler to process pasted HTML tag + * + * @param {HTMLElement} element + * @return {BlockToolData} + */ + handler?: (element: HTMLElement) => BlockToolData; + + /** + * Object of string patterns Tool can substitute. + * Key is your internal key and value is RegExp + * + * @type {{[key: string]: Regexp}} + */ + patterns?: {[key: string]: RegExp}; + + /** + * Handler to process pasted patterns + * + * @param {string} text + * @param {string} key + * @return {BlockToolData} + */ + patternHandler?: (text: string, key: string) => BlockToolData; + + /** + * Object with arrays of extensions and MIME types Tool can substitute + */ + files?: {extensions?: string[], mimeTypes?: string[]}; + + /** + * Handler to process pasted files + * + * @param {File} file + * @return {BlockToolData} + */ + fileHandler?: (file: File) => BlockToolData; +} diff --git a/src/components/interfaces/sanitizer-config.ts b/types/configs/sanitizer-config.d.ts similarity index 95% rename from src/components/interfaces/sanitizer-config.ts rename to types/configs/sanitizer-config.d.ts index 5a657705..c3854d04 100644 --- a/src/components/interfaces/sanitizer-config.ts +++ b/types/configs/sanitizer-config.d.ts @@ -1,5 +1,4 @@ -export default interface ISanitizerConfig { - +export interface SanitizerConfig { /** * Tag name and params not to be stripped off * @see {@link https://github.com/guardian/html-janitor} diff --git a/types/data-formats/output-data.d.ts b/types/data-formats/output-data.d.ts new file mode 100644 index 00000000..2d9ffcca --- /dev/null +++ b/types/data-formats/output-data.d.ts @@ -0,0 +1,21 @@ +import {BlockToolData} from '../tools'; + +export interface OutputData { + /** + * Editor's version + */ + version?: string; + + /** + * Timestamp of saving in milliseconds + */ + time?: number; + + /** + * Saved Blocks + */ + blocks: Array<{ + type: string; + data: BlockToolData + }>; +} diff --git a/types/index.d.ts b/types/index.d.ts new file mode 100644 index 00000000..15a03e32 --- /dev/null +++ b/types/index.d.ts @@ -0,0 +1,69 @@ +/** + * For export type there should be one entry point, + * so we export all types from this file + * ------------------------------------ + */ + +import {EditorConfig} from './configs'; +import {Blocks, Caret, Events, Listeners, Notifier, Sanitizer, Saver, Selection, Styles, Toolbar} from './api'; + +/** + * Interfaces used for development + */ +export { + Tool, + ToolConstructable, + InlineTool, + InlineToolConstructable, + BlockToolConstructable, + BlockTool, + BlockToolData, + ToolSettings, + ToolConfig, +} from './tools'; +export {BlockTune, BlockTuneConstructable} from './block-tunes'; +export {EditorConfig, SanitizerConfig, PasteConfig} from './configs'; +export {OutputData} from './data-formats/output-data'; + +/** + * We have a namespace API {@link ./api/index.d.ts} (APIMethods) but we can not use it as interface + * So we should create new interface for exporting API type + */ +export interface API { + blocks: Blocks; + caret: Caret; + events: Events; + listeners: Listeners; + notifier: Notifier; + sanitizer: Sanitizer; + saver: Saver; + selection: Selection; + styles: Styles; + toolbar: Toolbar; +} + +/** + * Main Editor class + */ +declare class EditorJS { + public static version: string; + + public isReady: Promise; + + public blocks: Blocks; + public caret: Caret; + public events: Events; + public listeners: Listeners; + public sanitizer: Sanitizer; + public saver: Saver; + public selection: Selection; + public styles: Styles; + public toolbar: Toolbar; + + constructor(configuration?: EditorConfig|string); + + public destroy(): void; +} + +export as namespace EditorJS; +export default EditorJS; diff --git a/types/tools/block-tool-data.d.ts b/types/tools/block-tool-data.d.ts new file mode 100644 index 00000000..e1db12a3 --- /dev/null +++ b/types/tools/block-tool-data.d.ts @@ -0,0 +1,5 @@ +/** + * Object returned by Tool's {@link BlockTool#save} method + * Specified by Tool developer, so leave it as object + */ +export type BlockToolData = object; diff --git a/src/components/interfaces/tools/block-tool.ts b/types/tools/block-tool.d.ts similarity index 51% rename from src/components/interfaces/tools/block-tool.ts rename to types/tools/block-tool.d.ts index 4c1dee60..54905785 100644 --- a/src/components/interfaces/tools/block-tool.ts +++ b/types/tools/block-tool.d.ts @@ -1,12 +1,58 @@ -import IBlockToolData from './tool-settings'; -import ITool from './tool'; - +import {PasteConfig, SanitizerConfig} from '../configs'; +import {BlockToolData} from './block-tool-data'; +import {Tool, ToolConstructable} from './tool'; +import {ToolConfig} from './tool-config'; +import {API} from '../index'; /** * Describe Block Tool object * @see {@link docs/tools.md} */ -export default interface IBlockTool extends ITool { +export interface BlockTool extends Tool { + /** + * Sanitizer rules description + */ + sanitize?: SanitizerConfig; + /** + * @constructor + */ + constructor: BlockToolConstructable; + + /** + * Return Tool's main block-wrapper + * @return {HTMLElement} + */ + render(): HTMLElement; + + /** + * Process Tool's element in DOM and return raw data + * @param {HTMLElement} block - element created by {@link BlockTool#render} function + * @return {BlockToolData} + */ + save(block: HTMLElement): BlockToolData; + + /** + * Create Block's settings block + * @return {HTMLElement} + */ + renderSettings?(): HTMLElement; + + /** + * Validate Block's data + * @param {BlockToolData} blockData + * @return {boolean} + */ + validate?(blockData: BlockToolData): boolean; + + /** + * Method that specified how to merge two Blocks with same type. + * Called by backspace at the beginning of the Block + * @param {BlockToolData} blockData + */ + merge?(blockData: BlockToolData): void; +} + +export interface BlockToolConstructable extends ToolConstructable { /** * Pass `true` if Tool represents decorative empty Block */ @@ -28,40 +74,9 @@ export default interface IBlockTool extends ITool { toolboxIcon?: string; /** - * Sanitizer rules description + * Paste substitutions configuration */ - sanitizer?: object; + onPaste?: PasteConfig; - /** - * Return Tool's main block-wrapper - * @return {HTMLElement} - */ - render(): HTMLElement; - - /** - * Process Tool's element in DOM and return raw data - * @param {HTMLElement} block - element created by {@link IBlockTool#render} function - * @return {IBlockToolData} - */ - save(block: HTMLElement): IBlockToolData; - - /** - * Create Block's settings block - * @return {HTMLElement} - */ - renderSettings?(): HTMLElement; - - /** - * Validate Block's data - * @param {IBlockToolData} blockData - * @return {boolean} - */ - validate?(blockData: IBlockToolData): boolean; - - /** - * Method that specified how to merge two Blocks with same type. - * Called by backspace at the beginning of the Block - * @param {IBlockToolData} blockData - */ - merge?(blockData: IBlockToolData): void; + new (config: {api: API, config: ToolConfig, data: BlockToolData}): BlockTool; } diff --git a/types/tools/index.d.ts b/types/tools/index.d.ts new file mode 100644 index 00000000..c52fa0e6 --- /dev/null +++ b/types/tools/index.d.ts @@ -0,0 +1,6 @@ +export * from './block-tool'; +export * from './block-tool-data'; +export * from './inline-tool'; +export * from './tool'; +export * from './tool-config'; +export * from './tool-settings'; diff --git a/src/components/interfaces/tools/inline-tool.ts b/types/tools/inline-tool.d.ts similarity index 67% rename from src/components/interfaces/tools/inline-tool.ts rename to types/tools/inline-tool.d.ts index 34fc35b5..68cd7ba2 100644 --- a/src/components/interfaces/tools/inline-tool.ts +++ b/types/tools/inline-tool.d.ts @@ -1,25 +1,10 @@ +import {Tool, ToolConstructable} from './tool'; /** * Base structure for the Inline Toolbar Tool */ -import ITool from './tool'; -import ISanitizerConfig from '../sanitizer-config'; - -export default interface IInlineTool extends ITool { - /** - * Public getter with shortcut string - */ +export interface InlineTool extends Tool { shortcut?: string; - /** - * Inline tool sanitize configuration - */ - sanitize?: ISanitizerConfig; - - /** - * Returns button for the Inline Toolbar - */ - render(): HTMLElement; - /** * Method that accepts selected range and wrap it somehow * @param {Range} range - selection's range @@ -44,3 +29,5 @@ export default interface IInlineTool extends ITool { */ clear?(): void; } + +export interface InlineToolConstructable extends ToolConstructable {} diff --git a/types/tools/tool-config.d.ts b/types/tools/tool-config.d.ts new file mode 100644 index 00000000..9c97af59 --- /dev/null +++ b/types/tools/tool-config.d.ts @@ -0,0 +1,4 @@ +/** + * Tool configuration object. Specified by Tool developer, so leave it as object + */ +export type ToolConfig = object; diff --git a/src/components/interfaces/tools/tool-settings.ts b/types/tools/tool-settings.d.ts similarity index 57% rename from src/components/interfaces/tools/tool-settings.ts rename to types/tools/tool-settings.d.ts index 89a9ec13..e354966e 100644 --- a/src/components/interfaces/tools/tool-settings.ts +++ b/types/tools/tool-settings.d.ts @@ -1,25 +1,20 @@ -/** - * Object passed to the Tool's constructor by {@link IEditorConfig#tools} - */ -import ITool from './tool'; +import {ToolConfig} from './tool-config'; +import {ToolConstructable} from './tool'; -export default interface IToolSettings { +/** + * Object passed to the Tool's constructor by {@link EditorConfig#tools} + */ +export interface ToolSettings { /** * Tool's class */ - class: ITool; + class: ToolConstructable; /** * User configuration object that will be passed to the Tool's constructor */ - config?: object; - - /** - * Disable module {@link Paste} for this Tool - * @todo remove this option - */ - disallowPaste?: boolean; + config?: ToolConfig; /** * Is user available to add line brakes in Tool (for example by Shift+Enter) @@ -30,7 +25,7 @@ export default interface IToolSettings { * Is need to show Inline Toolbar. * Can accept array of Tools for InlineToolbar or boolean. */ - inlineToolbar?: boolean|string[]; + inlineToolbar?: boolean | string[]; /** * Define shortcut that will render Tool diff --git a/types/tools/tool.d.ts b/types/tools/tool.d.ts new file mode 100644 index 00000000..362e894b --- /dev/null +++ b/types/tools/tool.d.ts @@ -0,0 +1,43 @@ +import {API} from '../index'; +import {ToolConfig} from './tool-config'; +import {SanitizerConfig} from '../configs'; + +/** + * Abstract interface of all Tools + */ +export interface Tool { + /** + * Tool`s render method + * For inline Tools returns inline toolbar button + * For block Tools returns tool`s wrapper + */ + render(): HTMLElement; +} + +export interface ToolConstructable { + /** + * Tool name + */ + name: string; + + /** + * Define Tool type as Inline + */ + isInline?: boolean; + + /** + * Tool`s sanitizer configuration + */ + sanitize?: SanitizerConfig; + + /** + * Describe constructor parameters + */ + new (config: {api: API}): Tool; + + /** + * Tool`s prepare method. Can be async + * @param data + */ + prepare?(data: {toolName: string, config: ToolConfig}): void | Promise; +} diff --git a/webpack.config.js b/webpack.config.js index 26912584..de989867 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -6,8 +6,8 @@ */ 'use strict'; -var pkg = require('./package.json'); -var path = require('path'); +const pkg = require('./package.json'); +const path = require('path'); /** * Environment @@ -20,29 +20,12 @@ const VERSION = process.env.VERSION || pkg.version; * Plugins for bundle * @type {webpack} */ -var webpack = require('webpack'); - -/** - * File system - */ -var fs = require('fs'); - -/** - * Available CodeX Editor modules placed in components/modules folder - * They will required automatically. - * Folders and files starting with '_' will be skipped - * @type {Array} - */ -var editorModules = fs.readdirSync('./src/components/modules').filter( name => /.(j|t)s$/.test(name) && name.substring(0,1) !== '_' ); - -editorModules.forEach( name => { - console.log('Require modules/' + name); -}); +const webpack = require('webpack'); /** * Options for the Babel */ -var babelLoader = { +const babelLoader = { loader: 'babel-loader', options: { cacheDirectory: true, @@ -72,7 +55,7 @@ var babelLoader = { module.exports = { entry: { - 'codex-editor': [ './src/codex' ] + 'codex-editor': ['@babel/polyfill/noConflict', './src/codex.ts'] }, output: { path: path.resolve(__dirname, 'build'), @@ -86,69 +69,28 @@ module.exports = { aggregateTimeout: 50 }, - devtool: NODE_ENV == 'development' ? 'source-map' : null, + devtool: NODE_ENV === 'development' ? 'source-map' : null, /** * Tell webpack what directories should be searched when resolving modules. */ resolve : { - // fallback: path.join(__dirname, 'node_modules'), - modules : [ path.join(__dirname, "src"), "node_modules"], + modules : [path.join(__dirname, 'src'), 'node_modules'], extensions: ['.js', '.ts'], alias: { 'utils': path.resolve(__dirname + '/src/components/', './utils'), 'dom': path.resolve(__dirname + '/src/components/', './dom'), } }, - // - - // resolveLoader : { - // modules: [ path.resolve(__dirname, "src"), "node_modules" ], - // moduleTemplates: ['*-webpack-loader', '*-web-loader', '*-loader', '*'], - // extensions: ['.js'] - // }, plugins: [ /** Pass variables into modules */ new webpack.DefinePlugin({ NODE_ENV: JSON.stringify(NODE_ENV), - VERSION: JSON.stringify(VERSION), - editorModules: JSON.stringify(editorModules) + VERSION: JSON.stringify(VERSION) }), - /** - * Setting up a dynamic requires that we use to autoload Editor Modules from 'components/modules' dir - * {@link https://webpack.js.org/plugins/context-replacement-plugin/} - */ - new webpack.ContextReplacementPlugin( - /src\/components\/modules/, - false, // newContentRecursive=false because we dont need to include folders - new RegExp( - '[^_]' + // dont match names started with '_' - `(${editorModules.join('|')})` + // module names pattern: (events.js|ui.js|...) - '$' // at the end of path - ) - ), - - /** - * Automatically load global visible modules - * instead of having to import/require them everywhere. - */ - new webpack.ProvidePlugin({ - '_': 'utils', - '$': 'dom', - 'Module': './../__module.ts', - }), - - /** Минифицируем CSS и JS */ - // new webpack.optimize.UglifyJsPlugin({ - /** Disable warning messages. Cant disable uglify for 3rd party libs such as html-janitor */ - // compress: { - // warnings: false - // } - // }), - /** Block biuld if errors found */ // new webpack.NoErrorsPlugin(), @@ -165,6 +107,9 @@ module.exports = { }, { loader: 'tslint-loader', + options: { + fix: true + } } ] }, @@ -205,6 +150,9 @@ module.exports = { } ] }, + externals: { + svg: '../src/components/modules/svg.ts' + }, optimization: { minimize: true }, diff --git a/yarn.lock b/yarn.lock index 7d212451..adcb37ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,12 +5,14 @@ "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: "@babel/highlight" "^7.0.0" "@babel/core@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" + integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw== dependencies: "@babel/code-frame" "^7.0.0" "@babel/generator" "^7.1.2" @@ -30,6 +32,7 @@ "@babel/generator@^7.1.2", "@babel/generator@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== dependencies: "@babel/types" "^7.1.3" jsesc "^2.5.1" @@ -40,12 +43,14 @@ "@babel/helper-annotate-as-pure@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== dependencies: "@babel/types" "^7.0.0" "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== dependencies: "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" @@ -53,6 +58,7 @@ "@babel/helper-call-delegate@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== dependencies: "@babel/helper-hoist-variables" "^7.0.0" "@babel/traverse" "^7.1.0" @@ -61,6 +67,7 @@ "@babel/helper-define-map@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/types" "^7.0.0" @@ -69,6 +76,7 @@ "@babel/helper-explode-assignable-expression@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== dependencies: "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" @@ -76,6 +84,7 @@ "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== dependencies: "@babel/helper-get-function-arity" "^7.0.0" "@babel/template" "^7.1.0" @@ -84,30 +93,35 @@ "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== dependencies: "@babel/types" "^7.0.0" "@babel/helper-hoist-variables@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== dependencies: "@babel/types" "^7.0.0" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== dependencies: "@babel/types" "^7.0.0" "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== dependencies: "@babel/types" "^7.0.0" "@babel/helper-module-transforms@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-simple-access" "^7.1.0" @@ -119,22 +133,26 @@ "@babel/helper-optimise-call-expression@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== dependencies: "@babel/types" "^7.0.0" "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== "@babel/helper-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== dependencies: lodash "^4.17.10" "@babel/helper-remap-async-to-generator@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-wrap-function" "^7.1.0" @@ -145,6 +163,7 @@ "@babel/helper-replace-supers@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" @@ -154,6 +173,7 @@ "@babel/helper-simple-access@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== dependencies: "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" @@ -161,12 +181,14 @@ "@babel/helper-split-export-declaration@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== dependencies: "@babel/types" "^7.0.0" "@babel/helper-wrap-function@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" + integrity sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/template" "^7.1.0" @@ -176,6 +198,7 @@ "@babel/helpers@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" + integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA== dependencies: "@babel/template" "^7.1.2" "@babel/traverse" "^7.1.0" @@ -184,6 +207,7 @@ "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: chalk "^2.0.0" esutils "^2.0.2" @@ -192,10 +216,12 @@ "@babel/parser@^7.1.2", "@babel/parser@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== "@babel/plugin-proposal-async-generator-functions@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" + integrity sha512-Fq803F3Jcxo20MXUSDdmZZXrPe6BWyGcWBPPNB/M7WaUYESKDeKMOGIxEzQOjGSmW/NWb6UaPZrtTB2ekhB/ew== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" @@ -204,6 +230,7 @@ "@babel/plugin-proposal-json-strings@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" + integrity sha512-kfVdUkIAGJIVmHmtS/40i/fg/AGnw/rsZBCaapY5yjeO5RA9m165Xbw9KMOu2nqXP5dTFjEjHdfNdoVcHv133Q== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.0.0" @@ -211,6 +238,7 @@ "@babel/plugin-proposal-object-rest-spread@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" + integrity sha512-14fhfoPcNu7itSen7Py1iGN0gEm87hX/B+8nZPqkdmANyyYWYMY2pjA3r8WXbWVKMzfnSNS0xY8GVS0IjXi/iw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread" "^7.0.0" @@ -218,6 +246,7 @@ "@babel/plugin-proposal-optional-catch-binding@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" + integrity sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" @@ -225,6 +254,7 @@ "@babel/plugin-proposal-unicode-property-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" + integrity sha512-tM3icA6GhC3ch2SkmSxv7J/hCWKISzwycub6eGsDrFDgukD4dZ/I+x81XgW0YslS6mzNuQ1Cbzh5osjIMgepPQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" @@ -233,36 +263,42 @@ "@babel/plugin-syntax-async-generators@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" + integrity sha512-im7ged00ddGKAjcZgewXmp1vxSZQQywuQXe2B1A7kajjZmDeY/ekMPmWr9zJgveSaQH0k7BcGrojQhcK06l0zA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" + integrity sha512-UlSfNydC+XLj4bw7ijpldc1uZ/HB84vw+U6BTuqMdIEmz/LDe63w/GHtpQMdXWdqQZFeAI9PjnHe/vDhwirhKA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-object-rest-spread@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" + integrity sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" + integrity sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-arrow-functions@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" + integrity sha512-2EZDBl1WIO/q4DIkIp4s86sdp4ZifL51MoIviLY/gG/mLSuOIEg7J8o6mhbxOTvUJkaN50n+8u41FVsr5KLy/w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-async-to-generator@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" + integrity sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -271,12 +307,14 @@ "@babel/plugin-transform-block-scoped-functions@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" + integrity sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-block-scoping@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" + integrity sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.10" @@ -284,6 +322,7 @@ "@babel/plugin-transform-classes@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" + integrity sha512-rNaqoD+4OCBZjM7VaskladgqnZ1LO6o2UxuWSDzljzW21pN1KXkB7BstAVweZdxQkHAujps5QMNOTWesBciKFg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-define-map" "^7.1.0" @@ -297,18 +336,21 @@ "@babel/plugin-transform-computed-properties@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" + integrity sha512-ubouZdChNAv4AAWAgU7QKbB93NU5sHwInEWfp+/OzJKA02E6Woh9RVoX4sZrbRwtybky/d7baTUqwFx+HgbvMA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-destructuring@^7.0.0": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + integrity sha512-Mb9M4DGIOspH1ExHOUnn2UUXFOyVTiX84fXCd+6B5iWrQg/QMeeRmSwpZ9lnjYLSXtZwiw80ytVMr3zue0ucYw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-dotall-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" + integrity sha512-00THs8eJxOJUFVx1w8i1MBF4XH4PsAjKjQ1eqN/uCH3YKwP21GCKfrn6YZFZswbOk9+0cw1zGQPHVc1KBlSxig== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" @@ -317,12 +359,14 @@ "@babel/plugin-transform-duplicate-keys@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" + integrity sha512-w2vfPkMqRkdxx+C71ATLJG30PpwtTpW7DDdLqYt2acXU7YjztzeWW2Jk1T6hKqCLYCcEA5UQM/+xTAm+QCSnuQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-exponentiation-operator@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" + integrity sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -330,12 +374,14 @@ "@babel/plugin-transform-for-of@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" + integrity sha512-TlxKecN20X2tt2UEr2LNE6aqA0oPeMT1Y3cgz8k4Dn1j5ObT8M3nl9aA37LLklx0PBZKETC9ZAf9n/6SujTuXA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" + integrity sha512-VxOa1TMlFMtqPW2IDYZQaHsFrq/dDoIjgN098NowhexhZcz3UGlvPgZXuE1jEvNygyWyxRacqDpCZt+par1FNg== dependencies: "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -343,12 +389,14 @@ "@babel/plugin-transform-literals@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" + integrity sha512-1NTDBWkeNXgpUcyoVFxbr9hS57EpZYXpje92zv0SUzjdu3enaRwF/l3cmyRnXLtIdyJASyiS6PtybK+CgKf7jA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-modules-amd@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" + integrity sha512-wt8P+xQ85rrnGNr2x1iV3DW32W8zrB6ctuBkYBbf5/ZzJY99Ob4MFgsZDFgczNU76iy9PWsy4EuxOliDjdKw6A== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -356,6 +404,7 @@ "@babel/plugin-transform-modules-commonjs@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" + integrity sha512-wtNwtMjn1XGwM0AXPspQgvmE6msSJP15CX2RVfpTSTNPLhKhaOjaIfBaVfj4iUZ/VrFSodcFedwtPg/NxwQlPA== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -364,6 +413,7 @@ "@babel/plugin-transform-modules-systemjs@^7.0.0": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + integrity sha512-PvTxgjxQAq4pvVUZF3mD5gEtVDuId8NtWkJsZLEJZMZAW3TvgQl1pmydLLN1bM8huHFVVU43lf0uvjQj9FRkKw== dependencies: "@babel/helper-hoist-variables" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -371,6 +421,7 @@ "@babel/plugin-transform-modules-umd@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" + integrity sha512-enrRtn5TfRhMmbRwm7F8qOj0qEYByqUvTttPEGimcBH4CJHphjyK1Vg7sdU7JjeEmgSpM890IT/efS2nMHwYig== dependencies: "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -378,12 +429,14 @@ "@babel/plugin-transform-new-target@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-object-super@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" + integrity sha512-/O02Je1CRTSk2SSJaq0xjwQ8hG4zhZGNjE8psTsSNPXyLRCODv7/PBozqT5AmQMzp7MI3ndvMhGdqp9c96tTEw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.1.0" @@ -391,6 +444,7 @@ "@babel/plugin-transform-parameters@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" + integrity sha512-vHV7oxkEJ8IHxTfRr3hNGzV446GAb+0hgbA7o/0Jd76s+YzccdWuTU296FOCOl/xweU4t/Ya4g41yWz80RFCRw== dependencies: "@babel/helper-call-delegate" "^7.1.0" "@babel/helper-get-function-arity" "^7.0.0" @@ -399,12 +453,14 @@ "@babel/plugin-transform-regenerator@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== dependencies: regenerator-transform "^0.13.3" "@babel/plugin-transform-runtime@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz#9f76920d42551bb577e2dc594df229b5f7624b63" + integrity sha512-WFLMgzu5DLQEah0lKTJzYb14vd6UiES7PTnXcvrPZ1VrwFeJ+mTbvr65fFAsXYMt2bIoOoC0jk76zY1S7HZjUg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -414,18 +470,21 @@ "@babel/plugin-transform-shorthand-properties@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" + integrity sha512-g/99LI4vm5iOf5r1Gdxq5Xmu91zvjhEG5+yZDJW268AZELAu4J1EiFLnkSG3yuUsZyOipVOVUKoGPYwfsTymhw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-spread@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" + integrity sha512-L702YFy2EvirrR4shTj0g2xQp7aNwZoWNCkNu2mcoU0uyzMl0XRwDSwzB/xp6DSUFiBmEXuyAyEN16LsgVqGGQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-sticky-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" + integrity sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" @@ -433,6 +492,7 @@ "@babel/plugin-transform-template-literals@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" + integrity sha512-vA6rkTCabRZu7Nbl9DfLZE1imj4tzdWcg5vtdQGvj+OH9itNNB6hxuRMHuIY8SGnEt1T9g5foqs9LnrHzsqEFg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -440,12 +500,14 @@ "@babel/plugin-transform-typeof-symbol@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" + integrity sha512-1r1X5DO78WnaAIvs5uC48t41LLckxsYklJrZjNKcevyz83sF2l4RHbw29qrCPr/6ksFsdfRpT/ZgxNWHXRnffg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-unicode-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" + integrity sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" @@ -454,6 +516,7 @@ "@babel/polyfill@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.0.0.tgz#c8ff65c9ec3be6a1ba10113ebd40e8750fb90bff" + integrity sha512-dnrMRkyyr74CRelJwvgnnSUDh2ge2NCTyHVwpOdvRMHtJUyxLtMAfhBN3s64pY41zdw0kgiLPh6S20eb1NcX6Q== dependencies: core-js "^2.5.7" regenerator-runtime "^0.11.1" @@ -461,6 +524,7 @@ "@babel/preset-env@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" + integrity sha512-ZLVSynfAoDHB/34A17/JCZbyrzbQj59QC1Anyueb4Bwjh373nVPq5/HMph0z+tCmcDjXDe+DlKQq9ywQuvWrQg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -507,6 +571,7 @@ "@babel/register@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0.tgz#fa634bae1bfa429f60615b754fc1f1d745edd827" + integrity sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g== dependencies: core-js "^2.5.7" find-cache-dir "^1.0.0" @@ -519,12 +584,14 @@ "@babel/runtime@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" + integrity sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg== dependencies: regenerator-runtime "^0.12.0" "@babel/template@^7.1.0", "@babel/template@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== dependencies: "@babel/code-frame" "^7.0.0" "@babel/parser" "^7.1.2" @@ -533,6 +600,7 @@ "@babel/traverse@^7.1.0": version "7.1.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q== dependencies: "@babel/code-frame" "^7.0.0" "@babel/generator" "^7.1.3" @@ -547,6 +615,7 @@ "@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== dependencies: esutils "^2.0.2" lodash "^4.17.10" @@ -555,14 +624,17 @@ "@codexteam/shortcuts@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@codexteam/shortcuts/-/shortcuts-1.0.0.tgz#9d66a7c00c93be05b7940d46d2a82af442e8b46d" + integrity sha512-G7047f4qHnPtft2Gj7RsjJdXat/XXswUPjIGPHyHZeoARyIZTfX4/yTkgA3oDXvjFoC4cWN2+mKDDMdOET9/GQ== "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== dependencies: call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" @@ -570,175 +642,321 @@ "@nodelib/fs.stat@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" +"@types/body-parser@*": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" + integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== dependencies: - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" + "@types/connect" "*" + "@types/node" "*" -"@webassemblyjs/floating-point-hex-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" +"@types/connect@*": + version "3.4.32" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== dependencies: - "@webassemblyjs/wast-printer" "1.7.11" + "@types/node" "*" -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" +"@types/events@*": + version "1.2.0" + resolved "http://registry.npmjs.org/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + integrity sha512-KEIlhXnIutzKwRbQkGWb/I4HFqBuUykAdHgDED6xqwXJfONCjF5VoE0cXEiurh3XauygxzeDzgtXUqvLkxFzzA== -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" +"@types/express-serve-static-core@*": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" + integrity sha512-lTeoCu5NxJU4OD9moCgm0ESZzweAx0YqsAcab6OB0EB3+As1OaHtKnaGJvcngQxYsi9UNv0abn4/DRavrRxt4w== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" + "@types/events" "*" + "@types/node" "*" + "@types/range-parser" "*" -"@webassemblyjs/ieee754@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" +"@types/express@*": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" + integrity sha512-TtPEYumsmSTtTetAPXlJVf3kEqb6wZK0bZojpJQrnD/djV4q1oB6QQ8aKvKqwNPACoe02GNiy5zDzcYivR5Z2w== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/http-proxy-middleware@*": + version "0.17.5" + resolved "https://registry.yarnpkg.com/@types/http-proxy-middleware/-/http-proxy-middleware-0.17.5.tgz#efdeb4be652744422d57929f3c4ea31a2e627a45" + integrity sha512-mUqVzfaiOknDT2QJ7g8f2c37G4ZDqDNt08QdUkFCu19Ey5+2SZ0rWHMG00GRJ7g+SgHvl/9weZYuWLXr7RgiCg== + dependencies: + "@types/connect" "*" + "@types/http-proxy" "*" + "@types/node" "*" + winston "^3.0.0" + +"@types/http-proxy@*": + version "1.16.2" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.16.2.tgz#16cb373b52fff2aa2f389d23d940ed4a642349e5" + integrity sha512-GgqePmC3rlsn1nv+kx5OviPuUBU2omhnlXOaJSXFgOdsTcScNFap+OaCb2ip9Bm4m5L8EOehgT5d9M4uNB90zg== + dependencies: + "@types/events" "*" + "@types/node" "*" + +"@types/mime@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + integrity sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA== + +"@types/node@*": + version "10.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.7.tgz#0e75ca9357d646ca754016ca1d68a127ad7e7300" + integrity sha512-yOxFfkN9xUFLyvWaeYj90mlqTJ41CsQzWKS3gXdOMOyPVacUsymejKxJ4/pMW7exouubuEeZLJawGgcNGYlTeg== + +"@types/range-parser@*": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" + integrity sha512-HtKGu+qG1NPvYe1z7ezLsyIaXYyi8SoAVqWDZgDQ8dLrsZvSzUNCwZyfX33uhWxL/SU0ZDQZ3nwZ0nimt507Kw== + +"@types/serve-static@*": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" + integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/tapable@*": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" + integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== + +"@types/uglify-js@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.3.tgz#801a5ca1dc642861f47c46d14b700ed2d610840b" + integrity sha512-MAT0BW2ruO0LhQKjvlipLGCF/Yx0y/cj+tT67tK3QIQDrM2+9R78HgJ54VlrE8AbfjYJJBCQCEPM5ZblPVTuww== + dependencies: + source-map "^0.6.1" + +"@types/webpack-dev-server@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.1.1.tgz#12ae26194b3e1b8a317559592659921f282583c2" + integrity sha512-TnEQPT+OZjWV2kRyNs0RPMDQmBCiLrr/ZhKSgFNF6aM4O/moUAfo2Yu3MIMUjoi3aE/02RH1iVR+Y6mWmXOlVA== + dependencies: + "@types/express" "*" + "@types/http-proxy-middleware" "*" + "@types/serve-static" "*" + "@types/webpack" "*" + +"@types/webpack-env@^1.13.6": + version "1.13.6" + resolved "http://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.13.6.tgz#128d1685a7c34d31ed17010fc87d6a12c1de6976" + integrity sha512-5Th3OsZ4gTRdr9Mho83BQ23cex4sRhOR4XTG+m+cJc0FhtUBK9Vn62hBJ+pnQYnSxoPOsKoAPOx6FcphxBC8ng== + +"@types/webpack@*", "@types/webpack@^4.4.16": + version "4.4.16" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.16.tgz#40f9bba401edcd65a56e86cfeadfea75ed841c4b" + integrity sha512-kE6elo5EaC11mB94xezvAH2vwec8+vsx9bzacIZgIWn7ITShEXE/j8KX4LJ5ssCAYPaXMZchbVmpycDwJ84gtA== + dependencies: + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-dev-server" "*" + source-map "^0.6.0" + +"@webassemblyjs/ast@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.8.tgz#f31f480debeef957f01b623f27eabc695fa4fe8f" + integrity sha512-dOrtdtEyB8sInpl75yLPNksY4sRl0j/+t6aHyB/YA+ab9hV3Fo7FmG12FHzP+2MvWVAJtDb+6eXR5EZbZJ+uVg== + dependencies: + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" + +"@webassemblyjs/floating-point-hex-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.8.tgz#1b3ed0e27e384032254e9322fc646dd3e70ef1b9" + integrity sha512-kn2zNKGsbql5i56VAgRYkpG+VazqHhQQZQycT2uXAazrAEDs23gy+Odkh5VblybjnwX2/BITkDtNmSO76hdIvQ== + +"@webassemblyjs/helper-api-error@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.8.tgz#a2b49c11f615e736f815ec927f035dcfa690d572" + integrity sha512-xUwxDXsd1dUKArJEP5wWM5zxgCSwZApSOJyP1XO7M8rNUChUDblcLQ4FpzTpWG2YeylMwMl1MlP5Ztryiz1x4g== + +"@webassemblyjs/helper-buffer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.8.tgz#3fc66bfa09c1c60e824cf3d5887826fac062877d" + integrity sha512-WXiIMnuvuwlhWvVOm8xEXU9DnHaa3AgAU0ZPfvY8vO1cSsmYb2WbGbHnMLgs43vXnA7XAob9b56zuZaMkxpCBg== + +"@webassemblyjs/helper-code-frame@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.8.tgz#cc5a7e9522b70e7580df056dfd34020cf29645b0" + integrity sha512-TLQxyD9qGOIdX5LPQOPo0Ernd88U5rHkFb8WAjeMIeA0sPjCHeVPaGqUGGIXjUcblUkjuDAc07bruCcNHUrHDA== + dependencies: + "@webassemblyjs/wast-printer" "1.7.8" + +"@webassemblyjs/helper-fsm@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.8.tgz#fe4607430af466912797c21acafd3046080182ea" + integrity sha512-TjK0CnD8hAPkV5mbSp5aWl6SO1+H3WFcjWtixWoy8EMA99YnNzYhpc/WSYWhf7yrhpzkq5tZB0tvLK3Svr3IXA== + +"@webassemblyjs/helper-module-context@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.8.tgz#3c2e7ee93d14ff4768ba66fb1be42fdc9dc7160a" + integrity sha512-uCutAKR7Nm0VsFixcvnB4HhAyHouNbj0Dx1p7eRjFjXGGZ+N7ftTaG1ZbWCasAEbtwGj54LP8+lkBZdTCPmLGg== + +"@webassemblyjs/helper-wasm-bytecode@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.8.tgz#89bdb78cd6dd5209ae2ed2925de78d0f0e00b6f0" + integrity sha512-AdCCE3BMW6V34WYaKUmPgVHa88t2Z14P4/0LjLwuGkI0X6pf7nzp0CehzVVk51cKm2ymVXjl9dCG+gR1yhITIQ== + +"@webassemblyjs/helper-wasm-section@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.8.tgz#c68ef7d26a6fc12421b2e6e56f9bc810dfb33e87" + integrity sha512-BkBhYQuzyl4hgTGOKo87Vdw6f9nj8HhI7WYpI0MCC5qFa5ahrAPOGgyETVdnRbv+Rjukl9MxxfDmVcVC435lDg== + dependencies: + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + +"@webassemblyjs/ieee754@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.8.tgz#1f37974b13cb486a9237e73ce04cac7a2f1265ed" + integrity sha512-tOarWChdG1a3y1yqCX0JMDKzrat5tQe4pV6K/TX19BcXsBLYxFQOL1DEDa5KG9syeyvCrvZ+i1+Mv1ExngvktQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" +"@webassemblyjs/leb128@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.8.tgz#1bee83426819192db2ea1a234b84c7ebc6d34c1f" + integrity sha512-GCYeGPgUFWJiZuP4NICbcyUQNxNLJIf476Ei+K+jVuuebtLpfvwkvYT6iTUE7oZYehhkor4Zz2g7SJ/iZaPudQ== dependencies: "@xtuc/long" "4.2.1" -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" +"@webassemblyjs/utf8@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.8.tgz#2b489d5cf43e0aebb93d8e2d792aff9879c61f05" + integrity sha512-9X+f0VV+xNXW2ujfIRSXBJENGE6Qh7bNVKqu3yDjTFB3ar3nsThsGBBKdTG58aXOm2iUH6v28VIf88ymPXODHA== -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" +"@webassemblyjs/wasm-edit@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.8.tgz#f8bdbe7088718eca27b1c349bb7c06b8a457950c" + integrity sha512-6D3Hm2gFixrfyx9XjSON4ml1FZTugqpkIz5Awvrou8fnpyprVzcm4X8pyGRtA2Piixjl3DqmX/HB1xdWyE097A== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/helper-wasm-section" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-opt" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - "@webassemblyjs/wast-printer" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/helper-wasm-section" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-opt" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" + "@webassemblyjs/wast-printer" "1.7.8" -"@webassemblyjs/wasm-gen@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" +"@webassemblyjs/wasm-gen@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.8.tgz#7e8abf1545eae74ac6781d545c034af3cfd0c7d5" + integrity sha512-a7O/wE6eBeVKKUYgpMK7NOHmMADD85rSXLe3CqrWRDwWff5y3cSVbzpN6Qv3z6C4hdkpq9qyij1Ga1kemOZGvQ== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" -"@webassemblyjs/wasm-opt@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" +"@webassemblyjs/wasm-opt@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.8.tgz#7ada6e211914728fce02ff0ff9c344edc6d41f26" + integrity sha512-3lbQ0PT81NHCdi1sR/7+SNpZadM4qYcTSr62nFFAA7e5lFwJr14M1Gi+A/Y3PgcDWOHYjsaNGPpPU0H03N6Blg== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-buffer" "1.7.8" + "@webassemblyjs/wasm-gen" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" -"@webassemblyjs/wasm-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" +"@webassemblyjs/wasm-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.8.tgz#dac47c291fb6a3e63529aecd647592cd34afbf94" + integrity sha512-rZ/zlhp9DHR/05zh1MbAjT2t624sjrPP/OkJCjXqzm7ynH+nIdNcn9Ixc+qzPMFXhIrk0rBoQ3to6sEIvHh9jQ== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-wasm-bytecode" "1.7.8" + "@webassemblyjs/ieee754" "1.7.8" + "@webassemblyjs/leb128" "1.7.8" + "@webassemblyjs/utf8" "1.7.8" -"@webassemblyjs/wast-parser@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" +"@webassemblyjs/wast-parser@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.8.tgz#f8aab9a450c048c1f9537695c89faeb92fabfba5" + integrity sha512-Q/zrvtUvzWuSiJMcSp90fi6gp2nraiHXjTV2VgAluVdVapM4gy1MQn7akja2p6eSBDQpKJPJ6P4TxRkghRS5dg== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/floating-point-hex-parser" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-code-frame" "1.7.11" - "@webassemblyjs/helper-fsm" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/floating-point-hex-parser" "1.7.8" + "@webassemblyjs/helper-api-error" "1.7.8" + "@webassemblyjs/helper-code-frame" "1.7.8" + "@webassemblyjs/helper-fsm" "1.7.8" "@xtuc/long" "4.2.1" -"@webassemblyjs/wast-printer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" +"@webassemblyjs/wast-printer@1.7.8": + version "1.7.8" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.8.tgz#e7e965782c1912f6a965f14a53ff43d8ad0403a5" + integrity sha512-GllIthRtwTxRDAURRNXscu7Napzmdf1jt1gpiZiK/QN4fH0lSGs3OTmvdfsMNP7tqI4B3ZtfaaWRlNIQug6Xyg== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/wast-parser" "1.7.8" "@xtuc/long" "4.2.1" "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== acorn-dynamic-import@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== dependencies: acorn "^5.0.0" acorn-jsx@^3.0.0: version "3.0.1" resolved "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= dependencies: acorn "^3.0.4" acorn@^3.0.4: version "3.3.0" resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= acorn@^5.0.0, acorn@^5.5.0, acorn@^5.6.2: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" @@ -748,6 +966,7 @@ ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0: ajv@^6.1.0, ajv@^6.5.3: version "6.5.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" + integrity sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -757,36 +976,44 @@ ajv@^6.1.0, ajv@^6.5.3: alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= ansi-escapes@^3.0.0: version "3.1.0" resolved "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" any-promise@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-0.1.0.tgz#830b680aa7e56f33451d4b049f3bd8044498ee27" + integrity sha1-gwtoCqflbzNFHUsEnzvYBESY7ic= anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" @@ -794,10 +1021,12 @@ anymatch@^2.0.0: aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -805,56 +1034,68 @@ are-we-there-yet@~1.1.2: argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= dependencies: arr-flatten "^1.0.1" arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -863,34 +1104,41 @@ asn1.js@^4.0.0: assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= async@^1.3.0: version "1.5.2" resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.4.1: +async@^2.4.1, async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== dependencies: lodash "^4.17.10" atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^6.3.1: version "6.7.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + integrity sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ= dependencies: browserslist "^1.7.6" caniuse-db "^1.0.30000634" @@ -902,6 +1150,7 @@ autoprefixer@^6.3.1: autoprefixer@^7.1.1: version "7.2.6" resolved "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + integrity sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ== dependencies: browserslist "^2.11.3" caniuse-lite "^1.0.30000805" @@ -913,6 +1162,7 @@ autoprefixer@^7.1.1: autoprefixer@^9.0.0: version "9.3.1" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.3.1.tgz#71b622174de2b783d5fd99f9ad617b7a3c78443e" + integrity sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q== dependencies: browserslist "^4.3.3" caniuse-lite "^1.0.30000898" @@ -924,6 +1174,7 @@ autoprefixer@^9.0.0: babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= dependencies: chalk "^1.1.3" esutils "^2.0.2" @@ -932,6 +1183,7 @@ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: babel-loader@^8.0.4: version "8.0.4" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" + integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw== dependencies: find-cache-dir "^1.0.0" loader-utils "^1.0.2" @@ -941,16 +1193,19 @@ babel-loader@^8.0.4: babel-plugin-add-module-exports@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.0.tgz#72b5424d941a336c6a35357f373d8b8366263031" + integrity sha512-m0sMxPL4FaN2K69GQgaRJa4Ny15qKSdoknIcpN+gz+NaJlAW9pge/povs13tPYsKDboflrEQC+/3kfIsONBTaw== optionalDependencies: chokidar "^2.0.4" babel-plugin-class-display-name@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-class-display-name/-/babel-plugin-class-display-name-2.1.0.tgz#198ff12b9eabd33e011ee13f2f9898985608b4d1" + integrity sha1-GY/xK56r0z4BHuE/L5iYmFYItNE= babel-runtime@^6.23.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" @@ -958,26 +1213,32 @@ babel-runtime@^6.23.0, babel-runtime@^6.26.0: bail@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" + integrity sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg== balanced-match@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.1.0.tgz#b504bd05869b39259dd0c5efc35d843176dccc4a" + integrity sha1-tQS9BYabOSWd0MXvw12EMXbczEo= balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@^1.0.2: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -990,26 +1251,32 @@ base@^0.11.1: big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== bluebird@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" + integrity sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1017,6 +1284,7 @@ brace-expansion@^1.1.7: braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= dependencies: expand-range "^1.8.1" preserve "^0.2.0" @@ -1025,6 +1293,7 @@ braces@^1.8.2: braces@^2.3.0, braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1040,10 +1309,12 @@ braces@^2.3.0, braces@^2.3.1: brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1055,6 +1326,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -1063,6 +1335,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" @@ -1072,6 +1345,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -1079,6 +1353,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -1091,12 +1366,14 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + integrity sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk= dependencies: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" @@ -1104,13 +1381,24 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: browserslist@^2.0.0, browserslist@^2.11.3: version "2.11.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + integrity sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA== dependencies: caniuse-lite "^1.0.30000792" electron-to-chromium "^1.3.30" -browserslist@^4.1.0, browserslist@^4.3.3: +browserslist@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.2.0.tgz#3e5e5edf7fa9758ded0885cf88c1e4be753a591c" + integrity sha512-Berls1CHL7qfQz8Lct6QxYA5d2Tvt4doDWHcjvAISybpd+EKZVppNtXgXhaN6SdrPKo7YLTSZuYBs5cYrSWN8w== + dependencies: + caniuse-lite "^1.0.30000889" + electron-to-chromium "^1.3.73" + node-releases "^1.0.0-alpha.12" + +browserslist@^4.3.3: version "4.3.4" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.4.tgz#4477b737db6a1b07077275b24791e680d4300425" + integrity sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA== dependencies: caniuse-lite "^1.0.30000899" electron-to-chromium "^1.3.82" @@ -1119,14 +1407,17 @@ browserslist@^4.1.0, browserslist@^4.3.3: buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.1" resolved "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1135,14 +1426,17 @@ buffer@^4.3.0: builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= cacache@^10.0.4: version "10.0.4" resolved "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== dependencies: bluebird "^3.5.1" chownr "^1.0.1" @@ -1161,6 +1455,7 @@ cacache@^10.0.4: cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -1175,20 +1470,24 @@ cache-base@^1.0.1: call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= dependencies: callsites "^0.2.0" callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= camelcase-keys@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= dependencies: camelcase "^4.1.0" map-obj "^2.0.0" @@ -1197,10 +1496,12 @@ camelcase-keys@^4.0.0: camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + integrity sha1-tTTnxzTE+B7F++isoq0kNUuWLGw= dependencies: browserslist "^1.3.6" caniuse-db "^1.0.30000529" @@ -1210,6 +1511,7 @@ caniuse-api@^1.5.2: caniuse-api@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-2.0.0.tgz#b1ddb5a5966b16f48dc4998444d4bbc6c7d9d834" + integrity sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ= dependencies: browserslist "^2.0.0" caniuse-lite "^1.0.0" @@ -1219,18 +1521,27 @@ caniuse-api@^2.0.0: caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000906" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000906.tgz#9a9e43b8690f9a0937c9fdf5e4699eee8516b982" + integrity sha512-PrxbTWezapS26wYU+lgGKLW7QTr5QrUWDunjlHOQ1qBoHDJruHGb9pdDKFOI1nUnkudSDPhNoan2FW0vMlwFvA== caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000898, caniuse-lite@^1.0.30000899: version "1.0.30000906" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000906.tgz#7c44e498a2504f7a5db3b4f91285bbc821157a77" + integrity sha512-ME7JFX6h0402om/nC/8Lw+q23QvPe2ust9U0ntLmkX9F2zaGwq47fZkjlyHKirFBuq1EM+T/LXBcDdW4bvkCTA== + +caniuse-lite@^1.0.30000889: + version "1.0.30000890" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz#86a18ffcc65d79ec6a437e985761b8bf1c4efeaf" + integrity sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg== ccount@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" + integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== chalk@^1.1.3: version "1.1.3" resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" @@ -1241,6 +1552,7 @@ chalk@^1.1.3: chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -1249,26 +1561,32 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: character-entities-html4@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" + integrity sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw== character-entities-legacy@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" + integrity sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA== character-entities@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz#58c8f371c0774ef0ba9b2aca5f00d8f100e6e363" + integrity sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ== character-reference-invalid@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" + integrity sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ== chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= cheerio@^0.19.0: version "0.19.0" resolved "http://registry.npmjs.org/cheerio/-/cheerio-0.19.0.tgz#772e7015f2ee29965096d71ea4175b75ab354925" + integrity sha1-dy5wFfLuKZZQltcepBdbdas1SSU= dependencies: css-select "~1.0.0" dom-serializer "~0.1.0" @@ -1279,6 +1597,7 @@ cheerio@^0.19.0: chokidar@^2.0.2, chokidar@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== dependencies: anymatch "^2.0.0" async-each "^1.0.0" @@ -1298,16 +1617,19 @@ chokidar@^2.0.2, chokidar@^2.0.4: chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== chrome-trace-event@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== dependencies: tslib "^1.9.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -1315,16 +1637,19 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + integrity sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA== dependencies: chalk "^1.1.3" class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -1334,16 +1659,19 @@ class-utils@^0.3.5: cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -1352,6 +1680,7 @@ cliui@^4.0.0: clone-regexp@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" + integrity sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw== dependencies: is-regexp "^1.0.0" is-supported-regexp-flag "^1.0.0" @@ -1359,32 +1688,39 @@ clone-regexp@^1.0.0: clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= coa@~1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + integrity sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0= dependencies: q "^1.1.2" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= codex-notifier@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/codex-notifier/-/codex-notifier-1.1.0.tgz#2374eaa365109f788f74b67782cee3d91db46a20" + integrity sha512-eoi5pzpjUEg1ktNdfmv/zwo8z0gmBnXOKFdwC0vZZOAs3htToGMVWKNqEJJNGvE0uzVsikVDCLJj7cYy/5T7+w== collapse-white-space@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz#ce05cf49e54c3277ae573036a26851ba430a0091" + integrity sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw== collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" object-visit "^1.0.0" @@ -1392,33 +1728,47 @@ collection-visit@^1.0.0: color-convert@^1.3.0, color-convert@^1.8.2, color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + integrity sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE= dependencies: color-name "^1.0.0" color-string@^1.4.0, color-string@^1.5.2: version "1.5.3" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" +color@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a" + integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + color@^0.11.0: version "0.11.4" resolved "http://registry.npmjs.org/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + integrity sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q= dependencies: clone "^1.0.2" color-convert "^1.3.0" @@ -1427,6 +1777,7 @@ color@^0.11.0: color@^1.0.3: version "1.0.3" resolved "http://registry.npmjs.org/color/-/color-1.0.3.tgz#e48e832d85f14ef694fb468811c2d5cfe729b55d" + integrity sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0= dependencies: color-convert "^1.8.2" color-string "^1.4.0" @@ -1434,6 +1785,7 @@ color@^1.0.3: color@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color/-/color-2.0.1.tgz#e4ed78a3c4603d0891eba5430b04b86314f4c839" + integrity sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw== dependencies: color-convert "^1.9.1" color-string "^1.5.2" @@ -1441,38 +1793,64 @@ color@^2.0.1: colormin@^1.0.5: version "1.1.2" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + integrity sha1-6i90IKcrlogaOKrlnsEkpvcpgTM= dependencies: color "^0.11.0" css-color-names "0.0.4" has "^1.0.1" +colornames@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96" + integrity sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y= + +colors@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b" + integrity sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ== + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= + +colorspace@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.1.tgz#9ac2491e1bc6f8fb690e2176814f8d091636d972" + integrity sha512-pI3btWyiuz7Ken0BWh9Elzsmv2bM9AhA7psXib4anUXy/orfZ/E0MbQwhSOG/9L8hLlalqrU0UhOuqxW1YjmVw== + dependencies: + color "3.0.x" + text-hex "1.0.x" commander@^2.12.1, commander@^2.8.1: version "2.19.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -1482,26 +1860,31 @@ concat-stream@^1.5.0, concat-stream@^1.6.0: console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= convert-source-map@^1.1.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -1513,18 +1896,22 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js@^2.4.0, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" + integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== dependencies: is-directory "^0.3.1" js-yaml "^3.9.0" @@ -1534,6 +1921,7 @@ cosmiconfig@^4.0.0: cosmiconfig@^5.0.0: version "5.0.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" + integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ== dependencies: is-directory "^0.3.1" js-yaml "^3.9.0" @@ -1542,6 +1930,7 @@ cosmiconfig@^5.0.0: create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" elliptic "^6.0.0" @@ -1549,6 +1938,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -1559,6 +1949,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1570,6 +1961,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" @@ -1578,6 +1970,7 @@ cross-spawn@^5.1.0: cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -1588,6 +1981,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1604,6 +1998,7 @@ crypto-browserify@^3.11.0: css-color-function@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/css-color-function/-/css-color-function-1.3.3.tgz#8ed24c2c0205073339fafa004bc8c141fccb282e" + integrity sha1-jtJMLAIFBzM5+voAS8jBQfzLKC4= dependencies: balanced-match "0.1.0" color "^0.11.0" @@ -1613,10 +2008,12 @@ css-color-function@~1.3.3: css-color-names@0.0.4: version "0.0.4" resolved "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-loader@^0.28.11: version "0.28.11" resolved "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" + integrity sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg== dependencies: babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" @@ -1636,6 +2033,7 @@ css-loader@^0.28.11: css-select@~1.0.0: version "1.0.0" resolved "http://registry.npmjs.org/css-select/-/css-select-1.0.0.tgz#b1121ca51848dd264e2244d058cee254deeb44b0" + integrity sha1-sRIcpRhI3SZOIkTQWM7iVN7rRLA= dependencies: boolbase "~1.0.0" css-what "1.0" @@ -1645,6 +2043,7 @@ css-select@~1.0.0: css-selector-tokenizer@^0.7.0: version "0.7.1" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== dependencies: cssesc "^0.1.0" fastparse "^1.1.1" @@ -1653,18 +2052,22 @@ css-selector-tokenizer@^0.7.0: css-unit-converter@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= css-what@1.0: version "1.0.0" resolved "http://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz#d7cc2df45180666f99d2b14462639469e00f736c" + integrity sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w= cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= cssnano@^3.10.0: version "3.10.0" resolved "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + integrity sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg= dependencies: autoprefixer "^6.3.1" decamelize "^1.1.2" @@ -1702,6 +2105,7 @@ cssnano@^3.10.0: csso@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + integrity sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U= dependencies: clap "^1.0.9" source-map "^0.5.3" @@ -1709,38 +2113,45 @@ csso@~2.3.1: currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" debug@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== dependencies: ms "^2.1.1" decamelize-keys@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -1748,46 +2159,55 @@ decamelize-keys@^1.0.0: decamelize@^1.1.0, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decamelize@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg== dependencies: xregexp "4.0.0" decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= define-properties@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" @@ -1795,10 +2215,12 @@ define-property@^2.0.2: defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + integrity sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag= dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" @@ -1811,10 +2233,12 @@ del@^2.0.2: delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -1822,14 +2246,26 @@ des.js@^1.0.0: detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +diagnostics@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a" + integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ== + dependencies: + colorspace "1.1.x" + enabled "1.0.x" + kuler "1.0.x" diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: version "5.0.3" resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -1838,6 +2274,7 @@ diffie-hellman@^5.0.0: dir-glob@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: arrify "^1.0.1" path-type "^3.0.0" @@ -1845,12 +2282,14 @@ dir-glob@^2.0.0: doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= dependencies: domelementtype "~1.1.1" entities "~1.1.1" @@ -1858,40 +2297,48 @@ dom-serializer@0, dom-serializer@~0.1.0: domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1: version "1.2.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.2.1.tgz#578558ef23befac043a1abb0db07635509393479" + integrity sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA== domelementtype@^1.3.0: version "1.3.0" resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI= domelementtype@~1.1.1: version "1.1.3" resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs= domhandler@2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" + integrity sha1-LeWaCCLVAn+r/28DLCsloqir5zg= dependencies: domelementtype "1" domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== dependencies: domelementtype "1" domutils@1.4: version "1.4.3" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.4.3.tgz#0865513796c6b306031850e175516baf80b72a6f" + integrity sha1-CGVRN5bGswYDGFDhdVFrr4C3Km8= dependencies: domelementtype "1" domutils@1.5: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= dependencies: dom-serializer "0" domelementtype "1" @@ -1899,6 +2346,7 @@ domutils@1.5: domutils@^1.5.1: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" @@ -1906,12 +2354,14 @@ domutils@^1.5.1: dot-prop@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== dependencies: is-obj "^1.0.0" duplexify@^3.4.2, duplexify@^3.6.0: version "3.6.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -1921,10 +2371,17 @@ duplexify@^3.4.2, duplexify@^3.6.0: electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.82: version "1.3.83" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666" + integrity sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA== + +electron-to-chromium@^1.3.73: + version "1.3.76" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.76.tgz#2597c9c461f805298696f2de7a1ad1791f6d6226" + integrity sha512-qKQQzjRqpTqiVV7fP0DZRqndQFkzzp5knBvNkqdNIKd7Of/+d9tvNVtY3ffSDUD5UrMepe7IOmBflugDPhPNtA== elliptic@^6.0.0: version "6.4.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -1937,16 +2394,26 @@ elliptic@^6.0.0: emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +enabled@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93" + integrity sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M= + dependencies: + env-variable "0.0.x" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== dependencies: once "^1.4.0" enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" @@ -1955,26 +2422,36 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: entities@1.0: version "1.0.0" resolved "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" + integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +env-variable@0.0.x: + version "0.0.5" + resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.5.tgz#913dd830bef11e96a039c038d4130604eba37f88" + integrity sha512-zoB603vQReOFvTg5xMl9I1P2PnHsHQQKTEowsKKD7nseUfJq6UWzK+4YtlWUO1nhiQUxe6XMkk+JleSZD1NZFA== errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-abstract@^1.5.1: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -1985,6 +2462,7 @@ es-abstract@^1.5.1: es-to-primitive@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -1993,14 +2471,17 @@ es-to-primitive@^1.1.1: es6-promise@^2.3.0: version "2.3.0" resolved "http://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz#96edb9f2fdb01995822b263dd8aadab6748181bc" + integrity sha1-lu258v2wGZWCKyY92KratnSBgbw= escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= eslint-loader@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a" + integrity sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ== dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -2011,6 +2492,7 @@ eslint-loader@^2.1.0: eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2018,6 +2500,7 @@ eslint-scope@^3.7.1: eslint-scope@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" @@ -2025,10 +2508,12 @@ eslint-scope@^4.0.0: eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== eslint@^4.19.1: version "4.19.1" resolved "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" + integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -2072,6 +2557,7 @@ eslint@^4.19.1: espree@^3.5.4: version "3.5.4" resolved "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" @@ -2079,38 +2565,46 @@ espree@^3.5.4: esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE= esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== dependencies: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= events@^1.0.0: version "1.1.1" resolved "http://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" @@ -2118,6 +2612,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== dependencies: cross-spawn "^6.0.0" get-stream "^3.0.0" @@ -2130,18 +2625,21 @@ execa@^0.10.0: execall@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" + integrity sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M= dependencies: clone-regexp "^1.0.0" expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= dependencies: is-posix-bracket "^0.1.0" expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" define-property "^0.2.5" @@ -2154,24 +2652,28 @@ expand-brackets@^2.1.4: expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= dependencies: fill-range "^2.1.0" expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" @@ -2179,10 +2681,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== external-editor@^2.0.4: version "2.2.0" resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -2191,12 +2695,14 @@ external-editor@^2.0.4: extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= dependencies: is-extglob "^1.0.0" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -2210,6 +2716,7 @@ extglob@^2.0.4: extract-text-webpack-plugin@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" + integrity sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ== dependencies: async "^2.4.1" loader-utils "^1.1.0" @@ -2219,14 +2726,17 @@ extract-text-webpack-plugin@^3.0.2: fast-deep-equal@^1.0.0: version "1.1.0" resolved "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-glob@^2.0.2: version "2.2.3" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" + integrity sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA== dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" "@nodelib/fs.stat" "^1.0.1" @@ -2238,24 +2748,39 @@ fast-glob@^2.0.2: fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-safe-stringify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz#04b26106cc56681f51a044cfc0d76cf0008ac2c2" + integrity sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg== fastparse@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fecha@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -2263,10 +2788,12 @@ file-entry-cache@^2.0.0: filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== dependencies: is-number "^2.1.0" isobject "^2.0.0" @@ -2277,6 +2804,7 @@ fill-range@^2.1.0: fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" @@ -2286,6 +2814,7 @@ fill-range@^4.0.0: find-cache-dir@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= dependencies: commondir "^1.0.1" mkdirp "^0.5.1" @@ -2294,6 +2823,7 @@ find-cache-dir@^0.1.1: find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= dependencies: commondir "^1.0.1" make-dir "^1.0.0" @@ -2302,6 +2832,7 @@ find-cache-dir@^1.0.0: find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" @@ -2309,18 +2840,21 @@ find-up@^1.0.0: find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= dependencies: locate-path "^2.0.0" find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + integrity sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE= dependencies: circular-json "^0.3.1" del "^2.0.2" @@ -2330,10 +2864,12 @@ flat-cache@^1.2.1: flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== dependencies: inherits "^2.0.1" readable-stream "^2.0.4" @@ -2341,22 +2877,26 @@ flush-write-stream@^1.0.0: for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= dependencies: for-in "^1.0.1" fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -2364,12 +2904,14 @@ from2@^2.1.0: fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== dependencies: minipass "^2.2.1" fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -2379,10 +2921,12 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== dependencies: nan "^2.9.2" node-pre-gyp "^0.10.0" @@ -2390,14 +2934,17 @@ fsevents@^1.2.2: function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2411,22 +2958,27 @@ gauge@~2.7.3: get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== get-stream@^3.0.0: version "3.0.0" resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" @@ -2434,12 +2986,14 @@ glob-base@^0.3.0: glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= dependencies: is-glob "^2.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" @@ -2447,10 +3001,12 @@ glob-parent@^3.1.0: glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2462,10 +3018,12 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: global-modules-path@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc" + integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag== global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -2474,6 +3032,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -2484,10 +3043,12 @@ global-prefix@^1.0.1: globals@^11.0.1, globals@^11.1.0: version "11.8.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" + integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA== globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + integrity sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0= dependencies: array-union "^1.0.1" arrify "^1.0.0" @@ -2499,6 +3060,7 @@ globby@^5.0.0: globby@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + integrity sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw== dependencies: array-union "^1.0.1" dir-glob "^2.0.0" @@ -2511,42 +3073,51 @@ globby@^8.0.0: globjoin@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM= gonzales-pe@^4.0.3, gonzales-pe@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz#41091703625433285e0aee3aa47829fc1fbeb6f2" + integrity sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw== dependencies: minimist "1.1.x" graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" has-values "^0.1.4" @@ -2555,6 +3126,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" has-values "^1.0.0" @@ -2563,10 +3135,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" kind-of "^4.0.0" @@ -2574,12 +3148,14 @@ has-values@^1.0.0: has@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -2587,6 +3163,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.5" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + integrity sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" @@ -2594,6 +3171,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -2602,32 +3180,39 @@ hmac-drbg@^1.0.0: home-or-tmp@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" + integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== html-janitor@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/html-janitor/-/html-janitor-2.0.4.tgz#ae5a115cdf3331cd5501edd7b5471b18ea44cdbb" + integrity sha512-92J5h9jNZRk30PMHapjHEJfkrBWKCOy0bq3oW2pBungky6lzYSoboBGPMvxl1XRKB2q+kniQmsLsPbdpY7RM2g== html-tags@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= htmlparser2@^3.9.2: version "3.10.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" + integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" @@ -2639,6 +3224,7 @@ htmlparser2@^3.9.2: htmlparser2@~3.8.1: version "3.8.3" resolved "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" + integrity sha1-mWwosZFRaovoZQGn15dX5ccMEGg= dependencies: domelementtype "1" domhandler "2.3" @@ -2649,64 +3235,77 @@ htmlparser2@~3.8.1: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= iconv-lite@^0.4.17, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= icss-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= dependencies: postcss "^6.0.1" ieee754@^1.1.4: version "1.1.12" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== dependencies: minimatch "^3.0.4" ignore@^3.3.3, ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== ignore@^4.0.0: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-lazy@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" @@ -2714,22 +3313,27 @@ import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" @@ -2737,18 +3341,22 @@ inflight@^1.0.4: inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -2768,44 +3376,53 @@ inquirer@^3.0.6: interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-alphabetical@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz#1fa6e49213cb7885b75d15862fb3f3d96c884f41" + integrity sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg== is-alphanumeric@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" + integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= is-alphanumerical@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz#1138e9ae5040158dc6ff76b820acd6b7a181fd40" + integrity sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg== dependencies: is-alphabetical "^1.0.0" is-decimal "^1.0.0" @@ -2813,54 +3430,65 @@ is-alphanumerical@^1.0.0: is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== is-builtin-module@^1.0.0: version "1.0.0" resolved "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= dependencies: builtin-modules "^1.0.0" is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= is-decimal@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz#894662d6a8709d307f3a276ca4339c8fa5dff0ff" + integrity sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg== is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -2869,6 +3497,7 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -2877,216 +3506,262 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= dependencies: is-extglob "^1.0.0" is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= dependencies: is-extglob "^2.1.1" is-hexadecimal@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz#b6e710d7d07bb66b98cb8cece5c9b4921deeb835" + integrity sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A== is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== is-obj@^1.0.0: version "1.0.1" resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= is-path-in-cwd@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= dependencies: path-is-inside "^1.0.1" is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= dependencies: has "^1.0.1" is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-supported-regexp-flag@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" + integrity sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ== is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + integrity sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk= dependencies: html-comment-regex "^1.1.0" is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== dependencies: has-symbols "^1.0.0" is-whitespace-character@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed" + integrity sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ== is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-word-character@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz#46a5dac3f2a1840898b91e576cd40d493f3ae553" + integrity sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA== isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isnumeric@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/isnumeric/-/isnumeric-0.2.0.tgz#a2347ba360de19e33d0ffd590fddf7755cbf2e64" + integrity sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ= isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= js-base64@^2.1.9: version "2.4.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" + integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ== js-levenshtein@^1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" + integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -3094,6 +3769,7 @@ js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + integrity sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A= dependencies: argparse "^1.0.7" esprima "^2.6.0" @@ -3101,68 +3777,90 @@ js-yaml@~3.7.0: jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + integrity sha1-5CGiqOINawgZ3yiQj3glJrlt0f4= jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= json5@^0.5.0: version "0.5.1" resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== known-css-properties@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.9.0.tgz#28f8a7134cfa3b0aa08b1e5edf64a57f64fc23af" + integrity sha512-2G/A/8XPhH6MmuVgl079wYsgdqfXE3cfm62txk/ajS4wvRWo6tEHcgQCJCHOOy12Fse1Sxlbf7/IJBpR9hnVew== + +kuler@1.0.x: + version "1.0.1" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6" + integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ== + dependencies: + colornames "^1.1.1" lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: invert-kv "^2.0.0" leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" @@ -3170,6 +3868,7 @@ levn@^0.3.0, levn@~0.3.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -3179,6 +3878,7 @@ load-json-file@^4.0.0: loader-fs-cache@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" + integrity sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw= dependencies: find-cache-dir "^0.1.1" mkdirp "0.5.1" @@ -3186,10 +3886,12 @@ loader-fs-cache@^1.0.0: loader-runner@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -3198,6 +3900,7 @@ loader-utils@^1.0.2, loader-utils@^1.1.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -3205,6 +3908,7 @@ locate-path@^2.0.0: locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" @@ -3212,22 +3916,27 @@ locate-path@^3.0.0: lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.template@^4.2.4: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + integrity sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A= dependencies: lodash._reinterpolate "~3.0.0" lodash.templatesettings "^4.0.0" @@ -3235,40 +3944,59 @@ lodash.template@^4.2.4: lodash.templatesettings@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY= dependencies: lodash._reinterpolate "~3.0.0" lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@^3.2.0: version "3.10.1" resolved "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= lodash@^4.17.10, lodash@^4.17.4, lodash@^4.3.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== log-symbols@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== dependencies: chalk "^2.0.1" +logform@^1.9.1: + version "1.10.0" + resolved "https://registry.yarnpkg.com/logform/-/logform-1.10.0.tgz#c9d5598714c92b546e23f4e78147c40f1e02012e" + integrity sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg== + dependencies: + colors "^1.2.1" + fast-safe-stringify "^2.0.4" + fecha "^2.3.3" + ms "^2.1.1" + triple-beam "^1.2.0" + longest-streak@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz#2421b6ba939a443bb9ffebf596585a50b4c38e2e" + integrity sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA== loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" @@ -3276,6 +4004,7 @@ loud-rejection@^1.0.0: lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + integrity sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -3283,56 +4012,68 @@ lru-cache@^4.0.1, lru-cache@^4.1.1: make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== dependencies: pify "^3.0.0" map-age-cleaner@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ== dependencies: p-defer "^1.0.0" map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" markdown-escapes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz#e639cbde7b99c841c0bacc8a07982873b46d2122" + integrity sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA== markdown-table@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz#c78db948fa879903a41bce522e3b96f801c63786" + integrity sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw== math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + integrity sha1-3oGf282E3M2PrlnGrreWFbnSZqw= math-random@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= mathml-tag-names@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz#490b70e062ee24636536e3d9481e333733d00f2c" + integrity sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg== md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -3341,12 +4082,14 @@ md5.js@^1.3.4: mdast-util-compact@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz#c12ebe16fffc84573d3e19767726de226e95f649" + integrity sha512-d2WS98JSDVbpSsBfVvD9TaDMlqPRz7ohM/11G0rp5jOBb5q96RJ6YLszQ/09AAixyzh23FeIpCGqfaamEADtWg== dependencies: unist-util-visit "^1.1.0" mem@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== dependencies: map-age-cleaner "^0.1.1" mimic-fn "^1.0.0" @@ -3355,6 +4098,7 @@ mem@^4.0.0: memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" @@ -3362,6 +4106,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: meow@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" + integrity sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig== dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" @@ -3376,10 +4121,12 @@ meow@^5.0.0: merge2@^1.2.1: version "1.2.3" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" @@ -3398,6 +4145,7 @@ micromatch@^2.3.11: micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -3416,6 +4164,7 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" @@ -3423,24 +4172,29 @@ miller-rabin@^4.0.0: mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist-options@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== dependencies: arrify "^1.0.1" is-plain-obj "^1.1.0" @@ -3448,18 +4202,22 @@ minimist-options@^3.0.1: minimist@0.0.8: version "0.0.8" resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@1.1.x: version "1.1.3" resolved "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" + integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= minimist@^1.2.0: version "1.2.0" resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minipass@^2.2.1, minipass@^2.3.4: version "2.3.5" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" @@ -3467,12 +4225,14 @@ minipass@^2.2.1, minipass@^2.3.4: minizlib@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" + integrity sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg== dependencies: minipass "^2.2.1" mississippi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -3488,6 +4248,7 @@ mississippi@^2.0.0: mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" @@ -3495,12 +4256,14 @@ mixin-deep@^1.2.0: mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -3512,22 +4275,27 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= nan@^2.9.2: version "2.11.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" + integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA== nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -3544,10 +4312,12 @@ nanomatch@^1.2.9: natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: version "2.2.4" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -3556,14 +4326,17 @@ needle@^2.2.1: neo-async@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -3592,10 +4365,12 @@ node-libs-browser@^2.0.0: node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-pre-gyp@^0.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -3608,15 +4383,24 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-releases@^1.0.0-alpha.12: + version "1.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.12.tgz#32e461b879ea76ac674e511d9832cf29da345268" + integrity sha512-VPB4rTPqpVyWKBHbSa4YPFme3+8WHsOSpvbp0Mfj0bWsC8TEjt4HQrLl1hsBDELlp1nB4lflSgSuGTYiuyaP7Q== + dependencies: + semver "^5.3.0" + node-releases@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.3.tgz#3414ed84595096459c251699bfcb47d88324a9e4" + integrity sha512-ZaZWMsbuDcetpHmYeKWPO6e63pSXLb50M7lJgCbcM2nC/nQC3daNifmtp5a2kp7EWwYfhuvH6zLPWkrF8IiDdw== dependencies: semver "^5.3.0" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -3624,6 +4408,7 @@ nopt@^4.0.1: normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" @@ -3633,20 +4418,24 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-selector@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= normalize-url@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" @@ -3656,10 +4445,12 @@ normalize-url@^1.4.0: npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== npm-packlist@^1.1.6: version "1.1.12" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -3667,12 +4458,14 @@ npm-packlist@^1.1.6: npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -3682,24 +4475,29 @@ npmlog@^4.0.2: nth-check@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" @@ -3708,20 +4506,24 @@ object-copy@^0.1.0: object-hash@^1.1.4: version "1.3.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" + integrity sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ== object-keys@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= dependencies: define-properties "^1.1.2" es-abstract "^1.5.1" @@ -3729,6 +4531,7 @@ object.getownpropertydescriptors@^2.0.3: object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= dependencies: for-own "^0.1.4" is-extendable "^0.1.1" @@ -3736,28 +4539,38 @@ object.omit@^2.0.0: object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" +one-time@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e" + integrity sha1-+M33eISCb+Tf+T46nMN7HkSAdC4= + onecolor@^3.0.4: version "3.1.0" resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.1.0.tgz#b72522270a49569ac20d244b3cd40fe157fda4d2" + integrity sha512-YZSypViXzu3ul5LMu/m6XjJ9ol8qAy9S2VjHl5E6UlhUH1KGKWabyEJifn0Jjpw23bYDzC2ucKMPGiH5kfwSGQ== onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" @@ -3769,14 +4582,17 @@ optionator@^0.8.2: os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== dependencies: execa "^0.10.0" lcid "^2.0.0" @@ -3785,10 +4601,12 @@ os-locale@^3.0.0: os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" @@ -3796,54 +4614,65 @@ osenv@^0.1.4: p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^1.1.0: version "1.1.0" resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" p-limit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== dependencies: p-try "^2.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= p-try@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: cyclist "~0.2.2" inherits "^2.0.3" @@ -3852,6 +4681,7 @@ parallel-transform@^1.1.0: parse-asn1@^5.0.0: version "5.1.1" resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -3862,6 +4692,7 @@ parse-asn1@^5.0.0: parse-entities@^1.0.2, parse-entities@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz#9deac087661b2e36814153cb78d7e54a4c5fd6f4" + integrity sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g== dependencies: character-entities "^1.0.0" character-entities-legacy "^1.0.0" @@ -3873,6 +4704,7 @@ parse-entities@^1.0.2, parse-entities@^1.1.0: parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" @@ -3882,6 +4714,7 @@ parse-glob@^3.0.4: parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -3889,54 +4722,66 @@ parse-json@^4.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== dependencies: pify "^3.0.0" path@^0.12.7: version "0.12.7" resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8= dependencies: process "^0.11.1" util "^0.10.3" @@ -3944,6 +4789,7 @@ path@^0.12.7: pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -3954,34 +4800,41 @@ pbkdf2@^3.0.3: pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pirates@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.0.tgz#850b18781b4ac6ec58a43c9ed9ec5fe6796addbd" + integrity sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA== dependencies: node-modules-regexp "^1.0.0" pixrem@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-4.0.1.tgz#2da4a1de6ec4423c5fc3794e930b81d4490ec686" + integrity sha1-LaSh3m7EQjxfw3lOkwuB1EkOxoY= dependencies: browserslist "^2.0.0" postcss "^6.0.0" @@ -3990,24 +4843,28 @@ pixrem@^4.0.0: pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= dependencies: find-up "^2.1.0" pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pleeease-filters@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pleeease-filters/-/pleeease-filters-4.0.0.tgz#6632b2fb05648d2758d865384fbced79e1ccaec7" + integrity sha1-ZjKy+wVkjSdY2GU4T7zteeHMrsc= dependencies: onecolor "^3.0.4" postcss "^6.0.1" @@ -4015,14 +4872,17 @@ pleeease-filters@^4.0.0: pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-apply@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.10.0.tgz#50cc982b7a58a335f9be96a277fc2d8792e760dc" + integrity sha512-h0jVwtwViCo0wu+l3hEa9+RNlFbwpeVBYKRBF1K6Kqwat9egE3dDTZsUrQ9YyNE/AP3WWC5G2/oXQAezWPOJnw== dependencies: babel-runtime "^6.26.0" balanced-match "^1.0.0" @@ -4031,6 +4891,7 @@ postcss-apply@^0.10.0: postcss-apply@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/postcss-apply/-/postcss-apply-0.8.0.tgz#14e544bbb5cb6f1c1e048857965d79ae066b1343" + integrity sha1-FOVEu7XLbxweBIhXll15rgZrE0M= dependencies: babel-runtime "^6.23.0" balanced-match "^0.4.2" @@ -4039,6 +4900,7 @@ postcss-apply@^0.8.0: postcss-attribute-case-insensitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz#94dc422c8f90997f16bd33a3654bbbec084963b4" + integrity sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q= dependencies: postcss "^6.0.0" postcss-selector-parser "^2.2.3" @@ -4046,6 +4908,7 @@ postcss-attribute-case-insensitive@^2.0.0: postcss-calc@^5.2.0: version "5.3.1" resolved "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + integrity sha1-d7rnypKK2FcW4v2kLyYb98HWW14= dependencies: postcss "^5.0.2" postcss-message-helpers "^2.0.0" @@ -4054,6 +4917,7 @@ postcss-calc@^5.2.0: postcss-calc@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-6.0.2.tgz#4d9a43e27dbbf27d095fecb021ac6896e2318337" + integrity sha512-fiznXjEN5T42Qm7qqMCVJXS3roaj9r4xsSi+meaBVe7CJBl8t/QLOXu02Z2E6oWAMWIvCuF6JrvzFekmVEbOKA== dependencies: css-unit-converter "^1.1.1" postcss "^7.0.2" @@ -4063,6 +4927,7 @@ postcss-calc@^6.0.0: postcss-color-function@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-color-function/-/postcss-color-function-4.0.1.tgz#402b3f2cebc3f6947e618fb6be3654fbecef6444" + integrity sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ= dependencies: css-color-function "~1.3.3" postcss "^6.0.1" @@ -4072,6 +4937,7 @@ postcss-color-function@^4.0.0: postcss-color-gray@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-4.1.0.tgz#e5581ed57eaa826fb652ca11b1e2b7b136a9f9df" + integrity sha512-L4iLKQLdqChz6ZOgGb6dRxkBNw78JFYcJmBz1orHpZoeLtuhDDGegRtX9gSyfoCIM7rWZ3VNOyiqqvk83BEN+w== dependencies: color "^2.0.1" postcss "^6.0.14" @@ -4081,6 +4947,7 @@ postcss-color-gray@^4.0.0: postcss-color-hex-alpha@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz#1e53e6c8acb237955e8fd08b7ecdb1b8b8309f95" + integrity sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U= dependencies: color "^1.0.3" postcss "^6.0.1" @@ -4089,6 +4956,7 @@ postcss-color-hex-alpha@^3.0.0: postcss-color-hsl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz#12703666fa310430e3f30a454dac1386317d5844" + integrity sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ= dependencies: postcss "^6.0.1" postcss-value-parser "^3.3.0" @@ -4097,6 +4965,7 @@ postcss-color-hsl@^2.0.0: postcss-color-hwb@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz#3402b19ef4d8497540c1fb5072be9863ca95571e" + integrity sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4= dependencies: color "^1.0.3" postcss "^6.0.1" @@ -4106,6 +4975,7 @@ postcss-color-hwb@^3.0.0: postcss-color-mod-function@^2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-2.4.3.tgz#14a97f5b17a5f19396e9dea7ffcb5be732592baf" + integrity sha512-TEATRHN1m2+vM4efwRoPyrAQTbBA4xgx1jSMPv64oLcwVFC4qr6d4o9DAD5LxygIMeBBBugQHvXoSIM+87NaFQ== dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^6.0.23" @@ -4114,6 +4984,7 @@ postcss-color-mod-function@^2.4.3: postcss-color-rebeccapurple@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.1.0.tgz#ce1269ecc2d0d8bf92aab44bd884e633124c33ec" + integrity sha512-212hJUk9uSsbwO5ECqVjmh/iLsmiVL1xy9ce9TVf+X3cK/ZlUIlaMdoxje/YpsL9cmUH3I7io+/G2LyWx5rg1g== dependencies: postcss "^6.0.22" postcss-values-parser "^1.5.0" @@ -4121,6 +4992,7 @@ postcss-color-rebeccapurple@^3.0.0: postcss-color-rgb@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz#14539c8a7131494b482e0dd1cc265ff6514b5263" + integrity sha1-FFOcinExSUtILg3RzCZf9lFLUmM= dependencies: postcss "^6.0.1" postcss-value-parser "^3.3.0" @@ -4128,6 +5000,7 @@ postcss-color-rgb@^2.0.0: postcss-color-rgba-fallback@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz#37d5c9353a07a09270912a82606bb42a0d702c04" + integrity sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ= dependencies: postcss "^6.0.6" postcss-value-parser "^3.3.0" @@ -4136,6 +5009,7 @@ postcss-color-rgba-fallback@^3.0.0: postcss-colormin@^2.1.8: version "2.2.2" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + integrity sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks= dependencies: colormin "^1.0.5" postcss "^5.0.13" @@ -4144,6 +5018,7 @@ postcss-colormin@^2.1.8: postcss-convert-values@^2.3.4: version "2.6.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + integrity sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0= dependencies: postcss "^5.0.11" postcss-value-parser "^3.1.2" @@ -4151,6 +5026,7 @@ postcss-convert-values@^2.3.4: postcss-cssnext@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz#927dc29341a938254cde38ea60a923b9dfedead9" + integrity sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA== dependencies: autoprefixer "^7.1.1" caniuse-api "^2.0.0" @@ -4187,12 +5063,14 @@ postcss-cssnext@^3.1.0: postcss-custom-media@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz#be532784110ecb295044fb5395a18006eb21a737" + integrity sha1-vlMnhBEOyylQRPtTlaGABushpzc= dependencies: postcss "^6.0.1" postcss-custom-properties@^6.1.0: version "6.3.1" resolved "http://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-6.3.1.tgz#5c52abde313d7ec9368c4abf67d27a656cba8b39" + integrity sha512-zoiwn4sCiUFbr4KcgcNZLFkR6gVQom647L+z1p/KBVHZ1OYwT87apnS42atJtx6XlX2yI7N5fjXbFixShQO2QQ== dependencies: balanced-match "^1.0.0" postcss "^6.0.18" @@ -4200,6 +5078,7 @@ postcss-custom-properties@^6.1.0: postcss-custom-properties@^7.0.0: version "7.0.0" resolved "http://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz#24dc4fbe6d6ed550ea4fd3b11204660e9ffa3b33" + integrity sha512-dl/CNaM6z2RBa0vZZqsV6Hunj4HD6Spu7FcAkiVp5B2tgm6xReKKYzI7x7QNx3wTMBNj5v+ylfVcQGMW4xdkHw== dependencies: balanced-match "^1.0.0" postcss "^6.0.18" @@ -4207,6 +5086,7 @@ postcss-custom-properties@^7.0.0: postcss-custom-selectors@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz#781382f94c52e727ef5ca4776ea2adf49a611382" + integrity sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I= dependencies: postcss "^6.0.1" postcss-selector-matches "^3.0.0" @@ -4214,30 +5094,35 @@ postcss-custom-selectors@^4.0.1: postcss-discard-comments@^2.0.4: version "2.0.4" resolved "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + integrity sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0= dependencies: postcss "^5.0.14" postcss-discard-duplicates@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + integrity sha1-uavye4isGIFYpesSq8riAmO5GTI= dependencies: postcss "^5.0.4" postcss-discard-empty@^2.0.1: version "2.1.0" resolved "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + integrity sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU= dependencies: postcss "^5.0.14" postcss-discard-overridden@^0.1.1: version "0.1.1" resolved "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + integrity sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg= dependencies: postcss "^5.0.16" postcss-discard-unused@^2.2.1: version "2.2.3" resolved "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + integrity sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM= dependencies: postcss "^5.0.14" uniqs "^2.0.0" @@ -4245,30 +5130,35 @@ postcss-discard-unused@^2.2.1: postcss-filter-plugins@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" + integrity sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ== dependencies: postcss "^5.0.4" postcss-font-family-system-ui@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz#675fe7a9e029669f05f8dba2e44c2225ede80623" + integrity sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw== dependencies: postcss "^6.0" postcss-font-variant@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz#08ccc88f6050ba82ed8ef2cc76c0c6a6b41f183e" + integrity sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4= dependencies: postcss "^6.0.1" postcss-html@^0.34.0: version "0.34.0" resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.34.0.tgz#9bfd637ad8c3d3a43625b5ef844dc804b3370868" + integrity sha512-BIW982Kbf9/RikInNhNS3/GA6x/qY/+jhVS9KumqXZtU9ss8Yq15HhPJ6mnaXcU5bFq2ULxpOv96mHPAErpGMQ== dependencies: htmlparser2 "^3.9.2" postcss-image-set-polyfill@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz#0f193413700cf1f82bd39066ef016d65a4a18181" + integrity sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE= dependencies: postcss "^6.0.1" postcss-media-query-parser "^0.2.3" @@ -4276,6 +5166,7 @@ postcss-image-set-polyfill@^0.3.5: postcss-initial@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-2.0.0.tgz#72715f7336e0bb79351d99ee65c4a253a8441ba4" + integrity sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q= dependencies: lodash.template "^4.2.4" postcss "^6.0.1" @@ -4283,6 +5174,7 @@ postcss-initial@^2.0.0: postcss-jsx@^0.35.0: version "0.35.0" resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.35.0.tgz#1d6cb82393994cdc7e9aa421648e3f0f3f98209b" + integrity sha512-AU2/9QDmHYJRxTiniMt2bJ9fwCzVF6n00VnR4gdnFGHeXRW2mGwoptpuPgYjfivkdI8LlNIuo+w8TyS6a4JhJw== dependencies: "@babel/core" "^7.1.2" optionalDependencies: @@ -4291,12 +5183,14 @@ postcss-jsx@^0.35.0: postcss-less@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-3.0.2.tgz#9cf94e2cc90f8566858939e278fb9f0b713908df" + integrity sha512-+JBOampmDnuaf4w8OIEqkCiF+sOm/nWukDsC+1FTrYcIstptOISzGpYZk24Qh+Ewlmzmi53sRyiTbiGvMCDRwA== dependencies: postcss "^7.0.3" postcss-load-config@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" + integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ== dependencies: cosmiconfig "^4.0.0" import-cwd "^2.0.0" @@ -4304,6 +5198,7 @@ postcss-load-config@^2.0.0: postcss-loader@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" + integrity sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg== dependencies: loader-utils "^1.1.0" postcss "^6.0.0" @@ -4313,6 +5208,7 @@ postcss-loader@^2.1.6: postcss-markdown@^0.34.0: version "0.34.0" resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.34.0.tgz#7a043e6eee3ab846a4cefe3ab43d141038e2da79" + integrity sha512-cKPggF9OMOKPoqDm5YpYszCqMsImFh78FK6P8p6IsEKZB6IkUJYKz0/QgadYy4jLb60jcFIHJ6v6jsMH7/ZQrA== dependencies: remark "^9.0.0" unist-util-find-all-after "^1.0.2" @@ -4320,16 +5216,19 @@ postcss-markdown@^0.34.0: postcss-media-minmax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz#675256037a43ef40bc4f0760bfd06d4dc69d48d2" + integrity sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI= dependencies: postcss "^6.0.1" postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ= postcss-merge-idents@^2.1.5: version "2.1.7" resolved "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + integrity sha1-TFUwMTwI4dWzu/PSu8dH4njuonA= dependencies: has "^1.0.1" postcss "^5.0.10" @@ -4338,12 +5237,14 @@ postcss-merge-idents@^2.1.5: postcss-merge-longhand@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + integrity sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg= dependencies: postcss "^5.0.4" postcss-merge-rules@^2.0.3: version "2.1.2" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + integrity sha1-0d9d+qexrMO+VT8OnhDofGG19yE= dependencies: browserslist "^1.5.2" caniuse-api "^1.5.2" @@ -4354,10 +5255,12 @@ postcss-merge-rules@^2.0.3: postcss-message-helpers@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + integrity sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4= postcss-minify-font-values@^1.0.2: version "1.0.5" resolved "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + integrity sha1-S1jttWZB66fIR0qzUmyv17vey2k= dependencies: object-assign "^4.0.1" postcss "^5.0.4" @@ -4366,6 +5269,7 @@ postcss-minify-font-values@^1.0.2: postcss-minify-gradients@^1.0.1: version "1.0.5" resolved "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + integrity sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE= dependencies: postcss "^5.0.12" postcss-value-parser "^3.3.0" @@ -4373,6 +5277,7 @@ postcss-minify-gradients@^1.0.1: postcss-minify-params@^1.0.4: version "1.2.2" resolved "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + integrity sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM= dependencies: alphanum-sort "^1.0.1" postcss "^5.0.2" @@ -4382,6 +5287,7 @@ postcss-minify-params@^1.0.4: postcss-minify-selectors@^2.0.4: version "2.1.1" resolved "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + integrity sha1-ssapjAByz5G5MtGkllCBFDEXNb8= dependencies: alphanum-sort "^1.0.2" has "^1.0.1" @@ -4391,12 +5297,14 @@ postcss-minify-selectors@^2.0.4: postcss-modules-extract-imports@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== dependencies: postcss "^6.0.1" postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" @@ -4404,6 +5312,7 @@ postcss-modules-local-by-default@^1.2.0: postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" @@ -4411,6 +5320,7 @@ postcss-modules-scope@^1.1.0: postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" @@ -4418,6 +5328,7 @@ postcss-modules-values@^1.3.0: postcss-nested-ancestors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-nested-ancestors/-/postcss-nested-ancestors-2.0.0.tgz#957ef27fb9e37cb082786d95b5e310d4b47470fe" + integrity sha512-r8WbA1XLqbDuOGdCWpQ5nXdHvL4eKdnCEcDAnUlIAUHk7ZIQAESqPdxrWGPlq70ZB+FKw4wPbX1850dgFuxUKQ== dependencies: escape-string-regexp "^1.0.5" postcss "^6.0.0" @@ -4426,6 +5337,7 @@ postcss-nested-ancestors@^2.0.0: postcss-nested@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-3.0.0.tgz#cde40bd07a078565f3df72e2dc2665871c724852" + integrity sha512-1xxmLHSfubuUi6xZZ0zLsNoiKfk3BWQj6fkNMaBJC529wKKLcdeCxXt6KJmDLva+trNyQNwEaE/ZWMA7cve1fA== dependencies: postcss "^6.0.14" postcss-selector-parser "^3.1.1" @@ -4433,24 +5345,28 @@ postcss-nested@^3.0.0: postcss-nesting@^4.0.1: version "4.2.1" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-4.2.1.tgz#0483bce338b3f0828ced90ff530b29b98b00300d" + integrity sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA== dependencies: postcss "^6.0.11" postcss-nesting@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-6.0.0.tgz#4c45276a065765ec063efe1e4daf75c131518991" + integrity sha512-Yoglsy6eZbDCbRIXoYSmnIt9ao4xyg07iFwVBd7WyIkDzMSeRxIqUk8xEAdkeJQ7eGfWo6RufrTU7FSUjZ22fg== dependencies: postcss "^6.0.22" postcss-normalize-charset@^1.1.0: version "1.1.1" resolved "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + integrity sha1-757nEhLX/nWceO0WL2HtYrXLk/E= dependencies: postcss "^5.0.5" postcss-normalize-url@^3.0.7: version "3.0.8" resolved "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + integrity sha1-EI90s/L82viRov+j6kWSJ5/HgiI= dependencies: is-absolute-url "^2.0.0" normalize-url "^1.4.0" @@ -4460,6 +5376,7 @@ postcss-normalize-url@^3.0.7: postcss-ordered-values@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + integrity sha1-7sbCpntsQSqNsgQud/6NpD+VwR0= dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.1" @@ -4467,6 +5384,7 @@ postcss-ordered-values@^2.1.0: postcss-pseudo-class-any-link@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz#9152a0613d3450720513e8892854bae42d0ee68e" + integrity sha1-kVKgYT00UHIFE+iJKFS65C0O5o4= dependencies: postcss "^6.0.1" postcss-selector-parser "^2.2.3" @@ -4474,12 +5392,14 @@ postcss-pseudo-class-any-link@^4.0.0: postcss-pseudoelements@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/postcss-pseudoelements/-/postcss-pseudoelements-5.0.0.tgz#eef194e8d524645ca520a949e95e518e812402cb" + integrity sha1-7vGU6NUkZFylIKlJ6V5RjoEkAss= dependencies: postcss "^6.0.0" postcss-reduce-idents@^2.2.2: version "2.4.0" resolved "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + integrity sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM= dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.2" @@ -4487,12 +5407,14 @@ postcss-reduce-idents@^2.2.2: postcss-reduce-initial@^1.0.0: version "1.0.1" resolved "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + integrity sha1-aPgGlfBF0IJjqHmtJA343WT2ROo= dependencies: postcss "^5.0.4" postcss-reduce-transforms@^1.0.3: version "1.0.4" resolved "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + integrity sha1-/3b02CEkN7McKYpC0uFEQCV3GuE= dependencies: has "^1.0.1" postcss "^5.0.8" @@ -4501,12 +5423,14 @@ postcss-reduce-transforms@^1.0.3: postcss-replace-overflow-wrap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz#794db6faa54f8db100854392a93af45768b4e25b" + integrity sha1-eU22+qVPjbEAhUOSqTr0V2i04ls= dependencies: postcss "^6.0.1" postcss-reporter@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.0.tgz#44c873129d8c029a430b6d2186210d79c8de88b8" + integrity sha512-5xQXm1UPWuFObjbtyQzWvQaupru8yFcFi4HUlm6OPo1o2bUszYASuqRJ7bVArb3svGCdbYtqdMBKrqR1Aoy+tw== dependencies: chalk "^2.0.1" lodash "^4.17.4" @@ -4516,16 +5440,19 @@ postcss-reporter@^6.0.0: postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4= postcss-safe-parser@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== dependencies: postcss "^7.0.0" postcss-sass@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.2.0.tgz#e55516441e9526ba4b380a730d3a02e9eaa78c7a" + integrity sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg== dependencies: gonzales-pe "^4.0.3" postcss "^6.0.6" @@ -4533,6 +5460,7 @@ postcss-sass@^0.2.0: postcss-sass@^0.3.0: version "0.3.5" resolved "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz#6d3e39f101a53d2efa091f953493116d32beb68c" + integrity sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A== dependencies: gonzales-pe "^4.2.3" postcss "^7.0.1" @@ -4540,18 +5468,21 @@ postcss-sass@^0.3.0: postcss-scss@^1.0.2: version "1.0.6" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-1.0.6.tgz#ab903f3bb20161bc177896462293a53d4bff5f7a" + integrity sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww== dependencies: postcss "^6.0.23" postcss-scss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz#248b0a28af77ea7b32b1011aba0f738bda27dea1" + integrity sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug== dependencies: postcss "^7.0.0" postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-3.0.1.tgz#e5634011e13950881861bbdd58c2d0111ffc96ab" + integrity sha1-5WNAEeE5UIgYYbvdWMLQER/8lqs= dependencies: balanced-match "^0.4.2" postcss "^6.0.1" @@ -4559,6 +5490,7 @@ postcss-selector-matches@^3.0.0, postcss-selector-matches@^3.0.1: postcss-selector-not@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-3.0.1.tgz#2e4db2f0965336c01e7cec7db6c60dff767335d9" + integrity sha1-Lk2y8JZTNsAefOx9tsYN/3ZzNdk= dependencies: balanced-match "^0.4.2" postcss "^6.0.1" @@ -4566,6 +5498,7 @@ postcss-selector-not@^3.0.1: postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2, postcss-selector-parser@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + integrity sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A= dependencies: flatten "^1.0.2" indexes-of "^1.0.1" @@ -4574,6 +5507,7 @@ postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2, postcss-selector postcss-selector-parser@^3.1.0, postcss-selector-parser@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= dependencies: dot-prop "^4.1.1" indexes-of "^1.0.1" @@ -4582,6 +5516,7 @@ postcss-selector-parser@^3.1.0, postcss-selector-parser@^3.1.1: postcss-smart-import@^0.7.6: version "0.7.6" resolved "https://registry.yarnpkg.com/postcss-smart-import/-/postcss-smart-import-0.7.6.tgz#259deb84aa28f138458218ecc0e9a84c61ada6a4" + integrity sha512-9OpXaQ1uMMHWafUh0RWIpAKa3xxUDC2yyxicUPpGffH33nzbZG4/z+nk5Ocw5gGZ+3qkXV91iDV23Cmxf2Jhew== dependencies: babel-runtime "^6.26.0" lodash "^4.17.4" @@ -4598,10 +5533,12 @@ postcss-smart-import@^0.7.6: postcss-styled@>=0.34.0, postcss-styled@^0.34.0: version "0.34.0" resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.34.0.tgz#07d47bcb13707289782aa058605fd9feaf84391d" + integrity sha512-Uaeetr/xOiQWGJgzPFOr32/Bwykpfh9TVE26OpmwDb8eEN205TS/gqkt9ri+C6otQzQKXqbMfeZNbKYi7QpeNA== postcss-svgo@^2.1.1: version "2.1.6" resolved "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + integrity sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0= dependencies: is-svg "^2.0.0" postcss "^5.0.14" @@ -4611,10 +5548,12 @@ postcss-svgo@^2.1.1: postcss-syntax@^0.34.0: version "0.34.0" resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.34.0.tgz#4a85c022f1cdecea72102775c91af1e7f506d83a" + integrity sha512-L36NZwq2UK743US+vl1CRMdBRZCBmFYfThP9n9jCFhX1Wfk6BqnRSgt0Fy8q44IwxPee/GCzlo7T1c1JIeUDlQ== postcss-unique-selectors@^2.0.2: version "2.0.2" resolved "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + integrity sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0= dependencies: alphanum-sort "^1.0.1" postcss "^5.0.4" @@ -4623,10 +5562,12 @@ postcss-unique-selectors@^2.0.2: postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== postcss-values-parser@^1.5.0: version "1.5.0" resolved "http://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz#5d9fa63e2bcb0179ce48f3235303765eb89f3047" + integrity sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ== dependencies: flatten "^1.0.2" indexes-of "^1.0.1" @@ -4635,6 +5576,7 @@ postcss-values-parser@^1.5.0: postcss-zindex@^2.0.1: version "2.2.0" resolved "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + integrity sha1-0hCd3AVbka9n/EyzsCWUZjnSryI= dependencies: has "^1.0.1" postcss "^5.0.4" @@ -4643,6 +5585,7 @@ postcss-zindex@^2.0.1: postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + integrity sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg== dependencies: chalk "^1.1.3" js-base64 "^2.1.9" @@ -4652,6 +5595,7 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 postcss@^6.0, postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.14, postcss@^6.0.17, postcss@^6.0.18, postcss@^6.0.21, postcss@^6.0.22, postcss@^6.0.23, postcss@^6.0.5, postcss@^6.0.6: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== dependencies: chalk "^2.4.1" source-map "^0.6.1" @@ -4660,6 +5604,7 @@ postcss@^6.0, postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.11, postcss@^6.0.14, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5: version "7.0.5" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55" + integrity sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ== dependencies: chalk "^2.4.1" source-map "^0.6.1" @@ -4668,52 +5613,64 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.3, postcss@^7.0.5: prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== process@^0.11.1, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" + integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== promise-each@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/promise-each/-/promise-each-2.2.0.tgz#3353174eff2694481037e04e01f77aa0fb6d1b60" + integrity sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A= dependencies: any-promise "^0.1.0" promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -4725,6 +5682,7 @@ public-encrypt@^4.0.0: pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -4732,6 +5690,7 @@ pump@^2.0.0, pump@^2.0.1: pumpify@^1.3.3: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" @@ -4740,22 +5699,27 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -4763,18 +5727,22 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= randomatic@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: is-number "^4.0.0" kind-of "^6.0.0" @@ -4783,12 +5751,14 @@ randomatic@^3.0.0: randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" @@ -4796,10 +5766,12 @@ randomfill@^1.0.3: raw-loader@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -4809,12 +5781,14 @@ rc@^1.2.7: read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= dependencies: pify "^2.3.0" read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" read-pkg "^3.0.0" @@ -4822,6 +5796,7 @@ read-pkg-up@^3.0.0: read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" @@ -4830,6 +5805,7 @@ read-pkg@^3.0.0: "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.6" resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -4842,6 +5818,7 @@ read-pkg@^3.0.0: readable-stream@1.1: version "1.1.13" resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4= dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -4851,6 +5828,7 @@ readable-stream@1.1: "readable-stream@2 || 3", readable-stream@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + integrity sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -4859,6 +5837,7 @@ readable-stream@1.1: readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" @@ -4867,6 +5846,7 @@ readdirp@^2.0.0: redent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa" + integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo= dependencies: indent-string "^3.0.0" strip-indent "^2.0.0" @@ -4874,6 +5854,7 @@ redent@^2.0.0: reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: version "1.3.0" resolved "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + integrity sha1-dHyRTgSWFKTJz7umKYca0dKSdxY= dependencies: balanced-match "^0.4.2" math-expression-evaluator "^1.2.14" @@ -4882,6 +5863,7 @@ reduce-css-calc@^1.2.6, reduce-css-calc@^1.2.7: reduce-css-calc@^2.0.0: version "2.1.5" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-2.1.5.tgz#f283712f0c9708ef952d328f4b16112d57b03714" + integrity sha512-AybiBU03FKbjYzyvJvwkJZY6NLN+80Ufc2EqEs+41yQH+8wqBEslD6eGiS0oIeq5TNLA5PrhBeYHXWdn8gtW7A== dependencies: css-unit-converter "^1.1.1" postcss-value-parser "^3.3.0" @@ -4889,42 +5871,50 @@ reduce-css-calc@^2.0.0: reduce-function-call@^1.0.1, reduce-function-call@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + integrity sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk= dependencies: balanced-match "^0.4.2" regenerate-unicode-properties@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== dependencies: regenerate "^1.4.0" regenerate@^1.2.1, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.11.0, regenerator-runtime@^0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== regenerator-transform@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== dependencies: private "^0.1.6" regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== dependencies: is-equal-shallow "^0.1.3" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" @@ -4932,10 +5922,12 @@ regex-not@^1.0.0, regex-not@^1.0.2: regexpp@^1.0.1: version "1.1.0" resolved "http://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" + integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" @@ -4944,6 +5936,7 @@ regexpu-core@^1.0.0: regexpu-core@^4.1.3, regexpu-core@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" + integrity sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^7.0.0" @@ -4955,26 +5948,31 @@ regexpu-core@^4.1.3, regexpu-core@^4.2.0: regjsgen@^0.2.0: version "0.2.0" resolved "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= regjsgen@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" + integrity sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA== regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= dependencies: jsesc "~0.5.0" regjsparser@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + integrity sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA== dependencies: jsesc "~0.5.0" remark-parse@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz#4c077f9e499044d1d5c13f80d7a98cf7b9285d95" + integrity sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA== dependencies: collapse-white-space "^1.0.2" is-alphabetical "^1.0.0" @@ -4995,6 +5993,7 @@ remark-parse@^5.0.0: remark-stringify@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-5.0.0.tgz#336d3a4d4a6a3390d933eeba62e8de4bd280afba" + integrity sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w== dependencies: ccount "^1.0.0" is-alphanumeric "^1.0.0" @@ -5014,6 +6013,7 @@ remark-stringify@^5.0.0: remark@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark/-/remark-9.0.0.tgz#c5cfa8ec535c73a67c4b0f12bfdbd3a67d8b2f60" + integrity sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A== dependencies: remark-parse "^5.0.0" remark-stringify "^5.0.0" @@ -5022,34 +6022,42 @@ remark@^9.0.0: remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-from-string@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" @@ -5057,12 +6065,14 @@ require-uncached@^1.0.3: resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -5070,28 +6080,34 @@ resolve-dir@^1.0.0: resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== dependencies: path-parse "^1.0.5" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -5099,24 +6115,29 @@ restore-cursor@^2.0.0: ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== rgb-hex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/rgb-hex/-/rgb-hex-2.1.0.tgz#c773c5fe2268a25578d92539a82a7a5ce53beda6" + integrity sha1-x3PF/iJoolV42SU5qCp6XOU77aY= rgb@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/rgb/-/rgb-0.1.0.tgz#be27b291e8feffeac1bd99729721bfa40fc037b5" + integrity sha1-vieykej+/+rBvZlylyG/pA/AN7U= rimraf@^2.2.8, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== dependencies: glob "^7.0.5" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -5124,52 +6145,62 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex@^1.1.0: version "1.1.0" resolved "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== schema-utils@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + integrity sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8= dependencies: ajv "^5.0.0" schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" @@ -5177,18 +6208,22 @@ schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5: "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== serialize-javascript@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -5198,6 +6233,7 @@ set-value@^0.4.3: set-value@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -5207,10 +6243,12 @@ set-value@^2.0.0: setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -5218,36 +6256,43 @@ sha.js@^2.4.0, sha.js@^2.4.8: shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -5256,12 +6301,14 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" @@ -5275,16 +6322,19 @@ snapdragon@^0.8.1: sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== dependencies: atob "^2.1.1" decode-uri-component "^0.2.0" @@ -5295,6 +6345,7 @@ source-map-resolve@^0.5.0: source-map-support@^0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -5302,18 +6353,22 @@ source-map-support@^0.5.9: source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spdx-correct@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" + integrity sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -5321,10 +6376,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -5332,34 +6389,46 @@ spdx-expression-parse@^3.0.0: spdx-license-ids@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz#a59efc09784c2a5bada13cfeaf5c75dd214044d2" + integrity sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg== specificity@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" + integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= ssri@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== dependencies: safe-buffer "^5.1.1" +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + state-toggle@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz#c3cb0974f40a6a0f8e905b96789eb41afa1cde3a" + integrity sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og== static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" object-copy "^0.1.0" @@ -5367,6 +6436,7 @@ static-extend@^0.1.1: stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= dependencies: inherits "~2.0.1" readable-stream "^2.0.2" @@ -5374,6 +6444,7 @@ stream-browserify@^2.0.1: stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" @@ -5381,6 +6452,7 @@ stream-each@^1.1.0: stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -5391,14 +6463,17 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -5407,6 +6482,7 @@ string-width@^1.0.1: "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -5414,16 +6490,19 @@ string-width@^1.0.1: string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= stringify-entities@^1.0.1: version "1.3.2" resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz#a98417e5471fd227b3e45d3db1861c11caf668f7" + integrity sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A== dependencies: character-entities-html4 "^1.0.0" character-entities-legacy "^1.0.0" @@ -5433,38 +6512,46 @@ stringify-entities@^1.0.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-eof@^1.0.0: version "1.0.0" resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI= stylelint@^9.3.0: version "9.7.1" resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.7.1.tgz#522f8795832a9f7e062e5e4105c0e05fb53f827f" + integrity sha512-w3Xxnm2YElBmNAhmTjkTEyklAU2P+R8QMqDVM3S98zRLNPNLcCRXWzqtYsItbZYHQzSNOa6K20KxPVPfD8SFAw== dependencies: autoprefixer "^9.0.0" balanced-match "^1.0.0" @@ -5517,34 +6604,40 @@ stylelint@^9.3.0: sugarss@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.1.tgz#be826d9003e0f247735f92365dc3fd7f1bae9e44" + integrity sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA== dependencies: postcss "^6.0.14" sugarss@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" + integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ== dependencies: postcss "^7.0.2" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= dependencies: has-flag "^1.0.0" supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" svg-sprite-generator@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/svg-sprite-generator/-/svg-sprite-generator-0.0.7.tgz#159777ce3e83e800f255cedd311da761492163e9" + integrity sha1-FZd3zj6D6ADyVc7dMR2nYUkhY+k= dependencies: async "^1.3.0" cheerio "^0.19.0" @@ -5554,10 +6647,12 @@ svg-sprite-generator@0.0.7: svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + integrity sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U= dependencies: coa "~1.0.1" colors "~1.1.2" @@ -5570,6 +6665,7 @@ svgo@^0.7.0: table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== dependencies: ajv "^5.2.3" ajv-keywords "^2.1.0" @@ -5581,6 +6677,7 @@ table@4.0.2: table@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/table/-/table-5.1.0.tgz#69a54644f6f01ad1628f8178715b408dc6bf11f7" + integrity sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg== dependencies: ajv "^6.5.3" lodash "^4.17.10" @@ -5590,10 +6687,12 @@ table@^5.0.0: tapable@^1.0.0, tapable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" + integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA== tar@^4: version "4.4.7" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.7.tgz#14df45023ffdcd0c233befa2fc01ebb76ee39e7c" + integrity sha512-mR3MzsCdN0IEWjZRuF/J9gaWHnTwOvzjqPTcvi1xXgfKTDQRp39gRETPQEfPByAdEOGmZfx1HrRsn8estaEvtA== dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" @@ -5603,13 +6702,20 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= through2@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.4.tgz#e8362dec238b7590f5743b060342f27b452f4450" + integrity sha512-q030OX7royN1Bo549nYMOpKwiGJIzUppv10IgB6ALN6DiJ/XgsRIehiz18x5RWCA3+s4G6ovKqtzgU+pYhjvvg== dependencies: readable-stream "2 || 3" xtend "~4.0.1" @@ -5617,36 +6723,43 @@ through2@^2.0.0: through@^2.3.6: version "2.3.8" resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" repeat-string "^1.6.1" @@ -5654,6 +6767,7 @@ to-regex-range@^2.1.0: to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -5663,26 +6777,37 @@ to-regex@^3.0.1, to-regex@^3.0.2: trim-newlines@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= trim-trailing-lines@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz#e0ec0810fd3c3f1730516b45f49083caaf2774d9" + integrity sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg== trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +triple-beam@^1.2.0, triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== trough@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" + integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw== -ts-loader@^4.4.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-4.5.0.tgz#a1ce70b2dc799941fb2197605f0d67874097859b" +ts-loader@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.0.tgz#4bac24e57bc5189391ab14987d9898ce53ef5cf7" + integrity sha512-lGSNs7szRFj/rK9T1EQuayE3QNLg6izDUxt5jpmq0RG1rU2bapAt7E7uLckLCUPeO1jwxCiet2oRaWovc53UAg== dependencies: chalk "^2.3.0" enhanced-resolve "^4.0.0" @@ -5693,10 +6818,12 @@ ts-loader@^4.4.2: tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tslint-loader@^3.6.0: version "3.6.0" resolved "http://registry.npmjs.org/tslint-loader/-/tslint-loader-3.6.0.tgz#12ed4d5ef57d68be25cd12692fb2108b66469d76" + integrity sha512-Me9Qf/87BOfCY8uJJw+J7VMF4U8WiMXKLhKKKugMydF0xMhMOt9wo2mjYTNhwbF9H7SHh8PAIwRG8roisTNekQ== dependencies: loader-utils "^1.0.2" mkdirp "^0.5.1" @@ -5707,6 +6834,7 @@ tslint-loader@^3.6.0: tslint@^5.11.0: version "5.11.0" resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.11.0.tgz#98f30c02eae3cde7006201e4c33cb08b48581eed" + integrity sha1-mPMMAurjzecAYgHkwzywi0hYHu0= dependencies: babel-code-frame "^6.22.0" builtin-modules "^1.1.1" @@ -5724,30 +6852,36 @@ tslint@^5.11.0: tsutils@^2.27.2: version "2.29.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== dependencies: tslib "^1.8.1" tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c" + integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w== uglify-es@^3.3.4: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== dependencies: commander "~2.13.0" source-map "~0.6.1" @@ -5755,6 +6889,7 @@ uglify-es@^3.3.4: uglifyjs-webpack-plugin@^1.2.4: version "1.3.0" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" + integrity sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw== dependencies: cacache "^10.0.4" find-cache-dir "^1.0.0" @@ -5768,6 +6903,7 @@ uglifyjs-webpack-plugin@^1.2.4: unherit@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz#132748da3e88eab767e08fabfbb89c5e9d28628c" + integrity sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g== dependencies: inherits "^2.0.1" xtend "^4.0.1" @@ -5775,10 +6911,12 @@ unherit@^1.0.4: unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== unicode-match-property-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" @@ -5786,14 +6924,17 @@ unicode-match-property-ecmascript@^1.0.4: unicode-match-property-value-ecmascript@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== unicode-property-aliases-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== unified@^6.0.0: version "6.2.0" resolved "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz#7fbd630f719126d67d40c644b7e3f617035f6dba" + integrity sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -5805,6 +6946,7 @@ unified@^6.0.0: union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= dependencies: arr-union "^3.1.0" get-value "^2.0.6" @@ -5814,58 +6956,69 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== dependencies: imurmurhash "^0.1.4" unist-util-find-all-after@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz#9be49cfbae5ca1566b27536670a92836bf2f8d6d" + integrity sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w== dependencies: unist-util-is "^2.0.0" unist-util-is@^2.0.0, unist-util-is@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz#1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db" + integrity sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw== unist-util-remove-position@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz#86b5dad104d0bbfbeb1db5f5c92f3570575c12cb" + integrity sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q== dependencies: unist-util-visit "^1.1.0" unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== unist-util-visit-parents@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz#63fffc8929027bee04bfef7d2cce474f71cb6217" + integrity sha512-6B0UTiMfdWql4cQ03gDTCSns+64Zkfo2OCbK31Ov0uMizEz+CJeAp0cgZVb5Fhmcd7Bct2iRNywejT0orpbqUA== dependencies: unist-util-is "^2.1.2" unist-util-visit@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz#1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1" + integrity sha512-FiGu34ziNsZA3ZUteZxSFaczIjGmksfSgdKqBfOejrrfzyUy5b7YrlzT1Bcvi+djkYDituJDy2XB7tGTeBieKw== dependencies: unist-util-visit-parents "^2.0.0" units-css@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/units-css/-/units-css-0.4.0.tgz#d6228653a51983d7c16ff28f8b9dc3b1ffed3a07" + integrity sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc= dependencies: isnumeric "^0.2.0" viewport-dimensions "^0.2.0" @@ -5873,6 +7026,7 @@ units-css@^0.4.0: unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" isobject "^3.0.0" @@ -5880,20 +7034,24 @@ unset-value@^1.0.0: upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" @@ -5901,14 +7059,17 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" @@ -5916,22 +7077,26 @@ util.promisify@^1.0.0: util@0.10.3: version "0.10.3" resolved "http://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.10.3: version "0.10.4" resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" @@ -5939,20 +7104,24 @@ validate-npm-package-license@^3.0.1: vendors@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" + integrity sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ== vfile-location@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.3.tgz#083ba80e50968e8d420be49dd1ea9a992131df77" + integrity sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A== vfile-message@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.1.tgz#51a2ccd8a6b97a7980bb34efb9ebde9632e93677" + integrity sha512-vSGCkhNvJzO6VcWC6AlJW4NtYOVtS+RgCaqFIYUjoGIlHnFL+i0LbtYvonDWOMcB97uTPT4PRsyYY7REWC9vug== dependencies: unist-util-stringify-position "^1.1.1" vfile@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz#e62d8e72b20e83c324bc6c67278ee272488bf84a" + integrity sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w== dependencies: is-buffer "^1.1.4" replace-ext "1.0.0" @@ -5962,16 +7131,19 @@ vfile@^2.0.0: viewport-dimensions@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz#de740747db5387fd1725f5175e91bac76afdf36c" + integrity sha1-3nQHR9tTh/0XJfUXXpG6x2r982w= vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= dependencies: indexof "0.0.1" watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" @@ -5980,6 +7152,7 @@ watchpack@^1.5.0: webpack-cli@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" + integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ== dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" @@ -5995,18 +7168,20 @@ webpack-cli@^3.1.0: webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.16.2: - version "4.25.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.25.1.tgz#4f459fbaea0f93440dc86c89f771bb3a837cfb6d" +webpack@4.20.2: + version "4.20.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.20.2.tgz#89f6486b6bb276a91b0823453d377501fc625b5a" + integrity sha512-75WFUMblcWYcocjSLlXCb71QuGyH7egdBZu50FtBGl2Nso8CK3Ej+J7bTZz2FPFq5l6fzCisD9modB7t30ikuA== dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/wasm-edit" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" + "@webassemblyjs/ast" "1.7.8" + "@webassemblyjs/helper-module-context" "1.7.8" + "@webassemblyjs/wasm-edit" "1.7.8" + "@webassemblyjs/wasm-parser" "1.7.8" acorn "^5.6.2" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" @@ -6031,36 +7206,66 @@ webpack@^4.16.2: whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + integrity sha1-+HfVv2SMl+WqVC+twW1qJZucEaE= which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== dependencies: string-width "^1.0.2 || 2" +winston-transport@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.2.0.tgz#a20be89edf2ea2ca39ba25f3e50344d73e6520e5" + integrity sha512-0R1bvFqxSlK/ZKTH86nymOuKv/cT1PQBMuDdA7k7f0S9fM44dNH6bXnuxwXPrN8lefJgtZq08BKdyZ0DZIy/rg== + dependencies: + readable-stream "^2.3.6" + triple-beam "^1.2.0" + +winston@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.1.0.tgz#80724376aef164e024f316100d5b178d78ac5331" + integrity sha512-FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg== + dependencies: + async "^2.6.0" + diagnostics "^1.1.1" + is-stream "^1.1.0" + logform "^1.9.1" + one-time "0.0.4" + readable-stream "^2.3.6" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.2.0" + wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== dependencies: errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" @@ -6068,46 +7273,56 @@ wrap-ansi@^2.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" + integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= yargs-parser@^10.0.0, yargs-parser@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== dependencies: camelcase "^4.1.0" yargs@^12.0.2: version "12.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ== dependencies: cliui "^4.0.0" decamelize "^2.0.0"