@seafile/sdoc-editor 0.1.0 → 0.1.1

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 (144) hide show
  1. package/dist/{new-editors/editor.js → editor.js} +23 -17
  2. package/dist/index.js +2 -36
  3. package/dist/slate-extension/plugins/index.js +3 -2
  4. package/dist/slate-extension/plugins/socket/index.js +6 -0
  5. package/dist/slate-extension/plugins/socket/plugin.js +17 -0
  6. package/dist/slate-extension/socket/socket-client.js +84 -0
  7. package/dist/slate-extension/socket/socket-manager.js +61 -0
  8. package/dist/slate-extension/toolbar/index.js +1 -1
  9. package/package.json +3 -23
  10. package/dist/assets/css/comment-dialog.css +0 -50
  11. package/dist/assets/css/diff-viewer.css +0 -105
  12. package/dist/assets/css/formula.css +0 -19
  13. package/dist/assets/css/history-viewer.css +0 -104
  14. package/dist/assets/css/image.css +0 -134
  15. package/dist/assets/css/issue-card.css +0 -43
  16. package/dist/assets/css/keyboard-shortcuts.css +0 -58
  17. package/dist/assets/css/link.css +0 -7
  18. package/dist/assets/css/markdown-editor.css +0 -12
  19. package/dist/assets/css/markdown-viewer.css +0 -69
  20. package/dist/assets/css/navbar-imgbutton.css +0 -83
  21. package/dist/assets/css/outline.css +0 -29
  22. package/dist/assets/css/table.css +0 -57
  23. package/dist/assets/css/textlink-hovermenu.css +0 -47
  24. package/dist/assets/css/topbar.css +0 -350
  25. package/dist/assets/css/tree-view.css +0 -67
  26. package/dist/assets/css/user-help.css +0 -84
  27. package/dist/assets/editor/plain-editor.css +0 -30
  28. package/dist/assets/editor/seatable-editor.css +0 -77
  29. package/dist/assets/editor/simple-editor.css +0 -77
  30. package/dist/components/click-outside.js +0 -46
  31. package/dist/components/context-menu.js +0 -97
  32. package/dist/components/dialogs/add-formula-dialog.js +0 -116
  33. package/dist/components/dialogs/add-image-dialog.js +0 -69
  34. package/dist/components/dialogs/add-link-dialog.js +0 -133
  35. package/dist/components/dialogs/comment-dialog.js +0 -97
  36. package/dist/components/dialogs/shortcut-dialog.js +0 -131
  37. package/dist/components/error-boundary.js +0 -28
  38. package/dist/components/load-script/index.js +0 -69
  39. package/dist/components/loading.js +0 -25
  40. package/dist/components/markdown-lint.js +0 -72
  41. package/dist/components/menu/index.js +0 -4
  42. package/dist/components/menu/item.js +0 -49
  43. package/dist/components/menu/menu.js +0 -38
  44. package/dist/components/menu/style.css +0 -42
  45. package/dist/components/modal-portal.js +0 -38
  46. package/dist/components/outline/index.js +0 -92
  47. package/dist/components/outline/outline-item.js +0 -58
  48. package/dist/components/select/_option.js +0 -44
  49. package/dist/components/select/field-setting.js +0 -106
  50. package/dist/components/select/index.js +0 -149
  51. package/dist/components/select/style.css +0 -144
  52. package/dist/components/svg-icons/check-mark-icon.js +0 -14
  53. package/dist/components/svg-icons/column-icon.js +0 -17
  54. package/dist/components/svg-icons/text-icon.js +0 -34
  55. package/dist/components/text-link-hover-menu/index.js +0 -123
  56. package/dist/components/toast/alert.js +0 -138
  57. package/dist/components/toast/index.js +0 -3
  58. package/dist/components/toast/toast.js +0 -159
  59. package/dist/components/toast/toastManager.js +0 -139
  60. package/dist/components/toast/toaster.js +0 -65
  61. package/dist/components/toolbar/header-list.js +0 -114
  62. package/dist/components/toolbar/help-group.js +0 -33
  63. package/dist/components/toolbar/index.js +0 -4
  64. package/dist/components/toolbar/insert-image.js +0 -106
  65. package/dist/components/toolbar/insert-table.js +0 -136
  66. package/dist/components/toolbar/table-group.js +0 -74
  67. package/dist/components/toolbar/toolbar.js +0 -317
  68. package/dist/components/toolbar/widgets/button-group.js +0 -24
  69. package/dist/components/toolbar/widgets/button-item.js +0 -129
  70. package/dist/components/toolbar/widgets/drop-list.js +0 -88
  71. package/dist/components/user-help/index.js +0 -179
  72. package/dist/config-0.js +0 -15
  73. package/dist/config.js +0 -16
  74. package/dist/constants/cell-types.js +0 -29
  75. package/dist/constants/column.js +0 -4
  76. package/dist/containers/code-highlight-package.js +0 -14
  77. package/dist/containers/controller/block-element-controller.js +0 -375
  78. package/dist/containers/controller/index.js +0 -5
  79. package/dist/containers/controller/inline-element-controller.js +0 -134
  80. package/dist/containers/controller/normalize-controller.js +0 -95
  81. package/dist/containers/controller/shortcut-controller.js +0 -385
  82. package/dist/containers/controller/void-element-controller.js +0 -9
  83. package/dist/containers/custom/custom.js +0 -18
  84. package/dist/containers/custom/get-event-transfer.js +0 -33
  85. package/dist/containers/custom/getNodesByTypeAtRange.js +0 -57
  86. package/dist/containers/custom/insertNodes.js +0 -120
  87. package/dist/containers/custom/is-empty-paragraph.js +0 -9
  88. package/dist/containers/custom/set-event-transfer.js +0 -30
  89. package/dist/containers/custom/split-nodes-at-point.js +0 -136
  90. package/dist/containers/custom/unwrap-node-by-type-at-range.js +0 -70
  91. package/dist/containers/editor-context.js +0 -85
  92. package/dist/containers/editor-utils/block-element-utils/blockquote-utils.js +0 -80
  93. package/dist/containers/editor-utils/block-element-utils/code-utils.js +0 -145
  94. package/dist/containers/editor-utils/block-element-utils/formula-utils.js +0 -51
  95. package/dist/containers/editor-utils/block-element-utils/index.js +0 -31
  96. package/dist/containers/editor-utils/block-element-utils/list-utils.js +0 -395
  97. package/dist/containers/editor-utils/block-element-utils/table-utils.js +0 -412
  98. package/dist/containers/editor-utils/clear-format-utils.js +0 -84
  99. package/dist/containers/editor-utils/common-editor-utils.js +0 -492
  100. package/dist/containers/editor-utils/inline-element-utils/index.js +0 -95
  101. package/dist/containers/editor-utils/mark-utils.js +0 -20
  102. package/dist/containers/editor-utils/range-utils.js +0 -7
  103. package/dist/containers/editor-utils/selection-utils.js +0 -30
  104. package/dist/containers/editor-utils/text-utils.js +0 -117
  105. package/dist/containers/editor-widgets/check-list-item.js +0 -53
  106. package/dist/containers/editor-widgets/code-block.js +0 -128
  107. package/dist/containers/editor-widgets/column.js +0 -100
  108. package/dist/containers/editor-widgets/formula.js +0 -67
  109. package/dist/containers/editor-widgets/image.js +0 -237
  110. package/dist/containers/editor-widgets/link.js +0 -9
  111. package/dist/containers/editor-widgets/table.js +0 -144
  112. package/dist/containers/element-model/blockquote.js +0 -13
  113. package/dist/containers/element-model/column.js +0 -19
  114. package/dist/containers/element-model/image.js +0 -16
  115. package/dist/containers/element-model/link.js +0 -16
  116. package/dist/containers/element-model/table.js +0 -57
  117. package/dist/containers/element-model/text.js +0 -10
  118. package/dist/containers/render-utils/common-utils.js +0 -80
  119. package/dist/containers/render-utils/editor-utils.js +0 -133
  120. package/dist/containers/render-utils/viewer-utils.js +0 -198
  121. package/dist/containers/viewer-widgets/viewer-formula/index.js +0 -54
  122. package/dist/containers/viewer-widgets/viewer-image/index.js +0 -70
  123. package/dist/containers/viewer-widgets/viewer-image/viewer-image.css +0 -3
  124. package/dist/editors/index.js +0 -78
  125. package/dist/editors/markdown-editor.js +0 -280
  126. package/dist/editors/plain-markdown-editor.js +0 -285
  127. package/dist/editors/seatable-editor.js +0 -210
  128. package/dist/editors/simple-editor.js +0 -200
  129. package/dist/utils/deserialize-html.js +0 -260
  130. package/dist/utils/diff/compare-strings.js +0 -35
  131. package/dist/utils/diff/diff.js +0 -769
  132. package/dist/utils/diff/index.js +0 -2
  133. package/dist/utils/seafile-markdown2html.js +0 -52
  134. package/dist/utils/slate2markdown/deserialize.js +0 -588
  135. package/dist/utils/slate2markdown/index.js +0 -3
  136. package/dist/utils/slate2markdown/serialize.js +0 -366
  137. package/dist/utils/utils.js +0 -69
  138. package/dist/viewer/diff-viewer.js +0 -85
  139. package/dist/viewer/index.js +0 -4
  140. package/dist/viewer/markdown-viewer.js +0 -121
  141. package/dist/viewer/seatable-viewer.js +0 -63
  142. package/dist/viewer/slate-viewer.js +0 -71
  143. /package/dist/assets/css/{new-editor-toolbar.css → sdoc-editor-toolbar.css} +0 -0
  144. /package/dist/assets/css/{new-editor.css → sdoc-editor.css} +0 -0
@@ -1,366 +0,0 @@
1
- import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
- import { Text, Node } from 'slate';
3
- import { isEmptyParagraph } from '../utils';
4
- var unified = require('unified');
5
- var stringify = require('remark-stringify');
6
- var math = require('remark-math/block');
7
- function getProcessor() {
8
- var processor = unified().use(stringify, {
9
- rule: '-',
10
- ruleSpaces: false,
11
- listItemIndent: 1,
12
- bullet: '*',
13
- commonmark: true,
14
- fences: true
15
- }).use(math);
16
- return processor;
17
- }
18
- function _getCodeValue(node) {
19
- // code > bold | code > italic
20
- // code > bold > italic | code > italic > italic
21
- if (node && node.children) {
22
- node = node.children[0];
23
- return _getCodeValue(node);
24
- }
25
- return node.value;
26
- }
27
- function _applyMark(node, markString) {
28
- switch (markString) {
29
- case 'BOLD':
30
- return {
31
- type: 'strong',
32
- children: [node]
33
- };
34
- case 'ITALIC':
35
- return {
36
- type: 'emphasis',
37
- children: [node]
38
- };
39
- case 'CODE':
40
- return {
41
- type: 'inlineCode',
42
- value: _getCodeValue(node)
43
- };
44
- default:
45
- console.log('unknown mark string: ' + markString);
46
- return node;
47
- }
48
- }
49
- function _text2MdNodes(node) {
50
- var mdNode = {};
51
- var textKeys = Object.keys(node);
52
- var marks = [];
53
- textKeys.forEach(function (key) {
54
- if (node[key] && key !== 'text') marks.push(key);
55
- });
56
- if (marks.length === 0) {
57
- mdNode = {
58
- type: 'text',
59
- value: node.text
60
- };
61
- } else {
62
- mdNode = {
63
- type: 'text',
64
- value: node.text
65
- };
66
- var _iterator = _createForOfIteratorHelper(marks),
67
- _step;
68
- try {
69
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
70
- var mark = _step.value;
71
- mdNode = _applyMark(mdNode, mark);
72
- }
73
- } catch (err) {
74
- _iterator.e(err);
75
- } finally {
76
- _iterator.f();
77
- }
78
- }
79
- return mdNode;
80
- }
81
- function _image2MdNode(node) {
82
- if (node.data.height || node.data.width) {
83
- var text = '<img ';
84
- for (var key in node.data) {
85
- text = text + key + '="' + node.data[key] + '" ';
86
- }
87
- text += '/>';
88
- return [{
89
- type: 'html',
90
- value: text
91
- }];
92
- } else {
93
- return {
94
- type: 'image',
95
- url: node.data.src,
96
- alt: node.data.alt ? node.data.alt : null,
97
- title: node.data.title ? node.data.title : null
98
- };
99
- }
100
- }
101
- function getTableAlignments(node) {
102
- var alignments = [];
103
- node.children[0].children.forEach(function (cell) {
104
- var alignment = cell.data ? cell.data.align : 'left';
105
- alignments.push(alignment);
106
- });
107
- return alignments;
108
- }
109
- function addChildNodeOrNodes(children, childNodeOrNodes) {
110
- if (childNodeOrNodes instanceof Array) {
111
- childNodeOrNodes.map(function (item) {
112
- return children.push(item);
113
- });
114
- } else {
115
- if (childNodeOrNodes !== undefined) children.push(childNodeOrNodes);
116
- }
117
- }
118
- function parseChildren(node) {
119
- var children = [];
120
- var _iterator2 = _createForOfIteratorHelper(node.children),
121
- _step2;
122
- try {
123
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
124
- var child = _step2.value;
125
- var ret = _slateNodeToMD(child);
126
- addChildNodeOrNodes(children, ret);
127
- }
128
- } catch (err) {
129
- _iterator2.e(err);
130
- } finally {
131
- _iterator2.f();
132
- }
133
- return children;
134
- }
135
- function _slateNodeToMD(node) {
136
- if (!Text.isText(node)) {
137
- var mdNodes;
138
- switch (node.type) {
139
- case 'paragraph':
140
- mdNodes = parseChildren(node);
141
- return {
142
- type: 'paragraph',
143
- children: mdNodes
144
- };
145
- case 'header_one':
146
- mdNodes = parseChildren(node);
147
- return {
148
- type: 'heading',
149
- depth: 1,
150
- children: mdNodes
151
- };
152
- case 'header_two':
153
- mdNodes = parseChildren(node);
154
- return {
155
- type: 'heading',
156
- depth: 2,
157
- children: mdNodes
158
- };
159
- case 'header_three':
160
- mdNodes = parseChildren(node);
161
- return {
162
- type: 'heading',
163
- depth: 3,
164
- children: mdNodes
165
- };
166
- case 'header_four':
167
- mdNodes = parseChildren(node);
168
- return {
169
- type: 'heading',
170
- depth: 4,
171
- children: mdNodes
172
- };
173
- case 'header_five':
174
- mdNodes = parseChildren(node);
175
- return {
176
- type: 'heading',
177
- depth: 5,
178
- children: mdNodes
179
- };
180
- case 'header_six':
181
- mdNodes = parseChildren(node);
182
- return {
183
- type: 'heading',
184
- depth: 6,
185
- children: mdNodes
186
- };
187
- case 'hr':
188
- return {
189
- type: 'thematicBreak'
190
- };
191
- case 'ordered_list':
192
- mdNodes = parseChildren(node);
193
- var loose = false;
194
- var _iterator3 = _createForOfIteratorHelper(mdNodes),
195
- _step3;
196
- try {
197
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
198
- var _node = _step3.value;
199
- if (_node.loose === true) {
200
- loose = true;
201
- break;
202
- }
203
- }
204
- } catch (err) {
205
- _iterator3.e(err);
206
- } finally {
207
- _iterator3.f();
208
- }
209
- return {
210
- type: 'list',
211
- ordered: true,
212
- start: 1,
213
- loose: loose,
214
- children: mdNodes
215
- };
216
- case 'unordered_list':
217
- mdNodes = parseChildren(node);
218
- var loose = false;
219
- var _iterator4 = _createForOfIteratorHelper(mdNodes),
220
- _step4;
221
- try {
222
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
223
- var _node2 = _step4.value;
224
- if (_node2.loose === true) {
225
- loose = true;
226
- break;
227
- }
228
- }
229
- } catch (err) {
230
- _iterator4.e(err);
231
- } finally {
232
- _iterator4.f();
233
- }
234
- return {
235
- type: 'list',
236
- ordered: false,
237
- start: 1,
238
- loose: loose,
239
- children: mdNodes
240
- };
241
- case 'list_item':
242
- mdNodes = parseChildren(node);
243
- var loose = false;
244
- if (mdNodes) {
245
- if (mdNodes.length === 1) {
246
- loose = false;
247
- } else if (mdNodes.length === 2 && mdNodes[1].type === 'list') {
248
- loose = false;
249
- } else {
250
- loose = true;
251
- }
252
- }
253
- return {
254
- type: 'listItem',
255
- loose: loose,
256
- checked: node.data.checked !== undefined ? node.data.checked : null,
257
- children: mdNodes
258
- };
259
- case 'code_block':
260
- mdNodes = parseChildren(node);
261
- return {
262
- type: 'code',
263
- lang: node.data.syntax ? node.data.syntax : null,
264
- value: mdNodes.join('')
265
- };
266
- case 'code_line':
267
- return Node.text(node) + '\n';
268
- case 'table':
269
- mdNodes = parseChildren(node);
270
- return {
271
- type: 'table',
272
- align: getTableAlignments(node),
273
- children: mdNodes
274
- };
275
- case 'table_row':
276
- mdNodes = parseChildren(node);
277
- return {
278
- type: 'tableRow',
279
- children: mdNodes
280
- };
281
- case 'table_cell':
282
- mdNodes = parseChildren(node);
283
- return {
284
- type: 'tableCell',
285
- children: mdNodes
286
- };
287
- case 'blockquote':
288
- mdNodes = parseChildren(node);
289
- return {
290
- type: 'blockquote',
291
- children: mdNodes
292
- };
293
- case 'html_block':
294
- return {
295
- type: 'html',
296
- value: node.data.html
297
- };
298
- case 'image':
299
- return _image2MdNode(node);
300
- case 'link':
301
- mdNodes = parseChildren(node);
302
- return {
303
- type: 'link',
304
- url: node.data.href,
305
- title: node.data.title ? node.data.title : null,
306
- children: mdNodes
307
- };
308
- case 'formula':
309
- var data = node.data;
310
- return {
311
- type: 'math',
312
- value: data.formula
313
- };
314
- case 'column':
315
- {
316
- var _data = node.data;
317
- var newNode = {
318
- text: "{".concat(_data.name, "}")
319
- };
320
- return _text2MdNodes(newNode);
321
- }
322
- default:
323
- // turn the block to paragraph default when it`s type is unknown
324
- mdNodes = parseChildren(node);
325
- return {
326
- type: 'paragraph',
327
- children: mdNodes
328
- };
329
- }
330
- } else if (Text.isText(node)) {
331
- return _text2MdNodes(node);
332
- }
333
- }
334
-
335
- /**
336
- * @param value : a JSON object of editor value
337
- * @returns markdownContent
338
- */
339
-
340
- function serialize(value) {
341
- // Return an empty string when the article only has an empty paragraph
342
- if (value.length === 1 && isEmptyParagraph(value[0])) {
343
- return '';
344
- }
345
- var children = [];
346
- var _iterator5 = _createForOfIteratorHelper(value),
347
- _step5;
348
- try {
349
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
350
- var child = _step5.value;
351
- addChildNodeOrNodes(children, _slateNodeToMD(child));
352
- }
353
- } catch (err) {
354
- _iterator5.e(err);
355
- } finally {
356
- _iterator5.f();
357
- }
358
- var root = {
359
- type: 'root',
360
- children: children
361
- };
362
- var processor = getProcessor();
363
- var content = processor.stringify(root);
364
- return content;
365
- }
366
- export { serialize };
@@ -1,69 +0,0 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import { Node, Text } from 'slate';
3
- export var Utils = {
4
- pathNormalize: function pathNormalize(originalPath) {
5
- var oldPath = originalPath.split('/');
6
- var newPath = [];
7
- for (var i = 0; i < oldPath.length; i++) {
8
- if (oldPath[i] === '.' || oldPath[i] === '') {
9
- continue;
10
- } else if (oldPath[i] === '..') {
11
- newPath.pop();
12
- } else {
13
- newPath.push(oldPath[i]);
14
- }
15
- }
16
- return newPath.join('/');
17
- }
18
- };
19
- export var isEmptyParagraph = function isEmptyParagraph(node) {
20
- if (node.type !== 'paragraph') return false;
21
- if (node.children.length === 1 && Text.isText(node.children[0]) && Node.text(node).length === 0) {
22
- return true;
23
- }
24
- return false;
25
- };
26
-
27
- // root -> paragraph ->
28
- export var replaceColumnData = function replaceColumnData(mdNodes, columns, getCellValue, updateImgUrl) {
29
- var _loop = function _loop() {
30
- var node = mdNodes[i];
31
- if (node.type === 'column') {
32
- var data = node.data;
33
- var column = columns.find(function (column) {
34
- return column.key === data.key;
35
- });
36
- var value = column ? getCellValue && getCellValue(column) : '';
37
- // change column node to text node
38
- var newNode = {
39
- 'text': value,
40
- "BOLD": data.bold,
41
- "ITALIC": data.italic
42
- };
43
- mdNodes.splice(i, 1, newNode);
44
- return "continue";
45
- }
46
- // replace image node's src
47
- if (node.type === 'image') {
48
- var _data = node.data || {
49
- src: ''
50
- };
51
- if (updateImgUrl && typeof updateImgUrl === 'function') {
52
- var src = updateImgUrl(_data.src);
53
- var newData = _objectSpread(_objectSpread({}, _data), {
54
- src: src
55
- });
56
- node.data = newData;
57
- }
58
- }
59
- // if node has children, traverse node's children
60
- if (node.children) {
61
- var nodes = node.children;
62
- replaceColumnData(nodes, columns, getCellValue, updateImgUrl);
63
- }
64
- };
65
- for (var i = 0; i < mdNodes.length; i++) {
66
- var _ret = _loop();
67
- if (_ret === "continue") continue;
68
- }
69
- };
@@ -1,85 +0,0 @@
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 LoadScript from '../components/load-script';
7
- import SlateViewer from '../viewer/slate-viewer';
8
- import { SlateDiff } from '../utils/diff';
9
- import { renderNode, renderLeaf } from '../containers/render-utils/viewer-utils';
10
- import '../assets/css/diff-viewer.css';
11
- var DiffViewer = /*#__PURE__*/function (_React$PureComponent) {
12
- _inherits(DiffViewer, _React$PureComponent);
13
- var _super = _createSuper(DiffViewer);
14
- function DiffViewer(_props) {
15
- var _this;
16
- _classCallCheck(this, DiffViewer);
17
- _this = _super.call(this, _props);
18
- _this.renderDiffNode = function (props) {
19
- var element = props.element;
20
- var data = element.data ? element.data : {};
21
- var diffState = data['diff_state'];
22
- var nodeDepth = data['node_depth'];
23
- if (diffState === 'diff-added') {
24
- if (nodeDepth > 1) {
25
- if (element.type === 'blockquote' || element.type === 'code_block') {
26
- return /*#__PURE__*/React.createElement("div", {
27
- className: 'diff-added-container'
28
- }, renderNode(props));
29
- }
30
- return renderNode(props);
31
- } else {
32
- return /*#__PURE__*/React.createElement("div", {
33
- className: 'diff-added'
34
- }, renderNode(props));
35
- }
36
- } else if (diffState === 'diff-removed') {
37
- if (nodeDepth > 1) {
38
- if (element.type === 'blockquote' || element.type === 'code_block') {
39
- return /*#__PURE__*/React.createElement("div", {
40
- className: 'diff-removed-container'
41
- }, renderNode(props));
42
- }
43
- return renderNode(props);
44
- } else {
45
- return /*#__PURE__*/React.createElement("div", {
46
- className: 'diff-removed'
47
- }, renderNode(props));
48
- }
49
- } else if (diffState === 'diff-replaced') {
50
- if (nodeDepth > 1) {
51
- return renderNode(props);
52
- } else {
53
- return /*#__PURE__*/React.createElement("div", {
54
- className: 'diff-replaced'
55
- }, renderNode(props));
56
- }
57
- } else {
58
- return renderNode(props);
59
- }
60
- };
61
- _this.value = [];
62
- _this.slateDiff = new SlateDiff();
63
- return _this;
64
- }
65
- _createClass(DiffViewer, [{
66
- key: "render",
67
- value: function render() {
68
- var newMarkdownContent = this.props.newMarkdownContent;
69
- var oldMarkdownContent = this.props.oldMarkdownContent;
70
- this.value = this.slateDiff.getDiffDocument(newMarkdownContent, oldMarkdownContent);
71
- return /*#__PURE__*/React.createElement(LoadScript, {
72
- scriptSource: this.props.scriptSource
73
- }, /*#__PURE__*/React.createElement(SlateViewer, {
74
- style: {
75
- width: '100%'
76
- },
77
- renderDiffElement: this.renderDiffNode,
78
- renderDiffLeaf: renderLeaf,
79
- value: this.value
80
- }));
81
- }
82
- }]);
83
- return DiffViewer;
84
- }(React.PureComponent);
85
- export default DiffViewer;
@@ -1,4 +0,0 @@
1
- import DiffViewer from './diff-viewer';
2
- import MarkdownViewer from './markdown-viewer';
3
- import SeatableViewer from './seatable-viewer';
4
- export { DiffViewer, MarkdownViewer, SeatableViewer };
@@ -1,121 +0,0 @@
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 { deserialize } from '../utils/slate2markdown';
7
- import OutlineView from '../components/outline';
8
- import LoadScript from '../components/load-script';
9
- import SlateViewer from './slate-viewer';
10
- import '../assets/css/markdown-viewer.css';
11
- var URL = require('url-parse');
12
- var MarkdownViewer = /*#__PURE__*/function (_React$Component) {
13
- _inherits(MarkdownViewer, _React$Component);
14
- var _super = _createSuper(MarkdownViewer);
15
- function MarkdownViewer(props) {
16
- var _this;
17
- _classCallCheck(this, MarkdownViewer);
18
- _this = _super.call(this, props);
19
- _this.scrollToNode = function (node) {
20
- var url = new URL(window.location.href);
21
- url.set('hash', 'user-content-' + node.children[0].text);
22
- window.location.href = url.toString();
23
- };
24
- _this.getTitlesInfo = function () {
25
- var titlesInfo = [];
26
- var headingList = document.querySelectorAll('h2[id^="user-content"], h3[id^="user-content"]');
27
- for (var i = 0; i < headingList.length; i++) {
28
- titlesInfo.push(headingList[i].offsetTop);
29
- }
30
- _this.titlesInfo = titlesInfo;
31
- };
32
- _this.deserializeValue = function (markdownContent) {
33
- var nodes = deserialize(markdownContent);
34
- if (_this.props.modifyValueBeforeRender) {
35
- nodes = _this.props.modifyValueBeforeRender(nodes);
36
- }
37
- _this.setState({
38
- value: nodes
39
- });
40
- };
41
- _this.titlesInfo = [];
42
- _this.state = {
43
- value: null
44
- };
45
- return _this;
46
- }
47
- _createClass(MarkdownViewer, [{
48
- key: "componentWillMount",
49
- value: function componentWillMount() {
50
- this.deserializeValue(this.props.markdownContent);
51
- }
52
- }, {
53
- key: "componentDidMount",
54
- value: function componentDidMount() {
55
- if (this.props.showTOC) {
56
- this.getTitlesInfo();
57
- }
58
- if (this.props.onContentRendered) {
59
- this.props.onContentRendered(this);
60
- }
61
- window.markdownViewer = this;
62
- }
63
- }, {
64
- key: "componentWillReceiveProps",
65
- value: function componentWillReceiveProps(nextProps) {
66
- if (this.props.markdownContent !== nextProps.markdownContent) {
67
- this.deserializeValue(nextProps.markdownContent);
68
- }
69
- }
70
- }, {
71
- key: "componentWillUnmount",
72
- value: function componentWillUnmount() {
73
- window.markdownViewer = null;
74
- }
75
- }, {
76
- key: "render",
77
- value: function render() {
78
- var value = this.state.value;
79
- if (!value) return null;
80
- var _this$props = this.props,
81
- scriptSource = _this$props.scriptSource,
82
- showTOC = _this$props.showTOC,
83
- activeTitleIndex = _this$props.activeTitleIndex,
84
- updateForNoOutline = _this$props.updateForNoOutline;
85
- if (scriptSource) {
86
- return /*#__PURE__*/React.createElement(LoadScript, {
87
- scriptSource: this.props.scriptSource
88
- }, /*#__PURE__*/React.createElement(SlateViewer, {
89
- value: value
90
- }), showTOC && /*#__PURE__*/React.createElement("div", {
91
- className: "seafile-markdown-outline"
92
- }, /*#__PURE__*/React.createElement(OutlineView, {
93
- document: value,
94
- isViewer: true,
95
- activeTitleIndex: activeTitleIndex,
96
- scrollToNode: this.scrollToNode,
97
- updateForNoOutline: updateForNoOutline
98
- })));
99
- }
100
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(SlateViewer, {
101
- value: value
102
- }), showTOC && /*#__PURE__*/React.createElement("div", {
103
- className: "seafile-markdown-outline"
104
- }, /*#__PURE__*/React.createElement(OutlineView, {
105
- document: value,
106
- isViewer: true,
107
- activeTitleIndex: activeTitleIndex,
108
- scrollToNode: this.scrollToNode
109
- })));
110
- }
111
- }]);
112
- return MarkdownViewer;
113
- }(React.Component);
114
- var defaultProps = {
115
- activeTitleIndex: 0,
116
- markdownContent: '',
117
- showTOC: true,
118
- isShared: false
119
- };
120
- MarkdownViewer.defaultProps = defaultProps;
121
- export default MarkdownViewer;
@@ -1,63 +0,0 @@
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 SlateViewer from './slate-viewer';
7
- import '../assets/css/markdown-viewer.css';
8
- var SeatableViewer = /*#__PURE__*/function (_React$Component) {
9
- _inherits(SeatableViewer, _React$Component);
10
- var _super = _createSuper(SeatableViewer);
11
- function SeatableViewer(props) {
12
- var _this;
13
- _classCallCheck(this, SeatableViewer);
14
- _this = _super.call(this, props);
15
- _this.updateValue = function (nodes) {
16
- var newValue = nodes ? JSON.parse(nodes) : '';
17
- _this.setState({
18
- value: newValue
19
- });
20
- };
21
- _this.state = {
22
- value: null
23
- };
24
- return _this;
25
- }
26
- _createClass(SeatableViewer, [{
27
- key: "componentWillMount",
28
- value: function componentWillMount() {
29
- this.updateValue(this.props.markdownContent);
30
- }
31
- }, {
32
- key: "componentDidMount",
33
- value: function componentDidMount() {
34
- window.markdownViewer = this;
35
- }
36
- }, {
37
- key: "componentWillReceiveProps",
38
- value: function componentWillReceiveProps(nextProps) {
39
- if (this.props.markdownContent !== nextProps.markdownContent) {
40
- this.updateValue(nextProps.markdownContent);
41
- }
42
- }
43
- }, {
44
- key: "componentWillUnmount",
45
- value: function componentWillUnmount() {
46
- window.markdownViewer = null;
47
- }
48
- }, {
49
- key: "render",
50
- value: function render() {
51
- var value = this.state.value;
52
- if (!value) return null;
53
- return /*#__PURE__*/React.createElement(SlateViewer, {
54
- value: value
55
- });
56
- }
57
- }]);
58
- return SeatableViewer;
59
- }(React.Component);
60
- SeatableViewer.defaultProps = {
61
- markdownContent: ''
62
- };
63
- export default SeatableViewer;