@seafile/seafile-editor 0.3.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +119 -0
  2. package/TODO.md +55 -0
  3. package/dist/components/add-formula-dialog.js +135 -0
  4. package/dist/components/add-image-dialog.js +78 -0
  5. package/dist/components/add-link-dialog.js +148 -0
  6. package/dist/components/comment-dialog.js +107 -0
  7. package/dist/components/comment-panel.js +452 -0
  8. package/dist/components/context-menu.js +112 -0
  9. package/dist/components/detail-list-view.js +119 -0
  10. package/dist/components/generate-share-link.js +412 -0
  11. package/dist/components/internal-link-dialog.js +96 -0
  12. package/dist/components/loading.js +32 -0
  13. package/dist/components/markdown-lint.js +87 -0
  14. package/dist/components/modal-portal.js +46 -0
  15. package/dist/components/outline.js +130 -0
  16. package/dist/components/participants-list.js +126 -0
  17. package/dist/components/related-files-list.js +75 -0
  18. package/dist/components/shortcut-dialog.js +167 -0
  19. package/dist/components/side-panel.js +175 -0
  20. package/dist/components/toast/alert.js +150 -0
  21. package/dist/components/toast/index.js +3 -0
  22. package/dist/components/toast/toast.js +179 -0
  23. package/dist/components/toast/toastManager.js +158 -0
  24. package/dist/components/toast/toaster.js +76 -0
  25. package/dist/components/toolbar.js +235 -0
  26. package/dist/components/topbar-component/button-group.js +31 -0
  27. package/dist/components/topbar-component/editor-toolbar.js +545 -0
  28. package/dist/components/topbar-component/file-info.js +65 -0
  29. package/dist/components/topbar-component/header-list.js +128 -0
  30. package/dist/components/topbar-component/icon-button.js +99 -0
  31. package/dist/components/topbar-component/insert-file.js +67 -0
  32. package/dist/components/topbar-component/table-toolbar.js +175 -0
  33. package/dist/components/topbar-component/upload-img.js +122 -0
  34. package/dist/components/user-help.js +205 -0
  35. package/dist/css/diff-viewer.css +105 -0
  36. package/dist/css/history-viewer.css +104 -0
  37. package/dist/css/keyboard-shortcuts.css +59 -0
  38. package/dist/css/layout.css +110 -0
  39. package/dist/css/markdown-viewer-slate/file-tags-list.css +76 -0
  40. package/dist/css/markdown-viewer.css +69 -0
  41. package/dist/css/plaineditor/markdown-editor.css +12 -0
  42. package/dist/css/react-mentions-default-style.js +72 -0
  43. package/dist/css/related-files-list.css +56 -0
  44. package/dist/css/richeditor/comments-list.css +184 -0
  45. package/dist/css/richeditor/detail-list-view.css +114 -0
  46. package/dist/css/richeditor/document-info.css +57 -0
  47. package/dist/css/richeditor/formula.css +19 -0
  48. package/dist/css/richeditor/image.css +141 -0
  49. package/dist/css/richeditor/link.css +7 -0
  50. package/dist/css/richeditor/navbar-imgbutton.css +79 -0
  51. package/dist/css/richeditor/participants-list.css +22 -0
  52. package/dist/css/richeditor/rich-editor-main.css +42 -0
  53. package/dist/css/richeditor/right-panel.css +84 -0
  54. package/dist/css/richeditor/side-panel.css +190 -0
  55. package/dist/css/richeditor/table.css +57 -0
  56. package/dist/css/richeditor/textlink-hovermenu.css +47 -0
  57. package/dist/css/richeditor/tree-view.css +67 -0
  58. package/dist/css/topbar.css +400 -0
  59. package/dist/editor/code-highlight-package.js +27 -0
  60. package/dist/editor/controller/block-element-controller.js +376 -0
  61. package/dist/editor/controller/inline-element-controller.js +129 -0
  62. package/dist/editor/controller/normalize-controller.js +107 -0
  63. package/dist/editor/controller/shortcut-controller.js +394 -0
  64. package/dist/editor/controller/void-element-controller.js +12 -0
  65. package/dist/editor/custom/custom.js +17 -0
  66. package/dist/editor/custom/get-event-transfer.js +34 -0
  67. package/dist/editor/custom/getNodesByTypeAtRange.js +69 -0
  68. package/dist/editor/custom/insertNodes.js +140 -0
  69. package/dist/editor/custom/is-empty-paragraph.js +13 -0
  70. package/dist/editor/custom/set-event-transfer.js +31 -0
  71. package/dist/editor/custom/split-nodes-at-point.js +162 -0
  72. package/dist/editor/custom/unwrap-node-by-type-at-range.js +81 -0
  73. package/dist/editor/editor-component/check-list-item.js +64 -0
  74. package/dist/editor/editor-component/code-block.js +150 -0
  75. package/dist/editor/editor-component/formula.js +79 -0
  76. package/dist/editor/editor-component/image.js +215 -0
  77. package/dist/editor/editor-component/link.js +11 -0
  78. package/dist/editor/editor-component/table.js +172 -0
  79. package/dist/editor/editor-component/textlink-hovermenu.js +136 -0
  80. package/dist/editor/editor-plugin.js +249 -0
  81. package/dist/editor/editor-utils/block-element-utils/blockquote-utils.js +96 -0
  82. package/dist/editor/editor-utils/block-element-utils/code-utils.js +162 -0
  83. package/dist/editor/editor-utils/block-element-utils/formula-utils.js +58 -0
  84. package/dist/editor/editor-utils/block-element-utils/index.js +38 -0
  85. package/dist/editor/editor-utils/block-element-utils/list-utils.js +398 -0
  86. package/dist/editor/editor-utils/block-element-utils/table-utils.js +418 -0
  87. package/dist/editor/editor-utils/common-editor-utils.js +587 -0
  88. package/dist/editor/editor-utils/inline-element-utils/index.js +95 -0
  89. package/dist/editor/editor-utils/mark-utils.js +25 -0
  90. package/dist/editor/editor-utils/range-utils.js +9 -0
  91. package/dist/editor/editor-utils/selection-utils.js +33 -0
  92. package/dist/editor/editor-utils/text-utils.js +130 -0
  93. package/dist/editor/editor.js +66 -0
  94. package/dist/editor/element-model/blockquote.js +16 -0
  95. package/dist/editor/element-model/image.js +19 -0
  96. package/dist/editor/element-model/link.js +19 -0
  97. package/dist/editor/element-model/table.js +50 -0
  98. package/dist/editor/element-model/text.js +13 -0
  99. package/dist/editor/load-script.js +83 -0
  100. package/dist/editor/plain-markdown-editor.js +324 -0
  101. package/dist/editor/rich-markdown-editor.js +580 -0
  102. package/dist/editor/seafile-editor.js +326 -0
  103. package/dist/editor/simple-editor.js +245 -0
  104. package/dist/editor-api.js +261 -0
  105. package/dist/index.css +97 -0
  106. package/dist/lib/slate-hyperscript/creators.js +263 -0
  107. package/dist/lib/slate-hyperscript/hyperscript.js +92 -0
  108. package/dist/lib/slate-hyperscript/index.js +3 -0
  109. package/dist/lib/slate-hyperscript/tokens.js +102 -0
  110. package/dist/lib/unified/index.js +470 -0
  111. package/dist/lib/vfile/core.js +172 -0
  112. package/dist/lib/vfile/index.js +48 -0
  113. package/dist/seafile-editor-chooser.js +45 -0
  114. package/dist/seafile-markdown-editor.js +301 -0
  115. package/dist/seafile-markdown-viewer.js +79 -0
  116. package/dist/seafile-simple-editor.js +56 -0
  117. package/dist/utils/copy-to-clipboard.js +47 -0
  118. package/dist/utils/deserialize-html.js +282 -0
  119. package/dist/utils/diff/compare-strings.js +46 -0
  120. package/dist/utils/diff/diff.js +855 -0
  121. package/dist/utils/diff/index.js +2 -0
  122. package/dist/utils/render-slate.js +219 -0
  123. package/dist/utils/seafile-markdown2html.js +62 -0
  124. package/dist/utils/slate2markdown/deserialize.js +689 -0
  125. package/dist/utils/slate2markdown/index.js +3 -0
  126. package/dist/utils/slate2markdown/serialize.js +407 -0
  127. package/dist/utils/utils.js +28 -0
  128. package/dist/viewer/diff-viewer.js +98 -0
  129. package/dist/viewer/markdown-viewer.js +139 -0
  130. package/dist/viewer/slate-viewer.js +73 -0
  131. package/dist/viewer/viewer-formula.js +67 -0
  132. package/dist/viewer/viewer-image.js +93 -0
  133. package/dist/viewer/viewer-outline.js +118 -0
  134. package/package.json +215 -0
  135. package/public/favicon.ico +0 -0
  136. package/public/index.html +45 -0
  137. package/public/locales/cs/seafile-editor.json +169 -0
  138. package/public/locales/de/seafile-editor.json +169 -0
  139. package/public/locales/en/seafile-editor.json +222 -0
  140. package/public/locales/es/seafile-editor.json +169 -0
  141. package/public/locales/es-AR/seafile-editor.json +169 -0
  142. package/public/locales/es-MX/seafile-editor.json +169 -0
  143. package/public/locales/fr/seafile-editor.json +169 -0
  144. package/public/locales/it/seafile-editor.json +169 -0
  145. package/public/locales/ru/seafile-editor.json +169 -0
  146. package/public/locales/zh-CN/seafile-editor.json +219 -0
  147. package/public/manifest.json +15 -0
  148. package/public/media/scripts/mathjax/tex-svg.js +1 -0
  149. package/public/media/seafile-editor-font/iconfont.eot +0 -0
  150. package/public/media/seafile-editor-font/iconfont.svg +164 -0
  151. package/public/media/seafile-editor-font/iconfont.ttf +0 -0
  152. package/public/media/seafile-editor-font/iconfont.woff +0 -0
  153. package/public/media/seafile-editor-font/iconfont.woff2 +0 -0
  154. package/public/media/seafile-editor-font.css +201 -0
  155. package/public/media/seafile-logo.png +0 -0
  156. package/public/media/seafile-ui.css +11169 -0
@@ -0,0 +1,130 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+ import { withTranslation } from 'react-i18next';
7
+
8
+ var OutlineItem = /*#__PURE__*/function (_React$PureComponent) {
9
+ _inherits(OutlineItem, _React$PureComponent);
10
+
11
+ var _super = _createSuper(OutlineItem);
12
+
13
+ function OutlineItem() {
14
+ var _this;
15
+
16
+ _classCallCheck(this, OutlineItem);
17
+
18
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
19
+ args[_key] = arguments[_key];
20
+ }
21
+
22
+ _this = _super.call.apply(_super, [this].concat(args));
23
+
24
+ _this.onClick = function (event) {
25
+ _this.props.editor.scrollToNode(_this.props.node);
26
+ };
27
+
28
+ return _this;
29
+ }
30
+
31
+ _createClass(OutlineItem, [{
32
+ key: "componentDidMount",
33
+ value: function componentDidMount() {
34
+ var hash = decodeURI(window.location.hash);
35
+ hash = hash.substring(1, hash.length);
36
+
37
+ if (hash && this.props.node && hash === this.props.node.text) {
38
+ this.props.editor && this.props.editor.scrollToNode(this.props.node);
39
+ }
40
+ }
41
+ }, {
42
+ key: "render",
43
+ value: function render() {
44
+ var _this$props = this.props,
45
+ node = _this$props.node,
46
+ index = _this$props.index,
47
+ activeTitleIndex = _this$props.activeTitleIndex;
48
+ var className = "".concat(node.type === 'header_two' ? 'outline-h2' : '', "\n ").concat(node.type === 'header_three' ? 'outline-h3' : '', "\n ").concat(index === activeTitleIndex ? ' active' : '');
49
+ return /*#__PURE__*/React.createElement("div", {
50
+ className: className,
51
+ key: index,
52
+ onClick: this.onClick
53
+ }, node.children[0].text);
54
+ }
55
+ }]);
56
+
57
+ return OutlineItem;
58
+ }(React.PureComponent);
59
+
60
+ var OutlineView = /*#__PURE__*/function (_React$PureComponent2) {
61
+ _inherits(OutlineView, _React$PureComponent2);
62
+
63
+ var _super2 = _createSuper(OutlineView);
64
+
65
+ function OutlineView(props) {
66
+ var _this2;
67
+
68
+ _classCallCheck(this, OutlineView);
69
+
70
+ _this2 = _super2.call(this, props);
71
+
72
+ _this2.getHeaderList = function (document) {
73
+ var headerList = [];
74
+ document.forEach(function (node, index) {
75
+ if (node.type === 'header_two' || node.type === 'header_three') {
76
+ headerList.push(Object.assign({}, node, {
77
+ path: [index]
78
+ }));
79
+ }
80
+ });
81
+
82
+ _this2.setState({
83
+ headerList: headerList
84
+ });
85
+ };
86
+
87
+ _this2.state = {
88
+ headerList: null
89
+ };
90
+ return _this2;
91
+ }
92
+
93
+ _createClass(OutlineView, [{
94
+ key: "componentDidMount",
95
+ value: function componentDidMount() {
96
+ this.getHeaderList(this.props.document);
97
+ }
98
+ }, {
99
+ key: "componentWillReceiveProps",
100
+ value: function componentWillReceiveProps(nextProps) {
101
+ if (this.props.document !== nextProps.document) {
102
+ this.getHeaderList(nextProps.document);
103
+ }
104
+ }
105
+ }, {
106
+ key: "render",
107
+ value: function render() {
108
+ var _this3 = this;
109
+
110
+ var headerList = this.state.headerList;
111
+ return /*#__PURE__*/React.createElement("div", {
112
+ className: "seafile-editor-outline"
113
+ }, headerList && headerList.length > 0 ? headerList.map(function (node, index) {
114
+ return /*#__PURE__*/React.createElement(OutlineItem, {
115
+ key: index,
116
+ editor: _this3.props.editor,
117
+ activeTitleIndex: _this3.props.activeTitleIndex,
118
+ node: node,
119
+ index: index
120
+ });
121
+ }) : this.props.isViewer ? null : /*#__PURE__*/React.createElement("div", {
122
+ className: "size-panel-no-content"
123
+ }, this.props.t('no_out_line')));
124
+ }
125
+ }]);
126
+
127
+ return OutlineView;
128
+ }(React.PureComponent);
129
+
130
+ export default withTranslation('seafile-editor')(OutlineView);
@@ -0,0 +1,126 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+ import { Tooltip } from 'reactstrap';
7
+ import '../css/richeditor/participants-list.css';
8
+
9
+ var ParticipantsList = /*#__PURE__*/function (_React$Component) {
10
+ _inherits(ParticipantsList, _React$Component);
11
+
12
+ var _super = _createSuper(ParticipantsList);
13
+
14
+ function ParticipantsList(props) {
15
+ var _this;
16
+
17
+ _classCallCheck(this, ParticipantsList);
18
+
19
+ _this = _super.call(this, props);
20
+
21
+ _this.handleClick = function () {
22
+ _this.props.openDialogs && _this.props.openDialogs('add-participant');
23
+ };
24
+
25
+ _this.tooltipToggle = function () {
26
+ _this.setState({
27
+ tooltipOpen: !_this.state.tooltipOpen
28
+ });
29
+ };
30
+
31
+ _this.state = {
32
+ tooltipOpen: false
33
+ };
34
+ return _this;
35
+ }
36
+
37
+ _createClass(ParticipantsList, [{
38
+ key: "render",
39
+ value: function render() {
40
+ var participants = this.props.participants;
41
+ return /*#__PURE__*/React.createElement("div", {
42
+ className: "participants mb-2 position-relative"
43
+ }, participants.map(function (item, index) {
44
+ return /*#__PURE__*/React.createElement(Participant, {
45
+ item: item,
46
+ index: index,
47
+ key: index
48
+ });
49
+ }), /*#__PURE__*/React.createElement("span", {
50
+ className: "add-participants",
51
+ onClick: this.handleClick,
52
+ id: "add-participant-icon"
53
+ }, /*#__PURE__*/React.createElement("i", {
54
+ className: "iconfont icon-plus-circle"
55
+ })), /*#__PURE__*/React.createElement(Tooltip, {
56
+ toggle: this.tooltipToggle,
57
+ delay: {
58
+ show: 0,
59
+ hide: 0
60
+ },
61
+ target: "add-participant-icon",
62
+ placement: "bottom",
63
+ isOpen: this.state.tooltipOpen
64
+ }, this.props.t('Add_participants')));
65
+ }
66
+ }]);
67
+
68
+ return ParticipantsList;
69
+ }(React.Component);
70
+
71
+ var Participant = /*#__PURE__*/function (_React$Component2) {
72
+ _inherits(Participant, _React$Component2);
73
+
74
+ var _super2 = _createSuper(Participant);
75
+
76
+ function Participant(props) {
77
+ var _this2;
78
+
79
+ _classCallCheck(this, Participant);
80
+
81
+ _this2 = _super2.call(this, props);
82
+
83
+ _this2.toggleAvatarTooltip = function () {
84
+ _this2.setState({
85
+ showAvatarTooltip: !_this2.state.showAvatarTooltip
86
+ });
87
+ };
88
+
89
+ _this2.state = {
90
+ showAvatarTooltip: false
91
+ };
92
+ return _this2;
93
+ }
94
+
95
+ _createClass(Participant, [{
96
+ key: "render",
97
+ value: function render() {
98
+ var _this$props = this.props,
99
+ item = _this$props.item,
100
+ index = _this$props.index;
101
+ var target = 'participant-avatar-' + index;
102
+ return /*#__PURE__*/React.createElement("span", {
103
+ className: "participant-avatar"
104
+ }, /*#__PURE__*/React.createElement("img", {
105
+ src: item.avatar_url,
106
+ className: "avatar",
107
+ id: target,
108
+ alt: "avatar",
109
+ key: index
110
+ }), /*#__PURE__*/React.createElement(Tooltip, {
111
+ toggle: this.toggleAvatarTooltip,
112
+ delay: {
113
+ show: 0,
114
+ hide: 0
115
+ },
116
+ target: target,
117
+ placement: "bottom",
118
+ isOpen: this.state.showAvatarTooltip
119
+ }, item.name));
120
+ }
121
+ }]);
122
+
123
+ return Participant;
124
+ }(React.Component);
125
+
126
+ export default ParticipantsList;
@@ -0,0 +1,75 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React from 'react';
6
+ import { Card, CardTitle, CardText } from 'reactstrap';
7
+ import { withTranslation } from 'react-i18next';
8
+
9
+ require('../css/related-files-list.css');
10
+
11
+ var RelatedFilesList = /*#__PURE__*/function (_React$Component) {
12
+ _inherits(RelatedFilesList, _React$Component);
13
+
14
+ var _super = _createSuper(RelatedFilesList);
15
+
16
+ function RelatedFilesList(props) {
17
+ var _this;
18
+
19
+ _classCallCheck(this, RelatedFilesList);
20
+
21
+ _this = _super.call(this, props);
22
+
23
+ _this.encodePath = function (path) {
24
+ if (!path) {
25
+ return '';
26
+ }
27
+
28
+ var path_arr = path.split('/');
29
+ var path_arr_ = [];
30
+
31
+ for (var i = 0, len = path_arr.length; i < len; i++) {
32
+ path_arr_.push(encodeURIComponent(path_arr[i]));
33
+ }
34
+
35
+ return path_arr_.join('/');
36
+ };
37
+
38
+ return _this;
39
+ }
40
+
41
+ _createClass(RelatedFilesList, [{
42
+ key: "render",
43
+ value: function render() {
44
+ var _this2 = this;
45
+
46
+ var siteRoot = this.props.siteRoot;
47
+ return /*#__PURE__*/React.createElement("div", {
48
+ className: "sf-releted-files",
49
+ id: "sf-releted-files"
50
+ }, /*#__PURE__*/React.createElement("div", {
51
+ className: "sf-releted-files-header"
52
+ }, /*#__PURE__*/React.createElement("h4", null, this.props.t('related_files'))), this.props.relatedFiles.map(function (relatedFile, index) {
53
+ var href = siteRoot + 'lib/' + relatedFile.repo_id + '/file' + _this2.encodePath(relatedFile.path);
54
+
55
+ return /*#__PURE__*/React.createElement("div", {
56
+ className: "sf-releted-file",
57
+ key: index
58
+ }, /*#__PURE__*/React.createElement("a", {
59
+ href: href,
60
+ rel: "noopener noreferrer",
61
+ target: "_blank"
62
+ }, /*#__PURE__*/React.createElement(Card, {
63
+ body: true,
64
+ size: "sm"
65
+ }, /*#__PURE__*/React.createElement(CardTitle, null, relatedFile.name), /*#__PURE__*/React.createElement(CardText, null, relatedFile.repo_name), /*#__PURE__*/React.createElement("span", {
66
+ className: "sf-releted-file-arrow"
67
+ }))));
68
+ }));
69
+ }
70
+ }]);
71
+
72
+ return RelatedFilesList;
73
+ }(React.Component);
74
+
75
+ export default withTranslation('seafile-editor')(RelatedFilesList);
@@ -0,0 +1,167 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import React, { Fragment } from 'react';
6
+ import { Modal, ModalHeader, ModalBody } from 'reactstrap';
7
+ import { withTranslation } from 'react-i18next';
8
+ import '../css/keyboard-shortcuts.css';
9
+ var isMac = window.navigator.platform.indexOf('Win') < 0 ? true : false;
10
+ var controlKey = isMac ? '⌘' : 'CTRL';
11
+
12
+ var KeyboardShortcuts = /*#__PURE__*/function (_React$PureComponent) {
13
+ _inherits(KeyboardShortcuts, _React$PureComponent);
14
+
15
+ var _super = _createSuper(KeyboardShortcuts);
16
+
17
+ function KeyboardShortcuts(props) {
18
+ var _this;
19
+
20
+ _classCallCheck(this, KeyboardShortcuts);
21
+
22
+ _this = _super.call(this, props);
23
+
24
+ _this.renderShortcut = function (keys) {
25
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
26
+ className: "keyboard-shortcut"
27
+ }, keys.map(function (key, index) {
28
+ return /*#__PURE__*/React.createElement("kbd", {
29
+ key: index
30
+ }, key);
31
+ })), /*#__PURE__*/React.createElement("br", null));
32
+ };
33
+
34
+ _this.renderContainer = function (keys, description) {
35
+ return /*#__PURE__*/React.createElement("div", {
36
+ className: "keyboard-shortcut-container"
37
+ }, /*#__PURE__*/React.createElement("div", {
38
+ className: "col-4"
39
+ }, _this.renderShortcut(keys)), /*#__PURE__*/React.createElement("div", {
40
+ className: "col-8"
41
+ }, description));
42
+ };
43
+
44
+ _this.shortcutData = [{
45
+ 'Make_list': [['*', 'space'], ['-', 'space']],
46
+ 'Make_ordered_list': [['1.', 'space']],
47
+ 'Insert_new_item': [['Enter']],
48
+ 'Insert_child_in_item': [['Shift', 'Enter']],
49
+ 'Increase_depth': [['Tab']]
50
+ }, {
51
+ 'Heading_1': [['#', 'space']],
52
+ 'Heading_2': [['##', 'space']],
53
+ 'Heading_3': [['###', 'space']],
54
+ 'Heading_4': [['####', 'space']],
55
+ 'Heading_5': [['#####', 'space']],
56
+ 'Heading_6': [['######', 'space']]
57
+ }, {
58
+ 'Make_code_block': [['```'], ['space*4']],
59
+ 'Insert_new_line': [['Enter']],
60
+ 'Escape_code_block': [[controlKey, 'Enter']],
61
+ 'Insert_indent': [['Tab']]
62
+ }, {
63
+ 'Make_Block_quote': [['>', 'space']],
64
+ 'Escape_Block_quote': [['Enter']]
65
+ }, {
66
+ 'Insert_Table_Row': [['Enter']],
67
+ 'Escape_table': [[controlKey, 'Enter']]
68
+ }, {
69
+ 'Bold': [['**bold**', 'space'], ['__bold__', 'space']],
70
+ 'Italic': [['*italic*', 'space'], ['_italic_', 'space']],
71
+ 'Italic_Bold': [['***italic***', 'space'], ['___italic___', 'space']],
72
+ 'Inline_code': [['`code`', 'space']]
73
+ }, {
74
+ 'Paste_screen_shot': [[controlKey, 'v']],
75
+ 'Drag_image_from_anywhere_to_upload_it': []
76
+ }];
77
+ return _this;
78
+ }
79
+
80
+ _createClass(KeyboardShortcuts, [{
81
+ key: "render",
82
+ value: function render() {
83
+ var _this$props = this.props,
84
+ t = _this$props.t,
85
+ toggleShortcutDialog = _this$props.toggleShortcutDialog,
86
+ userHelp = _this$props.userHelp;
87
+ var userHelpData = userHelp.userHelpData;
88
+ return /*#__PURE__*/React.createElement(Modal, {
89
+ isOpen: true,
90
+ toggle: toggleShortcutDialog,
91
+ className: "keyboard-shortcut-dialog"
92
+ }, /*#__PURE__*/React.createElement(ModalHeader, {
93
+ toggle: toggleShortcutDialog
94
+ }, /*#__PURE__*/React.createElement("span", {
95
+ className: "mr-2"
96
+ }, t(userHelp.title))), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
97
+ className: "pb-2"
98
+ }, /*#__PURE__*/React.createElement("div", {
99
+ className: "keyboard-shortcut-title pb-1"
100
+ }, t(userHelpData[1]['shortcutType'])), this.renderContainer(this.shortcutData[1]['Heading_1'][0], t(userHelpData[1].shortcutData['Heading_1'])), this.renderContainer(this.shortcutData[1]['Heading_2'][0], t(userHelpData[1].shortcutData['Heading_2'])), this.renderContainer(this.shortcutData[1]['Heading_3'][0], t(userHelpData[1].shortcutData['Heading_3'])), this.renderContainer(this.shortcutData[1]['Heading_4'][0], t(userHelpData[1].shortcutData['Heading_4'])), this.renderContainer(this.shortcutData[1]['Heading_5'][0], t(userHelpData[1].shortcutData['Heading_5'])), this.renderContainer(this.shortcutData[1]['Heading_6'][0], t(userHelpData[1].shortcutData['Heading_6']))), /*#__PURE__*/React.createElement("div", {
101
+ className: "pb-2"
102
+ }, /*#__PURE__*/React.createElement("div", {
103
+ className: "keyboard-shortcut-title pb-1"
104
+ }, t(userHelpData[0]['shortcutType'])), /*#__PURE__*/React.createElement("div", {
105
+ className: "keyboard-shortcut-container"
106
+ }, /*#__PURE__*/React.createElement("div", {
107
+ className: "col-4"
108
+ }, this.renderShortcut(this.shortcutData[0]['Make_list'][0]), this.renderShortcut(this.shortcutData[0]['Make_list'][1])), /*#__PURE__*/React.createElement("div", {
109
+ className: "col-8"
110
+ }, t(userHelpData[0].shortcutData['Make_list']))), /*#__PURE__*/React.createElement("div", {
111
+ className: "keyboard-shortcut-container"
112
+ }, /*#__PURE__*/React.createElement("div", {
113
+ className: "col-4"
114
+ }, this.renderShortcut(this.shortcutData[0]['Make_ordered_list'][0])), /*#__PURE__*/React.createElement("div", {
115
+ className: "col-8"
116
+ }, t(userHelpData[0].shortcutData['Make_ordered_list']))), this.renderContainer(this.shortcutData[0]['Increase_depth'][0], t(userHelpData[0].shortcutData['Increase_depth'])), this.renderContainer(this.shortcutData[0]['Insert_child_in_item'][0], t(userHelpData[0].shortcutData['Insert_child_in_item'])), this.renderContainer(this.shortcutData[0]['Insert_new_item'][0], t(userHelpData[0].shortcutData['Insert_new_item']))), /*#__PURE__*/React.createElement("div", {
117
+ className: "pb-2"
118
+ }, /*#__PURE__*/React.createElement("div", {
119
+ className: "keyboard-shortcut-title pb-1"
120
+ }, t(userHelpData[6]['shortcutType'])), /*#__PURE__*/React.createElement("div", {
121
+ className: "keyboard-shortcut-container"
122
+ }, /*#__PURE__*/React.createElement("div", {
123
+ className: "col-4"
124
+ }, this.renderShortcut(this.shortcutData[5]['Bold'][0]), this.renderShortcut(this.shortcutData[5]['Bold'][1])), /*#__PURE__*/React.createElement("div", {
125
+ className: "col-8"
126
+ }, t(userHelpData[5].shortcutData['Bold']))), /*#__PURE__*/React.createElement("div", {
127
+ className: "keyboard-shortcut-container"
128
+ }, /*#__PURE__*/React.createElement("div", {
129
+ className: "col-4"
130
+ }, this.renderShortcut(this.shortcutData[5]['Italic'][0]), this.renderShortcut(this.shortcutData[5]['Italic'][1])), /*#__PURE__*/React.createElement("div", {
131
+ className: "col-8"
132
+ }, t(userHelpData[5].shortcutData['Italic']))), /*#__PURE__*/React.createElement("div", {
133
+ className: "keyboard-shortcut-container"
134
+ }, /*#__PURE__*/React.createElement("div", {
135
+ className: "col-4"
136
+ }, this.renderShortcut(this.shortcutData[5]['Italic_Bold'][0]), this.renderShortcut(this.shortcutData[5]['Italic_Bold'][1])), /*#__PURE__*/React.createElement("div", {
137
+ className: "col-8"
138
+ }, t(userHelpData[5].shortcutData['Italic_Bold']))), this.renderContainer(this.shortcutData[5]['Inline_code'][0], t(userHelpData[5].shortcutData['Inline_code']))), /*#__PURE__*/React.createElement("div", {
139
+ className: "pb-2"
140
+ }, /*#__PURE__*/React.createElement("div", {
141
+ className: "keyboard-shortcut-title pb-1"
142
+ }, t(userHelpData[2]['shortcutType'])), /*#__PURE__*/React.createElement("div", {
143
+ className: "keyboard-shortcut-container"
144
+ }, /*#__PURE__*/React.createElement("div", {
145
+ className: "col-4"
146
+ }, this.renderShortcut(this.shortcutData[2]['Make_code_block'][0]), this.renderShortcut(this.shortcutData[2]['Make_code_block'][1])), /*#__PURE__*/React.createElement("div", {
147
+ className: "col-8"
148
+ }, t(userHelpData[2].shortcutData['Make_code_block']))), this.renderContainer(this.shortcutData[2]['Insert_indent'][0], t(userHelpData[2].shortcutData['Insert_indent'])), this.renderContainer(this.shortcutData[2]['Insert_new_line'][0], t(userHelpData[2].shortcutData['Insert_new_line'])), this.renderContainer(this.shortcutData[2]['Escape_code_block'][0], t(userHelpData[2].shortcutData['Escape_code_block']))), /*#__PURE__*/React.createElement("div", {
149
+ className: "pb-2"
150
+ }, /*#__PURE__*/React.createElement("div", {
151
+ className: "keyboard-shortcut-title pb-1"
152
+ }, t(userHelpData[3]['shortcutType'])), this.renderContainer(this.shortcutData[3]['Make_Block_quote'][0], t(userHelpData[3].shortcutData['Make_Block_quote'])), this.renderContainer(this.shortcutData[3]['Escape_Block_quote'][0], t(userHelpData[3].shortcutData['Escape_Block_quote']))), /*#__PURE__*/React.createElement("div", {
153
+ className: "pb-2"
154
+ }, /*#__PURE__*/React.createElement("div", {
155
+ className: "keyboard-shortcut-title pb-1"
156
+ }, t(userHelpData[4]['shortcutType'])), this.renderContainer(this.shortcutData[4]['Insert_Table_Row'][0], t(userHelpData[4].shortcutData['Insert_Table_Row'])), this.renderContainer(this.shortcutData[4]['Escape_table'][0], t(userHelpData[4].shortcutData['Escape_table']))), /*#__PURE__*/React.createElement("div", {
157
+ className: "pb-2"
158
+ }, /*#__PURE__*/React.createElement("div", {
159
+ className: "keyboard-shortcut-title pb-1"
160
+ }, t(userHelpData[7]['shortcutType'])), this.renderContainer(this.shortcutData[6]['Paste_screen_shot'][0], t(userHelpData[7].shortcutData['Paste_screen_shot']))))));
161
+ }
162
+ }]);
163
+
164
+ return KeyboardShortcuts;
165
+ }(React.PureComponent);
166
+
167
+ export default withTranslation('dtable')(KeyboardShortcuts);
@@ -0,0 +1,175 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+
6
+ /* eslint-disable jsx-a11y/anchor-is-valid */
7
+ import React from 'react';
8
+ import OutlineView from './outline';
9
+ import CommentPanel from './comment-panel';
10
+ import DetailListView from './detail-list-view';
11
+
12
+ var SidePanel = /*#__PURE__*/function (_React$PureComponent) {
13
+ _inherits(SidePanel, _React$PureComponent);
14
+
15
+ var _super = _createSuper(SidePanel);
16
+
17
+ function SidePanel() {
18
+ var _this;
19
+
20
+ _classCallCheck(this, SidePanel);
21
+
22
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23
+ args[_key] = arguments[_key];
24
+ }
25
+
26
+ _this = _super.call.apply(_super, [this].concat(args));
27
+ _this.state = {
28
+ navItem: 'outline'
29
+ };
30
+
31
+ _this.onOutlineClick = function (event) {
32
+ event.preventDefault();
33
+
34
+ _this.props.toggleCommentBtn(false);
35
+
36
+ _this.setState({
37
+ navItem: 'outline'
38
+ });
39
+ };
40
+
41
+ _this.onMarkdownHintClick = function (event) {
42
+ event.preventDefault();
43
+
44
+ _this.props.toggleCommentBtn(false);
45
+
46
+ _this.setState({
47
+ navItem: 'markdownHint'
48
+ });
49
+ };
50
+
51
+ _this.onDetailClick = function (event) {
52
+ event.preventDefault();
53
+
54
+ _this.props.toggleCommentBtn(false);
55
+
56
+ _this.setState({
57
+ navItem: 'detail'
58
+ });
59
+ };
60
+
61
+ _this.onCommentsPanelClick = function (event) {
62
+ event.preventDefault();
63
+
64
+ _this.props.toggleCommentBtn(true);
65
+
66
+ _this.setState({
67
+ navItem: 'commentsPanel'
68
+ });
69
+ };
70
+
71
+ _this.openMarkdownHint = function () {
72
+ _this.setState({
73
+ navItem: 'markdownHint'
74
+ });
75
+ };
76
+
77
+ return _this;
78
+ }
79
+
80
+ _createClass(SidePanel, [{
81
+ key: "componentDidMount",
82
+ value: function componentDidMount() {
83
+ window.openMarkdownHint = this.openMarkdownHint;
84
+ }
85
+ }, {
86
+ key: "componentWillReceiveProps",
87
+ value: function componentWillReceiveProps(nextProps) {
88
+ if (nextProps.issues !== this.props.issues) {
89
+ if (nextProps.issues.issue_list.length > 0) {
90
+ this.setState({
91
+ navItem: 'markdownHint'
92
+ });
93
+ }
94
+ }
95
+ }
96
+ }, {
97
+ key: "componentWillUnmount",
98
+ value: function componentWillUnmount() {
99
+ window.openMarkdownHint = null;
100
+ }
101
+ }, {
102
+ key: "render",
103
+ value: function render() {
104
+ var outlineActive = ''; // var markdownHint = '';
105
+
106
+ var commentsPanel = '';
107
+ var detailList = '';
108
+
109
+ if (this.state.navItem === 'outline') {
110
+ outlineActive = 'active';
111
+ } else if (this.state.navItem === 'commentsPanel') {
112
+ commentsPanel = 'active';
113
+ } else if (this.state.navItem === 'detail') {
114
+ detailList = 'active';
115
+ } else {// markdownHint = 'active';
116
+ }
117
+
118
+ return /*#__PURE__*/React.createElement("div", {
119
+ className: "side-panel"
120
+ }, /*#__PURE__*/React.createElement("ul", {
121
+ className: "nav justify-content-center"
122
+ }, /*#__PURE__*/React.createElement("li", {
123
+ className: "nav-item"
124
+ }, /*#__PURE__*/React.createElement("a", {
125
+ className: 'nav-link ' + outlineActive,
126
+ href: "",
127
+ onClick: this.onOutlineClick
128
+ }, /*#__PURE__*/React.createElement("i", {
129
+ className: "iconfont icon-list-ul"
130
+ }))), /*#__PURE__*/React.createElement("li", {
131
+ className: "nav-item"
132
+ }, /*#__PURE__*/React.createElement("a", {
133
+ className: 'nav-link ' + detailList,
134
+ href: "",
135
+ onClick: this.onDetailClick
136
+ }, /*#__PURE__*/React.createElement("i", {
137
+ className: 'iconfont icon-info-circle'
138
+ }))), /*#__PURE__*/React.createElement("li", {
139
+ className: "nav-item"
140
+ }, /*#__PURE__*/React.createElement("a", {
141
+ className: 'nav-link ' + commentsPanel,
142
+ href: "",
143
+ onClick: this.onCommentsPanelClick
144
+ }, /*#__PURE__*/React.createElement("i", {
145
+ className: 'iconfont icon-comment'
146
+ })))), /*#__PURE__*/React.createElement("div", {
147
+ className: "side-panel-content"
148
+ }, this.state.navItem === 'outline' && /*#__PURE__*/React.createElement(OutlineView, {
149
+ editor: this.props.editor,
150
+ document: this.props.document,
151
+ t: this.props.t
152
+ }), this.state.navItem === 'commentsPanel' && /*#__PURE__*/React.createElement(CommentPanel, {
153
+ editorApi: this.props.editorApi,
154
+ t: this.props.t,
155
+ scrollToQuote: this.props.scrollToQuote,
156
+ relistComment: this.props.relistComment,
157
+ openDialogs: this.props.openDialogs,
158
+ participants: this.props.participants,
159
+ onParticipantsChange: this.props.onParticipantsChange
160
+ }), this.state.navItem === 'detail' && /*#__PURE__*/React.createElement(DetailListView, {
161
+ t: this.props.t,
162
+ relatedFiles: this.props.relatedFiles,
163
+ fileTagList: this.props.fileTagList,
164
+ editorApi: this.props.editorApi,
165
+ openDialogs: this.props.openDialogs,
166
+ fileInfo: this.props.fileInfo,
167
+ participants: this.props.participants
168
+ })));
169
+ }
170
+ }]);
171
+
172
+ return SidePanel;
173
+ }(React.PureComponent);
174
+
175
+ export default SidePanel;