@seafile/sdoc-editor 0.1.0 → 0.1.2

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 (149) hide show
  1. package/dist/{new-editors/editor.js → editor.js} +38 -17
  2. package/dist/index.js +2 -36
  3. package/dist/slate-extension/core/transforms/move-children.js +1 -1
  4. package/dist/slate-extension/plugins/blockquote/helpers.js +3 -3
  5. package/dist/slate-extension/plugins/index.js +3 -2
  6. package/dist/slate-extension/plugins/list/transforms/normalize-list-item.js +2 -2
  7. package/dist/slate-extension/plugins/list/transforms/toggle-list.js +6 -8
  8. package/dist/slate-extension/plugins/socket/index.js +6 -0
  9. package/dist/slate-extension/plugins/socket/plugin.js +23 -0
  10. package/dist/slate-extension/socket/socket-client.js +94 -0
  11. package/dist/slate-extension/socket/socket-manager.js +63 -0
  12. package/dist/slate-extension/toolbar/index.js +1 -1
  13. package/dist/utils/event-bus.js +39 -0
  14. package/package.json +5 -25
  15. package/dist/assets/css/comment-dialog.css +0 -50
  16. package/dist/assets/css/diff-viewer.css +0 -105
  17. package/dist/assets/css/formula.css +0 -19
  18. package/dist/assets/css/history-viewer.css +0 -104
  19. package/dist/assets/css/image.css +0 -134
  20. package/dist/assets/css/issue-card.css +0 -43
  21. package/dist/assets/css/keyboard-shortcuts.css +0 -58
  22. package/dist/assets/css/link.css +0 -7
  23. package/dist/assets/css/markdown-editor.css +0 -12
  24. package/dist/assets/css/markdown-viewer.css +0 -69
  25. package/dist/assets/css/navbar-imgbutton.css +0 -83
  26. package/dist/assets/css/outline.css +0 -29
  27. package/dist/assets/css/table.css +0 -57
  28. package/dist/assets/css/textlink-hovermenu.css +0 -47
  29. package/dist/assets/css/topbar.css +0 -350
  30. package/dist/assets/css/tree-view.css +0 -67
  31. package/dist/assets/css/user-help.css +0 -84
  32. package/dist/assets/editor/plain-editor.css +0 -30
  33. package/dist/assets/editor/seatable-editor.css +0 -77
  34. package/dist/assets/editor/simple-editor.css +0 -77
  35. package/dist/components/click-outside.js +0 -46
  36. package/dist/components/context-menu.js +0 -97
  37. package/dist/components/dialogs/add-formula-dialog.js +0 -116
  38. package/dist/components/dialogs/add-image-dialog.js +0 -69
  39. package/dist/components/dialogs/add-link-dialog.js +0 -133
  40. package/dist/components/dialogs/comment-dialog.js +0 -97
  41. package/dist/components/dialogs/shortcut-dialog.js +0 -131
  42. package/dist/components/error-boundary.js +0 -28
  43. package/dist/components/load-script/index.js +0 -69
  44. package/dist/components/loading.js +0 -25
  45. package/dist/components/markdown-lint.js +0 -72
  46. package/dist/components/menu/index.js +0 -4
  47. package/dist/components/menu/item.js +0 -49
  48. package/dist/components/menu/menu.js +0 -38
  49. package/dist/components/menu/style.css +0 -42
  50. package/dist/components/modal-portal.js +0 -38
  51. package/dist/components/outline/index.js +0 -92
  52. package/dist/components/outline/outline-item.js +0 -58
  53. package/dist/components/select/_option.js +0 -44
  54. package/dist/components/select/field-setting.js +0 -106
  55. package/dist/components/select/index.js +0 -149
  56. package/dist/components/select/style.css +0 -144
  57. package/dist/components/svg-icons/check-mark-icon.js +0 -14
  58. package/dist/components/svg-icons/column-icon.js +0 -17
  59. package/dist/components/svg-icons/text-icon.js +0 -34
  60. package/dist/components/text-link-hover-menu/index.js +0 -123
  61. package/dist/components/toast/alert.js +0 -138
  62. package/dist/components/toast/index.js +0 -3
  63. package/dist/components/toast/toast.js +0 -159
  64. package/dist/components/toast/toastManager.js +0 -139
  65. package/dist/components/toast/toaster.js +0 -65
  66. package/dist/components/toolbar/header-list.js +0 -114
  67. package/dist/components/toolbar/help-group.js +0 -33
  68. package/dist/components/toolbar/index.js +0 -4
  69. package/dist/components/toolbar/insert-image.js +0 -106
  70. package/dist/components/toolbar/insert-table.js +0 -136
  71. package/dist/components/toolbar/table-group.js +0 -74
  72. package/dist/components/toolbar/toolbar.js +0 -317
  73. package/dist/components/toolbar/widgets/button-group.js +0 -24
  74. package/dist/components/toolbar/widgets/button-item.js +0 -129
  75. package/dist/components/toolbar/widgets/drop-list.js +0 -88
  76. package/dist/components/user-help/index.js +0 -179
  77. package/dist/config-0.js +0 -15
  78. package/dist/config.js +0 -16
  79. package/dist/constants/cell-types.js +0 -29
  80. package/dist/constants/column.js +0 -4
  81. package/dist/containers/code-highlight-package.js +0 -14
  82. package/dist/containers/controller/block-element-controller.js +0 -375
  83. package/dist/containers/controller/index.js +0 -5
  84. package/dist/containers/controller/inline-element-controller.js +0 -134
  85. package/dist/containers/controller/normalize-controller.js +0 -95
  86. package/dist/containers/controller/shortcut-controller.js +0 -385
  87. package/dist/containers/controller/void-element-controller.js +0 -9
  88. package/dist/containers/custom/custom.js +0 -18
  89. package/dist/containers/custom/get-event-transfer.js +0 -33
  90. package/dist/containers/custom/getNodesByTypeAtRange.js +0 -57
  91. package/dist/containers/custom/insertNodes.js +0 -120
  92. package/dist/containers/custom/is-empty-paragraph.js +0 -9
  93. package/dist/containers/custom/set-event-transfer.js +0 -30
  94. package/dist/containers/custom/split-nodes-at-point.js +0 -136
  95. package/dist/containers/custom/unwrap-node-by-type-at-range.js +0 -70
  96. package/dist/containers/editor-context.js +0 -85
  97. package/dist/containers/editor-utils/block-element-utils/blockquote-utils.js +0 -80
  98. package/dist/containers/editor-utils/block-element-utils/code-utils.js +0 -145
  99. package/dist/containers/editor-utils/block-element-utils/formula-utils.js +0 -51
  100. package/dist/containers/editor-utils/block-element-utils/index.js +0 -31
  101. package/dist/containers/editor-utils/block-element-utils/list-utils.js +0 -395
  102. package/dist/containers/editor-utils/block-element-utils/table-utils.js +0 -412
  103. package/dist/containers/editor-utils/clear-format-utils.js +0 -84
  104. package/dist/containers/editor-utils/common-editor-utils.js +0 -492
  105. package/dist/containers/editor-utils/inline-element-utils/index.js +0 -95
  106. package/dist/containers/editor-utils/mark-utils.js +0 -20
  107. package/dist/containers/editor-utils/range-utils.js +0 -7
  108. package/dist/containers/editor-utils/selection-utils.js +0 -30
  109. package/dist/containers/editor-utils/text-utils.js +0 -117
  110. package/dist/containers/editor-widgets/check-list-item.js +0 -53
  111. package/dist/containers/editor-widgets/code-block.js +0 -128
  112. package/dist/containers/editor-widgets/column.js +0 -100
  113. package/dist/containers/editor-widgets/formula.js +0 -67
  114. package/dist/containers/editor-widgets/image.js +0 -237
  115. package/dist/containers/editor-widgets/link.js +0 -9
  116. package/dist/containers/editor-widgets/table.js +0 -144
  117. package/dist/containers/element-model/blockquote.js +0 -13
  118. package/dist/containers/element-model/column.js +0 -19
  119. package/dist/containers/element-model/image.js +0 -16
  120. package/dist/containers/element-model/link.js +0 -16
  121. package/dist/containers/element-model/table.js +0 -57
  122. package/dist/containers/element-model/text.js +0 -10
  123. package/dist/containers/render-utils/common-utils.js +0 -80
  124. package/dist/containers/render-utils/editor-utils.js +0 -133
  125. package/dist/containers/render-utils/viewer-utils.js +0 -198
  126. package/dist/containers/viewer-widgets/viewer-formula/index.js +0 -54
  127. package/dist/containers/viewer-widgets/viewer-image/index.js +0 -70
  128. package/dist/containers/viewer-widgets/viewer-image/viewer-image.css +0 -3
  129. package/dist/editors/index.js +0 -78
  130. package/dist/editors/markdown-editor.js +0 -280
  131. package/dist/editors/plain-markdown-editor.js +0 -285
  132. package/dist/editors/seatable-editor.js +0 -210
  133. package/dist/editors/simple-editor.js +0 -200
  134. package/dist/utils/deserialize-html.js +0 -260
  135. package/dist/utils/diff/compare-strings.js +0 -35
  136. package/dist/utils/diff/diff.js +0 -769
  137. package/dist/utils/diff/index.js +0 -2
  138. package/dist/utils/seafile-markdown2html.js +0 -52
  139. package/dist/utils/slate2markdown/deserialize.js +0 -588
  140. package/dist/utils/slate2markdown/index.js +0 -3
  141. package/dist/utils/slate2markdown/serialize.js +0 -366
  142. package/dist/utils/utils.js +0 -69
  143. package/dist/viewer/diff-viewer.js +0 -85
  144. package/dist/viewer/index.js +0 -4
  145. package/dist/viewer/markdown-viewer.js +0 -121
  146. package/dist/viewer/seatable-viewer.js +0 -63
  147. package/dist/viewer/slate-viewer.js +0 -71
  148. /package/dist/assets/css/{new-editor-toolbar.css → sdoc-editor-toolbar.css} +0 -0
  149. /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;