node 6 年之前
父節點
當前提交
e040f2cceb

+ 28
- 0
lib/App.css 查看文件

@@ -0,0 +1,28 @@
1
+.App {
2
+  text-align: center;
3
+}
4
+
5
+.App-logo {
6
+  animation: App-logo-spin infinite 20s linear;
7
+  height: 80px;
8
+}
9
+
10
+.App-header {
11
+  background-color: #222;
12
+  height: 150px;
13
+  padding: 20px;
14
+  color: white;
15
+}
16
+
17
+.App-title {
18
+  font-size: 1.5em;
19
+}
20
+
21
+.App-intro {
22
+  font-size: large;
23
+}
24
+
25
+@keyframes App-logo-spin {
26
+  from { transform: rotate(0deg); }
27
+  to { transform: rotate(360deg); }
28
+}

+ 71
- 0
lib/App.js 查看文件

@@ -0,0 +1,71 @@
1
+'use strict';
2
+
3
+Object.defineProperty(exports, "__esModule", {
4
+  value: true
5
+});
6
+
7
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
+
9
+var _react = require('react');
10
+
11
+var _react2 = _interopRequireDefault(_react);
12
+
13
+var _logo = require('./logo.svg');
14
+
15
+var _logo2 = _interopRequireDefault(_logo);
16
+
17
+require('./App.css');
18
+
19
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
+
23
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
24
+
25
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
26
+
27
+var App = function (_Component) {
28
+  _inherits(App, _Component);
29
+
30
+  function App() {
31
+    _classCallCheck(this, App);
32
+
33
+    return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));
34
+  }
35
+
36
+  _createClass(App, [{
37
+    key: 'render',
38
+    value: function render() {
39
+      return _react2.default.createElement(
40
+        'div',
41
+        { className: 'App' },
42
+        _react2.default.createElement(
43
+          'header',
44
+          { className: 'App-header' },
45
+          _react2.default.createElement('img', { src: _logo2.default, className: 'App-logo', alt: 'logo' }),
46
+          _react2.default.createElement(
47
+            'h1',
48
+            { className: 'App-title' },
49
+            'Welcome to React'
50
+          )
51
+        ),
52
+        _react2.default.createElement(
53
+          'p',
54
+          { className: 'App-intro' },
55
+          'To get started, edit ',
56
+          _react2.default.createElement(
57
+            'code',
58
+            null,
59
+            'src/App.js'
60
+          ),
61
+          ' and save to reload.'
62
+        )
63
+      );
64
+    }
65
+  }]);
66
+
67
+  return App;
68
+}(_react.Component);
69
+
70
+exports.default = App;
71
+//# sourceMappingURL=App.js.map

+ 1
- 0
lib/App.js.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"sources":["../src/App.js"],"names":["App","logo","Component"],"mappings":";;;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;;;;;IAEMA,G;;;;;;;;;;;6BACK;AACP,aACE;AAAA;AAAA,UAAK,WAAU,KAAf;AACE;AAAA;AAAA,YAAQ,WAAU,YAAlB;AACE,iDAAK,KAAKC,cAAV,EAAgB,WAAU,UAA1B,EAAqC,KAAI,MAAzC,GADF;AAEE;AAAA;AAAA,cAAI,WAAU,WAAd;AAAA;AAAA;AAFF,SADF;AAKE;AAAA;AAAA,YAAG,WAAU,WAAb;AAAA;AACuB;AAAA;AAAA;AAAA;AAAA,WADvB;AAAA;AAAA;AALF,OADF;AAWD;;;;EAbeC,gB;;kBAgBHF,G","file":"App.js","sourcesContent":["import React, { Component } from 'react';\nimport logo from './logo.svg';\nimport './App.css';\n\nclass App extends Component {\n  render() {\n    return (\n      <div className=\"App\">\n        <header className=\"App-header\">\n          <img src={logo} className=\"App-logo\" alt=\"logo\" />\n          <h1 className=\"App-title\">Welcome to React</h1>\n        </header>\n        <p className=\"App-intro\">\n          To get started, edit <code>src/App.js</code> and save to reload.\n        </p>\n      </div>\n    );\n  }\n}\n\nexport default App;\n"]}

+ 22
- 0
lib/App.test.js 查看文件

@@ -0,0 +1,22 @@
1
+'use strict';
2
+
3
+var _react = require('react');
4
+
5
+var _react2 = _interopRequireDefault(_react);
6
+
7
+var _reactDom = require('react-dom');
8
+
9
+var _reactDom2 = _interopRequireDefault(_reactDom);
10
+
11
+var _App = require('./App');
12
+
13
+var _App2 = _interopRequireDefault(_App);
14
+
15
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+it('renders without crashing', function () {
18
+  var div = document.createElement('div');
19
+  _reactDom2.default.render(_react2.default.createElement(_App2.default, null), div);
20
+  _reactDom2.default.unmountComponentAtNode(div);
21
+});
22
+//# sourceMappingURL=App.test.js.map

+ 1
- 0
lib/App.test.js.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"sources":["../src/App.test.js"],"names":["it","div","document","createElement","ReactDOM","render","unmountComponentAtNode"],"mappings":";;AAAA;;;;AACA;;;;AACA;;;;;;AAEAA,GAAG,0BAAH,EAA+B,YAAM;AACnC,MAAMC,MAAMC,SAASC,aAAT,CAAuB,KAAvB,CAAZ;AACAC,qBAASC,MAAT,CAAgB,8BAAC,aAAD,OAAhB,EAAyBJ,GAAzB;AACAG,qBAASE,sBAAT,CAAgCL,GAAhC;AACD,CAJD","file":"App.test.js","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\n\nit('renders without crashing', () => {\n  const div = document.createElement('div');\n  ReactDOM.render(<App />, div);\n  ReactDOM.unmountComponentAtNode(div);\n});\n"]}

+ 92
- 0
lib/MarkdownEditor/index.js 查看文件

@@ -0,0 +1,92 @@
1
+"use strict";
2
+
3
+Object.defineProperty(exports, "__esModule", {
4
+  value: true
5
+});
6
+
7
+var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
+
9
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
10
+
11
+var _react = require("react");
12
+
13
+var React = _interopRequireWildcard(_react);
14
+
15
+var _reactMde = require("react-mde");
16
+
17
+var _reactMde2 = _interopRequireDefault(_reactMde);
18
+
19
+var _showdown = require("showdown");
20
+
21
+var Showdown = _interopRequireWildcard(_showdown);
22
+
23
+require("react-mde/lib/styles/css/react-mde-all.css");
24
+
25
+var _reactFontawesome = require("@fortawesome/react-fontawesome");
26
+
27
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+
29
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
30
+
31
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32
+
33
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
34
+
35
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
36
+
37
+var icons = {
38
+  "bold": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "bold" }),
39
+  "heading": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "heading" }),
40
+  "italic": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "italic" }),
41
+  "strikethrough": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "strikethrough" }),
42
+  "link": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "link" }),
43
+  "quote-right": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "quote-right" }),
44
+  "code": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "code" }),
45
+  "image": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "image" }),
46
+  "list-ul": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "list-ul" }),
47
+  "list-ol": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "list-ol" }),
48
+  "tasks": React.createElement(_reactFontawesome.FontAwesomeIcon, { icon: "tasks" })
49
+};
50
+
51
+var iconProvider = function iconProvider(name) {
52
+  return icons[name] || "❓";
53
+};
54
+
55
+var MarkdownEditor = function (_React$Component) {
56
+  _inherits(MarkdownEditor, _React$Component);
57
+
58
+  function MarkdownEditor(props) {
59
+    _classCallCheck(this, MarkdownEditor);
60
+
61
+    var _this = _possibleConstructorReturn(this, (MarkdownEditor.__proto__ || Object.getPrototypeOf(MarkdownEditor)).call(this, props));
62
+
63
+    _this.handleValueChange = function (mdeState) {
64
+      _this.setState({ mdeState: mdeState });
65
+    };
66
+
67
+    _this.converter = new Showdown.Converter({ tables: true, simplifiedAutoLink: true });
68
+    return _this;
69
+  }
70
+
71
+  _createClass(MarkdownEditor, [{
72
+    key: "render",
73
+    value: function render() {
74
+      var _this2 = this;
75
+
76
+      var defaultProps = {
77
+        layout: 'horizontal',
78
+        buttonContentOptions: { iconProvider: iconProvider },
79
+        generateMarkdownPreview: function generateMarkdownPreview(markdown) {
80
+          return Promise.resolve(_this2.converter.makeHtml(markdown));
81
+        }
82
+      };
83
+      var props = _extends({}, this.props, defaultProps);
84
+      return React.createElement(_reactMde2.default, props);
85
+    }
86
+  }]);
87
+
88
+  return MarkdownEditor;
89
+}(React.Component);
90
+
91
+exports.default = MarkdownEditor;
92
+//# sourceMappingURL=index.js.map

+ 1
- 0
lib/MarkdownEditor/index.js.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"sources":["../../src/MarkdownEditor/index.js"],"names":["React","Showdown","icons","iconProvider","name","MarkdownEditor","props","handleValueChange","mdeState","setState","converter","Converter","tables","simplifiedAutoLink","defaultProps","layout","buttonContentOptions","generateMarkdownPreview","markdown","Promise","resolve","makeHtml","Component"],"mappings":";;;;;;;;;;AAAA;;IAAYA,K;;AACZ;;;;AACA;;IAAYC,Q;;AACZ;;AACA;;;;;;;;;;;;AAGA,IAAMC,QAAQ;AACV,UAAQ,oBAAC,iCAAD,IAAiB,MAAK,MAAtB,GADE;AAEV,aAAW,oBAAC,iCAAD,IAAiB,MAAK,SAAtB,GAFD;AAGV,YAAU,oBAAC,iCAAD,IAAiB,MAAK,QAAtB,GAHA;AAIV,mBAAiB,oBAAC,iCAAD,IAAiB,MAAK,eAAtB,GAJP;AAKV,UAAQ,oBAAC,iCAAD,IAAiB,MAAK,MAAtB,GALE;AAMV,iBAAe,oBAAC,iCAAD,IAAiB,MAAK,aAAtB,GANL;AAOV,UAAQ,oBAAC,iCAAD,IAAiB,MAAK,MAAtB,GAPE;AAQV,WAAS,oBAAC,iCAAD,IAAiB,MAAK,OAAtB,GARC;AASV,aAAW,oBAAC,iCAAD,IAAiB,MAAK,SAAtB,GATD;AAUV,aAAW,oBAAC,iCAAD,IAAiB,MAAK,SAAtB,GAVD;AAWV,WAAS,oBAAC,iCAAD,IAAiB,MAAK,OAAtB;AAXC,CAAd;;AAcE,IAAMC,eAAe,SAAfA,YAAe,CAACC,IAAD,EAAU;AAC7B,SAAOF,MAAME,IAAN,KAAe,GAAtB;AACD,CAFD;;IAKmBC,c;;;AAEjB,0BAAYC,KAAZ,EAAmB;AAAA;;AAAA,gIACTA,KADS;;AAAA,UAKnBC,iBALmB,GAKC,UAACC,QAAD,EAAc;AAC9B,YAAKC,QAAL,CAAc,EAACD,kBAAD,EAAd;AACH,KAPkB;;AAEf,UAAKE,SAAL,GAAiB,IAAIT,SAASU,SAAb,CAAuB,EAACC,QAAQ,IAAT,EAAeC,oBAAoB,IAAnC,EAAvB,CAAjB;AAFe;AAGlB;;;;6BAMQ;AAAA;;AACP,UAAMC,eAAe;AACnBC,gBAAQ,YADW;AAEnBC,8BAAsB,EAAEb,0BAAF,EAFH;AAGnBc,iCAAyB,iCAACC,QAAD;AAAA,iBAAcC,QAAQC,OAAR,CAAgB,OAAKV,SAAL,CAAeW,QAAf,CAAwBH,QAAxB,CAAhB,CAAd;AAAA;AAHN,OAArB;AAKA,UAAMZ,qBACD,KAAKA,KADJ,EAEDQ,YAFC,CAAN;AAIE,aACE,oBAAC,kBAAD,EAAcR,KAAd,CADF;AAGH;;;;EAxBuCN,MAAMsB,S;;kBAA7BjB,c","file":"index.js","sourcesContent":["import * as React from \"react\";\nimport ReactMde from 'react-mde';\nimport * as Showdown from \"showdown\";\nimport 'react-mde/lib/styles/css/react-mde-all.css';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\n\n\nconst icons = {\n    \"bold\": <FontAwesomeIcon icon=\"bold\" />,\n    \"heading\": <FontAwesomeIcon icon=\"heading\" />,\n    \"italic\": <FontAwesomeIcon icon=\"italic\" />,\n    \"strikethrough\": <FontAwesomeIcon icon=\"strikethrough\" />,\n    \"link\": <FontAwesomeIcon icon=\"link\" />,\n    \"quote-right\": <FontAwesomeIcon icon=\"quote-right\" />,\n    \"code\": <FontAwesomeIcon icon=\"code\" />,\n    \"image\": <FontAwesomeIcon icon=\"image\" />,\n    \"list-ul\": <FontAwesomeIcon icon=\"list-ul\" />,\n    \"list-ol\": <FontAwesomeIcon icon=\"list-ol\" />,\n    \"tasks\": <FontAwesomeIcon icon=\"tasks\" />,\n  };\n\n  const iconProvider = (name) => {\n    return icons[name] || \"❓\";\n  };\n  \n\nexport default class MarkdownEditor extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.converter = new Showdown.Converter({tables: true, simplifiedAutoLink: true});\n    }\n\n    handleValueChange = (mdeState) => {\n        this.setState({mdeState});\n    }\n\n    render() {\n      const defaultProps = {\n        layout: 'horizontal',\n        buttonContentOptions: { iconProvider },\n        generateMarkdownPreview: (markdown) => Promise.resolve(this.converter.makeHtml(markdown)),\n      }\n      const props=  {\n        ...this.props,\n        ...defaultProps,\n      }\n        return (\n          <ReactMde {...props} />\n        );\n    }\n}"]}

+ 51
- 0
lib/RichEditor/index.js 查看文件

@@ -0,0 +1,51 @@
1
+'use strict';
2
+
3
+Object.defineProperty(exports, "__esModule", {
4
+    value: true
5
+});
6
+
7
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
+
9
+var _react = require('react');
10
+
11
+var _react2 = _interopRequireDefault(_react);
12
+
13
+var _braftEditor = require('braft-editor');
14
+
15
+var _braftEditor2 = _interopRequireDefault(_braftEditor);
16
+
17
+require('braft-editor/dist/index.css');
18
+
19
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
+
23
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
24
+
25
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
26
+// 引入编辑器以及EditorState子模块
27
+
28
+// 引入编辑器样式
29
+
30
+
31
+var RichEditor = function (_React$Component) {
32
+    _inherits(RichEditor, _React$Component);
33
+
34
+    function RichEditor() {
35
+        _classCallCheck(this, RichEditor);
36
+
37
+        return _possibleConstructorReturn(this, (RichEditor.__proto__ || Object.getPrototypeOf(RichEditor)).apply(this, arguments));
38
+    }
39
+
40
+    _createClass(RichEditor, [{
41
+        key: 'render',
42
+        value: function render() {
43
+            return _react2.default.createElement(_braftEditor2.default, this.props);
44
+        }
45
+    }]);
46
+
47
+    return RichEditor;
48
+}(_react2.default.Component);
49
+
50
+exports.default = RichEditor;
51
+//# sourceMappingURL=index.js.map

+ 1
- 0
lib/RichEditor/index.js.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"sources":["../../src/RichEditor/index.js"],"names":["RichEditor","props","React","Component"],"mappings":";;;;;;;;AAAA;;;;AAEA;;;;AAEA;;;;;;;;;AAHA;;AAEA;;;IAGqBA,U;;;;;;;;;;;iCACP;AACN,mBACE,8BAAC,qBAAD,EAAiB,KAAKC,KAAtB,CADF;AAGH;;;;EALmCC,gBAAMC,S;;kBAAzBH,U","file":"index.js","sourcesContent":["import React from 'react'\n// 引入编辑器以及EditorState子模块\nimport BraftEditor from 'braft-editor'\n// 引入编辑器样式\nimport 'braft-editor/dist/index.css'\n\nexport default class RichEditor extends React.Component {\n    render () {\n        return (\n          <BraftEditor {...this.props} />\n        )\n    }\n}"]}

+ 5
- 0
lib/index.css 查看文件

@@ -0,0 +1,5 @@
1
+body {
2
+  margin: 0;
3
+  padding: 0;
4
+  font-family: sans-serif;
5
+}

+ 37
- 0
lib/index.js 查看文件

@@ -0,0 +1,37 @@
1
+'use strict';
2
+
3
+Object.defineProperty(exports, "__esModule", {
4
+    value: true
5
+});
6
+
7
+var _fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core');
8
+
9
+var _freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
10
+
11
+var _RichEditor = require('./RichEditor');
12
+
13
+var _RichEditor2 = _interopRequireDefault(_RichEditor);
14
+
15
+var _MarkdownEditor = require('./MarkdownEditor');
16
+
17
+var _MarkdownEditor2 = _interopRequireDefault(_MarkdownEditor);
18
+
19
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+
21
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faBold);
22
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faHeading);
23
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faItalic);
24
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faStrikethrough);
25
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faLink);
26
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faQuoteRight);
27
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faCode);
28
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faImage);
29
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faListUl);
30
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faListOl);
31
+_fontawesomeSvgCore.library.add(_freeSolidSvgIcons.faTasks);
32
+
33
+exports.default = {
34
+    RichEditor: _RichEditor2.default,
35
+    MarkdownEditor: _MarkdownEditor2.default
36
+};
37
+//# sourceMappingURL=index.js.map

+ 1
- 0
lib/index.js.map 查看文件

@@ -0,0 +1 @@
1
+{"version":3,"sources":["../src/index.js"],"names":["library","add","faBold","faHeading","faItalic","faStrikethrough","faLink","faQuoteRight","faCode","faImage","faListUl","faListOl","faTasks","RichEditor","MarkdownEditor"],"mappings":";;;;;;AAAA;;AACA;;AAaC;;;;AACA;;;;;;AAGDA,4BAAQC,GAAR,CAAYC,yBAAZ;AACAF,4BAAQC,GAAR,CAAYE,4BAAZ;AACAH,4BAAQC,GAAR,CAAYG,2BAAZ;AACAJ,4BAAQC,GAAR,CAAYI,kCAAZ;AACAL,4BAAQC,GAAR,CAAYK,yBAAZ;AACAN,4BAAQC,GAAR,CAAYM,+BAAZ;AACAP,4BAAQC,GAAR,CAAYO,yBAAZ;AACAR,4BAAQC,GAAR,CAAYQ,0BAAZ;AACAT,4BAAQC,GAAR,CAAYS,2BAAZ;AACAV,4BAAQC,GAAR,CAAYU,2BAAZ;AACAX,4BAAQC,GAAR,CAAYW,0BAAZ;;kBAEe;AACbC,oCADa;AAEbC;AAFa,C","file":"index.js","sourcesContent":["import { library } from '@fortawesome/fontawesome-svg-core'\nimport { \n    faBold, \n    faHeading,\n    faItalic,\n    faStrikethrough,\n    faLink,\n    faQuoteRight,\n    faCode,\n    faImage,\n    faListUl,\n    faListOl,\n    faTasks,\n } from '@fortawesome/free-solid-svg-icons'\n import RichEditor from './RichEditor';\n import MarkdownEditor from './MarkdownEditor';\n\n\nlibrary.add(faBold)\nlibrary.add(faHeading)\nlibrary.add(faItalic)\nlibrary.add(faStrikethrough)\nlibrary.add(faLink)\nlibrary.add(faQuoteRight)\nlibrary.add(faCode)\nlibrary.add(faImage)\nlibrary.add(faListUl)\nlibrary.add(faListOl)\nlibrary.add(faTasks)\n\nexport default { \n  RichEditor,\n  MarkdownEditor,\n }\n"]}

+ 7
- 0
lib/logo.svg 查看文件

@@ -0,0 +1,7 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3">
2
+    <g fill="#61DAFB">
3
+        <path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/>
4
+        <circle cx="420.9" cy="296.5" r="45.7"/>
5
+        <path d="M520.5 78.1z"/>
6
+    </g>
7
+</svg>

+ 108
- 0
lib/registerServiceWorker.js 查看文件

@@ -0,0 +1,108 @@
1
+'use strict';
2
+
3
+Object.defineProperty(exports, "__esModule", {
4
+  value: true
5
+});
6
+exports.default = register;
7
+exports.unregister = unregister;
8
+// In production, we register a service worker to serve assets from local cache.
9
+
10
+// This lets the app load faster on subsequent visits in production, and gives
11
+// it offline capabilities. However, it also means that developers (and users)
12
+// will only see deployed updates on the "N+1" visit to a page, since previously
13
+// cached resources are updated in the background.
14
+
15
+// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.
16
+// This link also includes instructions on opting out of this behavior.
17
+
18
+var isLocalhost = Boolean(window.location.hostname === 'localhost' ||
19
+// [::1] is the IPv6 localhost address.
20
+window.location.hostname === '[::1]' ||
21
+// 127.0.0.1/8 is considered localhost for IPv4.
22
+window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
23
+
24
+function register() {
25
+  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
26
+    // The URL constructor is available in all browsers that support SW.
27
+    var publicUrl = new URL(process.env.PUBLIC_URL, window.location);
28
+    if (publicUrl.origin !== window.location.origin) {
29
+      // Our service worker won't work if PUBLIC_URL is on a different origin
30
+      // from what our page is served on. This might happen if a CDN is used to
31
+      // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374
32
+      return;
33
+    }
34
+
35
+    window.addEventListener('load', function () {
36
+      var swUrl = process.env.PUBLIC_URL + '/service-worker.js';
37
+
38
+      if (isLocalhost) {
39
+        // This is running on localhost. Lets check if a service worker still exists or not.
40
+        checkValidServiceWorker(swUrl);
41
+
42
+        // Add some additional logging to localhost, pointing developers to the
43
+        // service worker/PWA documentation.
44
+        navigator.serviceWorker.ready.then(function () {
45
+          console.log('This web app is being served cache-first by a service ' + 'worker. To learn more, visit https://goo.gl/SC7cgQ');
46
+        });
47
+      } else {
48
+        // Is not local host. Just register service worker
49
+        registerValidSW(swUrl);
50
+      }
51
+    });
52
+  }
53
+}
54
+
55
+function registerValidSW(swUrl) {
56
+  navigator.serviceWorker.register(swUrl).then(function (registration) {
57
+    registration.onupdatefound = function () {
58
+      var installingWorker = registration.installing;
59
+      installingWorker.onstatechange = function () {
60
+        if (installingWorker.state === 'installed') {
61
+          if (navigator.serviceWorker.controller) {
62
+            // At this point, the old content will have been purged and
63
+            // the fresh content will have been added to the cache.
64
+            // It's the perfect time to display a "New content is
65
+            // available; please refresh." message in your web app.
66
+            console.log('New content is available; please refresh.');
67
+          } else {
68
+            // At this point, everything has been precached.
69
+            // It's the perfect time to display a
70
+            // "Content is cached for offline use." message.
71
+            console.log('Content is cached for offline use.');
72
+          }
73
+        }
74
+      };
75
+    };
76
+  }).catch(function (error) {
77
+    console.error('Error during service worker registration:', error);
78
+  });
79
+}
80
+
81
+function checkValidServiceWorker(swUrl) {
82
+  // Check if the service worker can be found. If it can't reload the page.
83
+  fetch(swUrl).then(function (response) {
84
+    // Ensure service worker exists, and that we really are getting a JS file.
85
+    if (response.status === 404 || response.headers.get('content-type').indexOf('javascript') === -1) {
86
+      // No service worker found. Probably a different app. Reload the page.
87
+      navigator.serviceWorker.ready.then(function (registration) {
88
+        registration.unregister().then(function () {
89
+          window.location.reload();
90
+        });
91
+      });
92
+    } else {
93
+      // Service worker found. Proceed as normal.
94
+      registerValidSW(swUrl);
95
+    }
96
+  }).catch(function () {
97
+    console.log('No internet connection found. App is running in offline mode.');
98
+  });
99
+}
100
+
101
+function unregister() {
102
+  if ('serviceWorker' in navigator) {
103
+    navigator.serviceWorker.ready.then(function (registration) {
104
+      registration.unregister();
105
+    });
106
+  }
107
+}
108
+//# sourceMappingURL=registerServiceWorker.js.map

+ 1
- 0
lib/registerServiceWorker.js.map
文件差異過大導致無法顯示
查看文件


+ 13
- 1
package.json 查看文件

@@ -8,10 +8,16 @@
8 8
     "@fortawesome/free-solid-svg-icons": "^5.3.1",
9 9
     "@fortawesome/react-fontawesome": "^0.1.3",
10 10
     "autoprefixer": "7.1.6",
11
+    "babel-cli": "^6.26.0",
11 12
     "babel-core": "6.26.0",
12 13
     "babel-eslint": "7.2.3",
13 14
     "babel-jest": "20.0.3",
14 15
     "babel-loader": "7.1.2",
16
+    "babel-plugin-import": "^1.8.0",
17
+    "babel-plugin-transform-class-properties": "^6.24.1",
18
+    "babel-plugin-transform-object-rest-spread": "^6.26.0",
19
+    "babel-preset-env": "^1.7.0",
20
+    "babel-preset-react": "^6.24.1",
15 21
     "babel-preset-react-app": "^3.1.2",
16 22
     "babel-runtime": "6.26.0",
17 23
     "braft-editor": "^2.0.5",
@@ -55,6 +61,7 @@
55 61
     "start": "node scripts/start.js",
56 62
     "build": "node scripts/build.js",
57 63
     "build:lib": "node scripts/build.lib.js",
64
+    "lib": "babel ./src --out-dir ./lib --source-maps --copy-files",
58 65
     "test": "node scripts/test.js --env=jsdom"
59 66
   },
60 67
   "jest": {
@@ -93,7 +100,12 @@
93 100
   },
94 101
   "babel": {
95 102
     "presets": [
96
-      "react-app"
103
+      "env",
104
+      "react"
105
+    ],
106
+    "plugins": [
107
+      "transform-object-rest-spread",
108
+      "babel-plugin-transform-class-properties"
97 109
     ]
98 110
   },
99 111
   "eslintConfig": {

+ 143
- 7
yarn.lock 查看文件

@@ -2,12 +2,26 @@
2 2
 # yarn lockfile v1
3 3
 
4 4
 
5
+"@babel/helper-module-imports@^7.0.0-beta.34":
6
+  version "7.0.0"
7
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
8
+  dependencies:
9
+    "@babel/types" "^7.0.0"
10
+
5 11
 "@babel/runtime@^7.0.0":
6 12
   version "7.0.0"
7 13
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c"
8 14
   dependencies:
9 15
     regenerator-runtime "^0.12.0"
10 16
 
17
+"@babel/types@^7.0.0":
18
+  version "7.0.0"
19
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118"
20
+  dependencies:
21
+    esutils "^2.0.2"
22
+    lodash "^4.17.10"
23
+    to-fast-properties "^2.0.0"
24
+
11 25
 "@fortawesome/fontawesome-common-types@^0.2.4":
12 26
   version "0.2.4"
13 27
   resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.4.tgz#7c560ff732c6c7c7c179ae25227ce5449e6f6d65"
@@ -402,6 +416,27 @@ axobject-query@^0.1.0:
402 416
   dependencies:
403 417
     ast-types-flow "0.0.7"
404 418
 
419
+babel-cli@^6.26.0:
420
+  version "6.26.0"
421
+  resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
422
+  dependencies:
423
+    babel-core "^6.26.0"
424
+    babel-polyfill "^6.26.0"
425
+    babel-register "^6.26.0"
426
+    babel-runtime "^6.26.0"
427
+    commander "^2.11.0"
428
+    convert-source-map "^1.5.0"
429
+    fs-readdir-recursive "^1.0.0"
430
+    glob "^7.1.2"
431
+    lodash "^4.17.4"
432
+    output-file-sync "^1.1.2"
433
+    path-is-absolute "^1.0.1"
434
+    slash "^1.0.0"
435
+    source-map "^0.5.6"
436
+    v8flags "^2.1.1"
437
+  optionalDependencies:
438
+    chokidar "^1.6.1"
439
+
405 440
 babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
406 441
   version "6.26.0"
407 442
   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -625,6 +660,12 @@ babel-plugin-dynamic-import-node@1.1.0:
625 660
     babel-template "^6.26.0"
626 661
     babel-types "^6.26.0"
627 662
 
663
+babel-plugin-import@^1.8.0:
664
+  version "1.8.0"
665
+  resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.8.0.tgz#260deddd78f6fea0d110e1d106ba72a518d3c88c"
666
+  dependencies:
667
+    "@babel/helper-module-imports" "^7.0.0-beta.34"
668
+
628 669
 babel-plugin-istanbul@^4.0.0:
629 670
   version "4.1.6"
630 671
   resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45"
@@ -678,7 +719,7 @@ babel-plugin-transform-async-to-generator@^6.22.0:
678 719
     babel-plugin-syntax-async-functions "^6.8.0"
679 720
     babel-runtime "^6.22.0"
680 721
 
681
-babel-plugin-transform-class-properties@6.24.1:
722
+babel-plugin-transform-class-properties@6.24.1, babel-plugin-transform-class-properties@^6.24.1:
682 723
   version "6.24.1"
683 724
   resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
684 725
   dependencies:
@@ -870,7 +911,7 @@ babel-plugin-transform-flow-strip-types@^6.22.0:
870 911
     babel-plugin-syntax-flow "^6.18.0"
871 912
     babel-runtime "^6.22.0"
872 913
 
873
-babel-plugin-transform-object-rest-spread@6.26.0:
914
+babel-plugin-transform-object-rest-spread@6.26.0, babel-plugin-transform-object-rest-spread@^6.26.0:
874 915
   version "6.26.0"
875 916
   resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
876 917
   dependencies:
@@ -930,6 +971,14 @@ babel-plugin-transform-strict-mode@^6.24.1:
930 971
     babel-runtime "^6.22.0"
931 972
     babel-types "^6.24.1"
932 973
 
974
+babel-polyfill@^6.26.0:
975
+  version "6.26.0"
976
+  resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
977
+  dependencies:
978
+    babel-runtime "^6.26.0"
979
+    core-js "^2.5.0"
980
+    regenerator-runtime "^0.10.5"
981
+
933 982
 babel-preset-env@1.6.1:
934 983
   version "1.6.1"
935 984
   resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
@@ -965,6 +1014,41 @@ babel-preset-env@1.6.1:
965 1014
     invariant "^2.2.2"
966 1015
     semver "^5.3.0"
967 1016
 
1017
+babel-preset-env@^1.7.0:
1018
+  version "1.7.0"
1019
+  resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
1020
+  dependencies:
1021
+    babel-plugin-check-es2015-constants "^6.22.0"
1022
+    babel-plugin-syntax-trailing-function-commas "^6.22.0"
1023
+    babel-plugin-transform-async-to-generator "^6.22.0"
1024
+    babel-plugin-transform-es2015-arrow-functions "^6.22.0"
1025
+    babel-plugin-transform-es2015-block-scoped-functions "^6.22.0"
1026
+    babel-plugin-transform-es2015-block-scoping "^6.23.0"
1027
+    babel-plugin-transform-es2015-classes "^6.23.0"
1028
+    babel-plugin-transform-es2015-computed-properties "^6.22.0"
1029
+    babel-plugin-transform-es2015-destructuring "^6.23.0"
1030
+    babel-plugin-transform-es2015-duplicate-keys "^6.22.0"
1031
+    babel-plugin-transform-es2015-for-of "^6.23.0"
1032
+    babel-plugin-transform-es2015-function-name "^6.22.0"
1033
+    babel-plugin-transform-es2015-literals "^6.22.0"
1034
+    babel-plugin-transform-es2015-modules-amd "^6.22.0"
1035
+    babel-plugin-transform-es2015-modules-commonjs "^6.23.0"
1036
+    babel-plugin-transform-es2015-modules-systemjs "^6.23.0"
1037
+    babel-plugin-transform-es2015-modules-umd "^6.23.0"
1038
+    babel-plugin-transform-es2015-object-super "^6.22.0"
1039
+    babel-plugin-transform-es2015-parameters "^6.23.0"
1040
+    babel-plugin-transform-es2015-shorthand-properties "^6.22.0"
1041
+    babel-plugin-transform-es2015-spread "^6.22.0"
1042
+    babel-plugin-transform-es2015-sticky-regex "^6.22.0"
1043
+    babel-plugin-transform-es2015-template-literals "^6.22.0"
1044
+    babel-plugin-transform-es2015-typeof-symbol "^6.23.0"
1045
+    babel-plugin-transform-es2015-unicode-regex "^6.22.0"
1046
+    babel-plugin-transform-exponentiation-operator "^6.22.0"
1047
+    babel-plugin-transform-regenerator "^6.22.0"
1048
+    browserslist "^3.2.6"
1049
+    invariant "^2.2.2"
1050
+    semver "^5.3.0"
1051
+
968 1052
 babel-preset-flow@^6.23.0:
969 1053
   version "6.23.0"
970 1054
   resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d"
@@ -995,7 +1079,7 @@ babel-preset-react-app@^3.1.2:
995 1079
     babel-preset-env "1.6.1"
996 1080
     babel-preset-react "6.24.1"
997 1081
 
998
-babel-preset-react@6.24.1:
1082
+babel-preset-react@6.24.1, babel-preset-react@^6.24.1:
999 1083
   version "6.24.1"
1000 1084
   resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
1001 1085
   dependencies:
@@ -1304,6 +1388,13 @@ browserslist@^2.1.2, browserslist@^2.5.1:
1304 1388
     caniuse-lite "^1.0.30000792"
1305 1389
     electron-to-chromium "^1.3.30"
1306 1390
 
1391
+browserslist@^3.2.6:
1392
+  version "3.2.8"
1393
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6"
1394
+  dependencies:
1395
+    caniuse-lite "^1.0.30000844"
1396
+    electron-to-chromium "^1.3.47"
1397
+
1307 1398
 bser@1.0.2:
1308 1399
   version "1.0.2"
1309 1400
   resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
@@ -1472,7 +1563,7 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
1472 1563
   version "1.0.30000885"
1473 1564
   resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000885.tgz#cdc98dd168ed59678650071f7f6a70910e275bc8"
1474 1565
 
1475
-caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792:
1566
+caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000844:
1476 1567
   version "1.0.30000885"
1477 1568
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984"
1478 1569
 
@@ -1517,6 +1608,21 @@ chardet@^0.4.0:
1517 1608
   version "0.4.2"
1518 1609
   resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
1519 1610
 
1611
+chokidar@^1.6.1:
1612
+  version "1.7.0"
1613
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
1614
+  dependencies:
1615
+    anymatch "^1.3.0"
1616
+    async-each "^1.0.0"
1617
+    glob-parent "^2.0.0"
1618
+    inherits "^2.0.1"
1619
+    is-binary-path "^1.0.0"
1620
+    is-glob "^2.0.0"
1621
+    path-is-absolute "^1.0.0"
1622
+    readdirp "^2.0.0"
1623
+  optionalDependencies:
1624
+    fsevents "^1.0.0"
1625
+
1520 1626
 chokidar@^2.0.0, chokidar@^2.0.2:
1521 1627
   version "2.0.4"
1522 1628
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26"
@@ -2401,7 +2507,7 @@ ee-first@1.1.1:
2401 2507
   version "1.1.1"
2402 2508
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
2403 2509
 
2404
-electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
2510
+electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47:
2405 2511
   version "1.3.65"
2406 2512
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.65.tgz#0655c238e45fea7e0e0e81fd0cac62b8186129c2"
2407 2513
 
@@ -3172,6 +3278,10 @@ fs-minipass@^1.2.5:
3172 3278
   dependencies:
3173 3279
     minipass "^2.2.1"
3174 3280
 
3281
+fs-readdir-recursive@^1.0.0:
3282
+  version "1.1.0"
3283
+  resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
3284
+
3175 3285
 fs-vacuum@^1.2.10, fs-vacuum@~1.2.10:
3176 3286
   version "1.2.10"
3177 3287
   resolved "https://registry.yarnpkg.com/fs-vacuum/-/fs-vacuum-1.2.10.tgz#b7629bec07a4031a2548fdf99f5ecf1cc8b31e36"
@@ -3193,7 +3303,7 @@ fs.realpath@^1.0.0:
3193 3303
   version "1.0.0"
3194 3304
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
3195 3305
 
3196
-fsevents@^1.2.2:
3306
+fsevents@^1.0.0, fsevents@^1.2.2:
3197 3307
   version "1.2.4"
3198 3308
   resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426"
3199 3309
   dependencies:
@@ -3365,7 +3475,7 @@ got@^6.7.1:
3365 3475
     unzip-response "^2.0.1"
3366 3476
     url-parse-lax "^1.0.0"
3367 3477
 
3368
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~4.1.11:
3478
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~4.1.11:
3369 3479
   version "4.1.11"
3370 3480
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
3371 3481
 
@@ -5688,6 +5798,14 @@ osenv@0, osenv@^0.1.4, osenv@^0.1.5:
5688 5798
     os-homedir "^1.0.0"
5689 5799
     os-tmpdir "^1.0.0"
5690 5800
 
5801
+output-file-sync@^1.1.2:
5802
+  version "1.1.2"
5803
+  resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76"
5804
+  dependencies:
5805
+    graceful-fs "^4.1.4"
5806
+    mkdirp "^0.5.1"
5807
+    object-assign "^4.1.0"
5808
+
5691 5809
 p-finally@^1.0.0:
5692 5810
   version "1.0.0"
5693 5811
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -6668,6 +6786,10 @@ regenerate@^1.2.1:
6668 6786
   version "1.4.0"
6669 6787
   resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
6670 6788
 
6789
+regenerator-runtime@^0.10.5:
6790
+  version "0.10.5"
6791
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
6792
+
6671 6793
 regenerator-runtime@^0.11.0:
6672 6794
   version "0.11.1"
6673 6795
   resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
@@ -7659,6 +7781,10 @@ to-fast-properties@^1.0.3:
7659 7781
   version "1.0.3"
7660 7782
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
7661 7783
 
7784
+to-fast-properties@^2.0.0:
7785
+  version "2.0.0"
7786
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
7787
+
7662 7788
 to-object-path@^0.3.0:
7663 7789
   version "0.3.0"
7664 7790
   resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
@@ -7898,6 +8024,10 @@ use@^3.1.0:
7898 8024
   version "3.1.1"
7899 8025
   resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
7900 8026
 
8027
+user-home@^1.1.1:
8028
+  version "1.1.1"
8029
+  resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
8030
+
7901 8031
 util-deprecate@~1.0.1:
7902 8032
   version "1.0.2"
7903 8033
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -7934,6 +8064,12 @@ uuid@^3.0.1, uuid@^3.3.2:
7934 8064
   version "3.3.2"
7935 8065
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
7936 8066
 
8067
+v8flags@^2.1.1:
8068
+  version "2.1.1"
8069
+  resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
8070
+  dependencies:
8071
+    user-home "^1.1.1"
8072
+
7937 8073
 validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4:
7938 8074
   version "3.0.4"
7939 8075
   resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"