dtable-ui-component 0.1.61 → 0.1.65

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.
@@ -0,0 +1,415 @@
1
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
+
3
+ var unified = require('./unified');
4
+
5
+ var stringify = require('remark-stringify');
6
+
7
+ var processor = unified().use(stringify, {
8
+ rule: '-',
9
+ ruleSpaces: false,
10
+ listItemIndent: 1,
11
+ bullet: '*',
12
+ commonmark: true,
13
+ fences: true
14
+ });
15
+
16
+ function _applyMark(node, markString) {
17
+ switch (markString) {
18
+ case 'BOLD':
19
+ return {
20
+ type: 'strong',
21
+ children: [node]
22
+ };
23
+
24
+ case 'ITALIC':
25
+ return {
26
+ type: 'emphasis',
27
+ children: [node]
28
+ };
29
+
30
+ case 'CODE':
31
+ return {
32
+ type: 'inlineCode',
33
+ value: node.value
34
+ };
35
+
36
+ default:
37
+ console.log('unknown mark string: ' + markString);
38
+ return node;
39
+ }
40
+ }
41
+ /*
42
+ object: text
43
+ leaves:
44
+ - text: 'Hello '
45
+ marks: []
46
+ - text: World
47
+ marks:
48
+ - type: BOLD
49
+
50
+ --->
51
+ Hello **World**
52
+ */
53
+
54
+
55
+ function _text2MdNodes(node) {
56
+ var mdNodes = [];
57
+
58
+ var _iterator = _createForOfIteratorHelper(node.leaves),
59
+ _step;
60
+
61
+ try {
62
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
63
+ var leaf = _step.value;
64
+ var mdNode = {
65
+ type: 'text',
66
+ value: leaf.text
67
+ };
68
+
69
+ var _iterator2 = _createForOfIteratorHelper(leaf.marks),
70
+ _step2;
71
+
72
+ try {
73
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
74
+ var mark = _step2.value;
75
+ mdNode = _applyMark(mdNode, mark.type);
76
+ }
77
+ } catch (err) {
78
+ _iterator2.e(err);
79
+ } finally {
80
+ _iterator2.f();
81
+ }
82
+
83
+ mdNodes.push(mdNode);
84
+ }
85
+ } catch (err) {
86
+ _iterator.e(err);
87
+ } finally {
88
+ _iterator.f();
89
+ }
90
+
91
+ return mdNodes;
92
+ }
93
+
94
+ function _image2MdNode(node) {
95
+ if (node.data.height || node.data.width) {
96
+ var text = '<img ';
97
+
98
+ for (var key in node.data) {
99
+ text = text + key + '="' + node.data[key] + '" ';
100
+ }
101
+
102
+ text += '/>';
103
+ return [{
104
+ type: 'html',
105
+ value: text
106
+ }];
107
+ } else {
108
+ return {
109
+ type: 'image',
110
+ url: node.data.src,
111
+ alt: node.data.alt ? node.data.alt : null,
112
+ title: node.data.title ? node.data.title : null
113
+ };
114
+ }
115
+ }
116
+
117
+ function addChildNodeOrNodes(children, childNodeOrNodes) {
118
+ if (childNodeOrNodes instanceof Array) {
119
+ childNodeOrNodes.map(function (item) {
120
+ return children.push(item);
121
+ });
122
+ } else {
123
+ if (childNodeOrNodes !== undefined) children.push(childNodeOrNodes);
124
+ }
125
+ }
126
+
127
+ function parseChildren(node) {
128
+ var children = [];
129
+
130
+ var _iterator3 = _createForOfIteratorHelper(node.nodes),
131
+ _step3;
132
+
133
+ try {
134
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
135
+ var child = _step3.value;
136
+
137
+ var ret = _slateNodeToMD(child);
138
+
139
+ addChildNodeOrNodes(children, ret);
140
+ }
141
+ } catch (err) {
142
+ _iterator3.e(err);
143
+ } finally {
144
+ _iterator3.f();
145
+ }
146
+
147
+ return children;
148
+ }
149
+
150
+ function _slateNodeToMD(node) {
151
+ if (node.object == 'block') {
152
+ var mdNodes;
153
+
154
+ switch (node.type) {
155
+ case 'paragraph':
156
+ mdNodes = parseChildren(node);
157
+ return {
158
+ type: 'paragraph',
159
+ children: mdNodes
160
+ };
161
+
162
+ case 'header_one':
163
+ mdNodes = parseChildren(node);
164
+ return {
165
+ type: 'heading',
166
+ depth: 1,
167
+ children: mdNodes
168
+ };
169
+
170
+ case 'header_two':
171
+ mdNodes = parseChildren(node);
172
+ return {
173
+ type: 'heading',
174
+ depth: 2,
175
+ children: mdNodes
176
+ };
177
+
178
+ case 'header_three':
179
+ mdNodes = parseChildren(node);
180
+ return {
181
+ type: 'heading',
182
+ depth: 3,
183
+ children: mdNodes
184
+ };
185
+
186
+ case 'header_four':
187
+ mdNodes = parseChildren(node);
188
+ return {
189
+ type: 'heading',
190
+ depth: 4,
191
+ children: mdNodes
192
+ };
193
+
194
+ case 'header_five':
195
+ mdNodes = parseChildren(node);
196
+ return {
197
+ type: 'heading',
198
+ depth: 5,
199
+ children: mdNodes
200
+ };
201
+
202
+ case 'header_six':
203
+ mdNodes = parseChildren(node);
204
+ return {
205
+ type: 'heading',
206
+ depth: 6,
207
+ children: mdNodes
208
+ };
209
+
210
+ case 'hr':
211
+ return {
212
+ type: 'thematicBreak'
213
+ };
214
+
215
+ case 'ordered_list':
216
+ mdNodes = parseChildren(node);
217
+ var loose = false;
218
+
219
+ var _iterator4 = _createForOfIteratorHelper(mdNodes),
220
+ _step4;
221
+
222
+ try {
223
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
224
+ var _node = _step4.value;
225
+
226
+ if (_node.loose == true) {
227
+ loose = true;
228
+ break;
229
+ }
230
+ }
231
+ } catch (err) {
232
+ _iterator4.e(err);
233
+ } finally {
234
+ _iterator4.f();
235
+ }
236
+
237
+ return {
238
+ type: 'list',
239
+ ordered: true,
240
+ start: 1,
241
+ loose: loose,
242
+ children: mdNodes
243
+ };
244
+
245
+ case 'unordered_list':
246
+ mdNodes = parseChildren(node);
247
+ var loose = false;
248
+
249
+ var _iterator5 = _createForOfIteratorHelper(mdNodes),
250
+ _step5;
251
+
252
+ try {
253
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
254
+ var _node2 = _step5.value;
255
+
256
+ if (_node2.loose === true) {
257
+ loose = true;
258
+ break;
259
+ }
260
+ }
261
+ } catch (err) {
262
+ _iterator5.e(err);
263
+ } finally {
264
+ _iterator5.f();
265
+ }
266
+
267
+ return {
268
+ type: 'list',
269
+ ordered: false,
270
+ start: 1,
271
+ loose: loose,
272
+ children: mdNodes
273
+ };
274
+
275
+ case 'list_item':
276
+ mdNodes = parseChildren(node);
277
+ var loose = false;
278
+
279
+ if (mdNodes) {
280
+ if (mdNodes.length == 1) {
281
+ loose = false;
282
+ } else if (mdNodes.length == 2 && mdNodes[1].type == 'list') {
283
+ loose = false;
284
+ } else {
285
+ loose = true;
286
+ }
287
+ }
288
+
289
+ return {
290
+ type: 'listItem',
291
+ loose: loose,
292
+ checked: node.data.checked !== undefined ? node.data.checked : null,
293
+ children: mdNodes
294
+ };
295
+
296
+ case 'code_block':
297
+ mdNodes = parseChildren(node);
298
+ return {
299
+ type: 'code',
300
+ lang: node.data.syntax ? node.data.syntax : null,
301
+ value: mdNodes.join('')
302
+ };
303
+
304
+ case 'code_line':
305
+ return node.nodes[0].leaves[0].text + '\n';
306
+
307
+ case 'table':
308
+ mdNodes = parseChildren(node);
309
+ return {
310
+ type: 'table',
311
+ align: node.data.align ? node.data.align : null,
312
+ children: mdNodes
313
+ };
314
+
315
+ case 'table_row':
316
+ mdNodes = parseChildren(node);
317
+ return {
318
+ type: 'tableRow',
319
+ children: mdNodes
320
+ };
321
+
322
+ case 'table_cell':
323
+ mdNodes = parseChildren(node);
324
+ return {
325
+ type: 'tableCell',
326
+ children: mdNodes
327
+ };
328
+
329
+ case 'blockquote':
330
+ mdNodes = parseChildren(node);
331
+ return {
332
+ type: 'blockquote',
333
+ children: mdNodes
334
+ };
335
+
336
+ case 'html_block':
337
+ return {
338
+ type: 'html',
339
+ value: node.data.html
340
+ };
341
+
342
+ default:
343
+ // turn the block to paragraph default when it`s type is unknown
344
+ mdNodes = parseChildren(node);
345
+ return {
346
+ type: 'paragraph',
347
+ children: mdNodes
348
+ };
349
+ }
350
+ } else if (node.object == 'text') {
351
+ return _text2MdNodes(node);
352
+ } else if (node.object == 'inline') {
353
+ var mdNodes;
354
+
355
+ switch (node.type) {
356
+ case 'image':
357
+ return _image2MdNode(node);
358
+
359
+ case 'link':
360
+ mdNodes = parseChildren(node);
361
+ return {
362
+ type: 'link',
363
+ url: node.data.href,
364
+ title: node.data.title ? node.data.title : null,
365
+ children: mdNodes
366
+ };
367
+
368
+ case 'html_block':
369
+ return {
370
+ type: 'html',
371
+ value: node.data.html
372
+ };
373
+ // turn inlines to text default, when there is no node.type
374
+
375
+ default:
376
+ return _text2MdNodes(node);
377
+ }
378
+ } else {
379
+ // turn the node to text default when it`s type neither is inline, block or text
380
+ return _text2MdNodes(node);
381
+ }
382
+ }
383
+ /**
384
+ * @param value : a JSON object of editor value
385
+ * @returns markdownContent
386
+ */
387
+
388
+
389
+ function serialize(value) {
390
+ var document = value.document;
391
+ var children = [];
392
+
393
+ var _iterator6 = _createForOfIteratorHelper(document.nodes),
394
+ _step6;
395
+
396
+ try {
397
+ for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
398
+ var child = _step6.value;
399
+ addChildNodeOrNodes(children, _slateNodeToMD(child));
400
+ }
401
+ } catch (err) {
402
+ _iterator6.e(err);
403
+ } finally {
404
+ _iterator6.f();
405
+ }
406
+
407
+ var root = {
408
+ type: 'root',
409
+ children: children
410
+ };
411
+ var content = processor.stringify(root);
412
+ return content;
413
+ }
414
+
415
+ export { serialize };