@pie-element/select-text 6.5.3-next.549 → 6.5.3-next.555
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.
- package/configure/lib/utils.js +41 -32
- package/configure/lib/utils.js.map +1 -1
- package/docs/demo/generate.js +371 -1
- package/lib/utils.js +41 -32
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
package/configure/lib/utils.js
CHANGED
|
@@ -9,6 +9,8 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -22,20 +24,12 @@ var createElementFromHTML = function createElementFromHTML() {
|
|
|
22
24
|
return div;
|
|
23
25
|
};
|
|
24
26
|
|
|
25
|
-
var parseBrs = function parseBrs(dom) {
|
|
26
|
-
var brs = dom.querySelectorAll('br');
|
|
27
|
-
brs.forEach(function (br) {
|
|
28
|
-
return br.replaceWith('\n');
|
|
29
|
-
});
|
|
30
|
-
dom.innerHTML = dom.innerHTML.replace(/\n\n/g, '\n');
|
|
31
|
-
};
|
|
32
|
-
|
|
33
27
|
var parseParagraph = function parseParagraph(paragraph, end) {
|
|
34
28
|
if (end) {
|
|
35
29
|
return paragraph.innerHTML;
|
|
36
30
|
}
|
|
37
31
|
|
|
38
|
-
return
|
|
32
|
+
return ''.concat(paragraph.innerHTML, '\n\n');
|
|
39
33
|
};
|
|
40
34
|
|
|
41
35
|
var parseParagraphs = function parseParagraphs(dom) {
|
|
@@ -50,42 +44,57 @@ var parseParagraphs = function parseParagraphs(dom) {
|
|
|
50
44
|
|
|
51
45
|
var prepareText = function prepareText(text) {
|
|
52
46
|
var txtDom = createElementFromHTML(text);
|
|
47
|
+
var div = document.createElement('div');
|
|
48
|
+
div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
|
|
49
|
+
txtDom = div;
|
|
53
50
|
var allDomElements = Array.from(txtDom.querySelectorAll('*'));
|
|
54
51
|
|
|
55
|
-
if (txtDom.querySelectorAll('div').length === 0) {
|
|
56
|
-
var div = document.createElement('div');
|
|
57
|
-
div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, "</div>");
|
|
58
|
-
txtDom = div;
|
|
59
|
-
} // if no dom elements, we just return the text
|
|
60
|
-
|
|
61
|
-
|
|
62
52
|
if (allDomElements.length === 0) {
|
|
63
53
|
return text;
|
|
64
54
|
}
|
|
65
55
|
|
|
66
|
-
parseBrs(txtDom);
|
|
67
56
|
return parseParagraphs(txtDom);
|
|
68
57
|
};
|
|
69
58
|
|
|
70
59
|
var _default = function _default(model) {
|
|
71
|
-
// parsing
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
if (!model) return model; // parsing
|
|
61
|
+
|
|
62
|
+
var modelText = prepareText(model.text || '');
|
|
63
|
+
var newTokens = (model.tokens || []).reduce(function (acc) {
|
|
64
|
+
var token = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
65
|
+
var tokenText = prepareText((model.text || '').slice(token.start, token.end));
|
|
66
|
+
|
|
67
|
+
if (!tokenText) {
|
|
68
|
+
return [].concat((0, _toConsumableArray2["default"])(acc), [token]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var getStartIndex = function getStartIndex(start) {
|
|
72
|
+
var length = start;
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
while (length >= 0) {
|
|
75
|
+
var newStartIndex = modelText.slice(length).indexOf(tokenText);
|
|
76
|
+
|
|
77
|
+
if (newStartIndex >= 0) {
|
|
78
|
+
return newStartIndex + length;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
length--;
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
return 0;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var lastToken = acc[acc.length - 1];
|
|
88
|
+
var newStart = getStartIndex(lastToken ? lastToken.end : token.start);
|
|
89
|
+
var newEnd = newStart + tokenText.length;
|
|
90
|
+
return [].concat((0, _toConsumableArray2["default"])(acc), [_objectSpread(_objectSpread({}, token), {}, {
|
|
91
|
+
text: tokenText,
|
|
92
|
+
start: newStart,
|
|
93
|
+
end: newEnd
|
|
94
|
+
})]);
|
|
95
|
+
}, []);
|
|
96
|
+
return _objectSpread(_objectSpread({}, model), {}, {
|
|
97
|
+
tokens: newTokens,
|
|
89
98
|
text: modelText
|
|
90
99
|
});
|
|
91
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd"],"mappings":"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","sourcesContent":["import React from 'react';\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd\n }\n ];\n }, []);\n\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText\n }\n}\n"],"file":"utils.js"}
|
package/docs/demo/generate.js
CHANGED
|
@@ -248,5 +248,375 @@ const simpleItem = {
|
|
|
248
248
|
};
|
|
249
249
|
|
|
250
250
|
exports.model = (id, element) => {
|
|
251
|
-
return Object.assign({}, { id, element }, base(
|
|
251
|
+
return Object.assign({}, { id, element }, base( {
|
|
252
|
+
"partialScoring": true,
|
|
253
|
+
"tokens": [
|
|
254
|
+
{
|
|
255
|
+
"correct": false,
|
|
256
|
+
"start": 3,
|
|
257
|
+
"end": 6,
|
|
258
|
+
"text": "Our"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"correct": false,
|
|
262
|
+
"start": 7,
|
|
263
|
+
"end": 16,
|
|
264
|
+
"text": "challenge"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"correct": false,
|
|
268
|
+
"start": 18,
|
|
269
|
+
"end": 21,
|
|
270
|
+
"text": "not"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"correct": false,
|
|
274
|
+
"start": 22,
|
|
275
|
+
"end": 30,
|
|
276
|
+
"text": "tomorrow"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"correct": false,
|
|
280
|
+
"start": 31,
|
|
281
|
+
"end": 34,
|
|
282
|
+
"text": "but"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"correct": false,
|
|
286
|
+
"start": 35,
|
|
287
|
+
"end": 40,
|
|
288
|
+
"text": "today"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"correct": false,
|
|
292
|
+
"start": 42,
|
|
293
|
+
"end": 44,
|
|
294
|
+
"text": "is"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"correct": false,
|
|
298
|
+
"start": 45,
|
|
299
|
+
"end": 47,
|
|
300
|
+
"text": "to"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"correct": false,
|
|
304
|
+
"start": 48,
|
|
305
|
+
"end": 58,
|
|
306
|
+
"text": "accomplish"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"correct": false,
|
|
310
|
+
"start": 59,
|
|
311
|
+
"end": 69,
|
|
312
|
+
"text": "objectives"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"correct": false,
|
|
316
|
+
"start": 70,
|
|
317
|
+
"end": 75,
|
|
318
|
+
"text": "which"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"correct": false,
|
|
322
|
+
"start": 76,
|
|
323
|
+
"end": 80,
|
|
324
|
+
"text": "have"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"correct": false,
|
|
328
|
+
"start": 81,
|
|
329
|
+
"end": 87,
|
|
330
|
+
"text": "eluded"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"correct": false,
|
|
334
|
+
"start": 88,
|
|
335
|
+
"end": 95,
|
|
336
|
+
"text": "mankind"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"correct": false,
|
|
340
|
+
"start": 96,
|
|
341
|
+
"end": 101,
|
|
342
|
+
"text": "since"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"correct": false,
|
|
346
|
+
"start": 102,
|
|
347
|
+
"end": 105,
|
|
348
|
+
"text": "the"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"correct": false,
|
|
352
|
+
"start": 106,
|
|
353
|
+
"end": 115,
|
|
354
|
+
"text": "beginning"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"correct": false,
|
|
358
|
+
"start": 116,
|
|
359
|
+
"end": 118,
|
|
360
|
+
"text": "of"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"correct": false,
|
|
364
|
+
"start": 119,
|
|
365
|
+
"end": 123,
|
|
366
|
+
"text": "time"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"correct": false,
|
|
370
|
+
"start": 125,
|
|
371
|
+
"end": 127,
|
|
372
|
+
"text": "We"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"correct": false,
|
|
376
|
+
"start": 128,
|
|
377
|
+
"end": 132,
|
|
378
|
+
"text": "must"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"correct": false,
|
|
382
|
+
"start": 133,
|
|
383
|
+
"end": 138,
|
|
384
|
+
"text": "bring"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"correct": false,
|
|
388
|
+
"start": 139,
|
|
389
|
+
"end": 144,
|
|
390
|
+
"text": "equal"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"correct": false,
|
|
394
|
+
"start": 145,
|
|
395
|
+
"end": 152,
|
|
396
|
+
"text": "justice"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"correct": false,
|
|
400
|
+
"start": 153,
|
|
401
|
+
"end": 155,
|
|
402
|
+
"text": "to"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"correct": false,
|
|
406
|
+
"start": 156,
|
|
407
|
+
"end": 159,
|
|
408
|
+
"text": "all"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"correct": false,
|
|
412
|
+
"start": 160,
|
|
413
|
+
"end": 163,
|
|
414
|
+
"text": "our"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"correct": false,
|
|
418
|
+
"start": 164,
|
|
419
|
+
"end": 172,
|
|
420
|
+
"text": "citizens"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"correct": false,
|
|
424
|
+
"start": 174,
|
|
425
|
+
"end": 176,
|
|
426
|
+
"text": "We"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"correct": false,
|
|
430
|
+
"start": 177,
|
|
431
|
+
"end": 181,
|
|
432
|
+
"text": "must"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"correct": false,
|
|
436
|
+
"start": 182,
|
|
437
|
+
"end": 189,
|
|
438
|
+
"text": "abolish"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"correct": false,
|
|
442
|
+
"start": 190,
|
|
443
|
+
"end": 195,
|
|
444
|
+
"text": "human"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"correct": true,
|
|
448
|
+
"start": 196,
|
|
449
|
+
"end": 203,
|
|
450
|
+
"text": "poverty"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"correct": false,
|
|
454
|
+
"start": 205,
|
|
455
|
+
"end": 207,
|
|
456
|
+
"text": "We"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"correct": false,
|
|
460
|
+
"start": 208,
|
|
461
|
+
"end": 212,
|
|
462
|
+
"text": "must"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"correct": false,
|
|
466
|
+
"start": 213,
|
|
467
|
+
"end": 222,
|
|
468
|
+
"text": "eradicate"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"correct": false,
|
|
472
|
+
"start": 223,
|
|
473
|
+
"end": 230,
|
|
474
|
+
"text": "killing"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"correct": false,
|
|
478
|
+
"start": 231,
|
|
479
|
+
"end": 234,
|
|
480
|
+
"text": "and"
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"correct": false,
|
|
484
|
+
"start": 235,
|
|
485
|
+
"end": 244,
|
|
486
|
+
"text": "crippling"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"correct": true,
|
|
490
|
+
"start": 245,
|
|
491
|
+
"end": 252,
|
|
492
|
+
"text": "disease"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"correct": false,
|
|
496
|
+
"start": 253,
|
|
497
|
+
"end": 256,
|
|
498
|
+
"text": "and"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"correct": false,
|
|
502
|
+
"start": 257,
|
|
503
|
+
"end": 265,
|
|
504
|
+
"text": "lengthen"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"correct": false,
|
|
508
|
+
"start": 266,
|
|
509
|
+
"end": 269,
|
|
510
|
+
"text": "the"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"correct": false,
|
|
514
|
+
"start": 270,
|
|
515
|
+
"end": 274,
|
|
516
|
+
"text": "span"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"correct": false,
|
|
520
|
+
"start": 275,
|
|
521
|
+
"end": 277,
|
|
522
|
+
"text": "of"
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"correct": false,
|
|
526
|
+
"start": 278,
|
|
527
|
+
"end": 282,
|
|
528
|
+
"text": "life"
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"correct": false,
|
|
532
|
+
"start": 283,
|
|
533
|
+
"end": 285,
|
|
534
|
+
"text": "to"
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"correct": false,
|
|
538
|
+
"start": 286,
|
|
539
|
+
"end": 289,
|
|
540
|
+
"text": "100"
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"correct": false,
|
|
544
|
+
"start": 290,
|
|
545
|
+
"end": 292,
|
|
546
|
+
"text": "or"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"correct": false,
|
|
550
|
+
"start": 293,
|
|
551
|
+
"end": 296,
|
|
552
|
+
"text": "200"
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"correct": false,
|
|
556
|
+
"start": 297,
|
|
557
|
+
"end": 302,
|
|
558
|
+
"text": "years"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"correct": false,
|
|
562
|
+
"start": 304,
|
|
563
|
+
"end": 306,
|
|
564
|
+
"text": "We"
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"correct": false,
|
|
568
|
+
"start": 307,
|
|
569
|
+
"end": 311,
|
|
570
|
+
"text": "must"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"correct": false,
|
|
574
|
+
"start": 312,
|
|
575
|
+
"end": 321,
|
|
576
|
+
"text": "eliminate"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"correct": true,
|
|
580
|
+
"start": 322,
|
|
581
|
+
"end": 332,
|
|
582
|
+
"text": "illiteracy"
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"correct": false,
|
|
586
|
+
"start": 333,
|
|
587
|
+
"end": 338,
|
|
588
|
+
"text": "among"
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"correct": false,
|
|
592
|
+
"start": 339,
|
|
593
|
+
"end": 342,
|
|
594
|
+
"text": "all"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"correct": false,
|
|
598
|
+
"start": 343,
|
|
599
|
+
"end": 345,
|
|
600
|
+
"text": "of"
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"correct": false,
|
|
604
|
+
"start": 346,
|
|
605
|
+
"end": 349,
|
|
606
|
+
"text": "our"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"correct": false,
|
|
610
|
+
"start": 350,
|
|
611
|
+
"end": 356,
|
|
612
|
+
"text": "people"
|
|
613
|
+
}
|
|
614
|
+
],
|
|
615
|
+
// "id": "0",
|
|
616
|
+
"text": "<p>Our challenge, not tomorrow but today, is to accomplish objectives which have eluded mankind since the beginning of time. We must bring equal justice to all our citizens. We must abolish human poverty. We must eradicate killing and crippling disease and lengthen the span of life to 100 or 200 years. We must eliminate illiteracy among all of our people.</p>\n",
|
|
617
|
+
"prompt": "<p>Select the <span class=\"relative-emphasis\">three</span> words from below that specifically describe the “enemies” which Johnson wants to eliminate.</p>",
|
|
618
|
+
"rationale": "<p>In paragraph 6, Johnson refers to the “ancient enemies”—which he defines as poverty, disease, illiteracy, strife, and bigotry. In paragraph 3, he talks about this idea by explaining that he wants to “accomplish objectives which have eluded mankind;” that is, to eliminate these enemies.</p>",
|
|
619
|
+
// "element": "select-text",
|
|
620
|
+
"maxSelections": 3
|
|
621
|
+
} ));
|
|
252
622
|
};
|
package/lib/utils.js
CHANGED
|
@@ -9,6 +9,8 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
12
14
|
var _react = _interopRequireDefault(require("react"));
|
|
13
15
|
|
|
14
16
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -22,20 +24,12 @@ var createElementFromHTML = function createElementFromHTML() {
|
|
|
22
24
|
return div;
|
|
23
25
|
};
|
|
24
26
|
|
|
25
|
-
var parseBrs = function parseBrs(dom) {
|
|
26
|
-
var brs = dom.querySelectorAll('br');
|
|
27
|
-
brs.forEach(function (br) {
|
|
28
|
-
return br.replaceWith('\n');
|
|
29
|
-
});
|
|
30
|
-
dom.innerHTML = dom.innerHTML.replace(/\n\n/g, '\n');
|
|
31
|
-
};
|
|
32
|
-
|
|
33
27
|
var parseParagraph = function parseParagraph(paragraph, end) {
|
|
34
28
|
if (end) {
|
|
35
29
|
return paragraph.innerHTML;
|
|
36
30
|
}
|
|
37
31
|
|
|
38
|
-
return
|
|
32
|
+
return ''.concat(paragraph.innerHTML, '\n\n');
|
|
39
33
|
};
|
|
40
34
|
|
|
41
35
|
var parseParagraphs = function parseParagraphs(dom) {
|
|
@@ -50,42 +44,57 @@ var parseParagraphs = function parseParagraphs(dom) {
|
|
|
50
44
|
|
|
51
45
|
var prepareText = function prepareText(text) {
|
|
52
46
|
var txtDom = createElementFromHTML(text);
|
|
47
|
+
var div = document.createElement('div');
|
|
48
|
+
div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
|
|
49
|
+
txtDom = div;
|
|
53
50
|
var allDomElements = Array.from(txtDom.querySelectorAll('*'));
|
|
54
51
|
|
|
55
|
-
if (txtDom.querySelectorAll('div').length === 0) {
|
|
56
|
-
var div = document.createElement('div');
|
|
57
|
-
div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, "</div>");
|
|
58
|
-
txtDom = div;
|
|
59
|
-
} // if no dom elements, we just return the text
|
|
60
|
-
|
|
61
|
-
|
|
62
52
|
if (allDomElements.length === 0) {
|
|
63
53
|
return text;
|
|
64
54
|
}
|
|
65
55
|
|
|
66
|
-
parseBrs(txtDom);
|
|
67
56
|
return parseParagraphs(txtDom);
|
|
68
57
|
};
|
|
69
58
|
|
|
70
59
|
var _default = function _default(model) {
|
|
71
|
-
// parsing
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
if (!model) return model; // parsing
|
|
61
|
+
|
|
62
|
+
var modelText = prepareText(model.text || '');
|
|
63
|
+
var newTokens = (model.tokens || []).reduce(function (acc) {
|
|
64
|
+
var token = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
65
|
+
var tokenText = prepareText((model.text || '').slice(token.start, token.end));
|
|
66
|
+
|
|
67
|
+
if (!tokenText) {
|
|
68
|
+
return [].concat((0, _toConsumableArray2["default"])(acc), [token]);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
var getStartIndex = function getStartIndex(start) {
|
|
72
|
+
var length = start;
|
|
76
73
|
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
while (length >= 0) {
|
|
75
|
+
var newStartIndex = modelText.slice(length).indexOf(tokenText);
|
|
76
|
+
|
|
77
|
+
if (newStartIndex >= 0) {
|
|
78
|
+
return newStartIndex + length;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
length--;
|
|
79
82
|
}
|
|
80
83
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
return 0;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var lastToken = acc[acc.length - 1];
|
|
88
|
+
var newStart = getStartIndex(lastToken ? lastToken.end : token.start);
|
|
89
|
+
var newEnd = newStart + tokenText.length;
|
|
90
|
+
return [].concat((0, _toConsumableArray2["default"])(acc), [_objectSpread(_objectSpread({}, token), {}, {
|
|
91
|
+
text: tokenText,
|
|
92
|
+
start: newStart,
|
|
93
|
+
end: newEnd
|
|
94
|
+
})]);
|
|
95
|
+
}, []);
|
|
96
|
+
return _objectSpread(_objectSpread({}, model), {}, {
|
|
97
|
+
tokens: newTokens,
|
|
89
98
|
text: modelText
|
|
90
99
|
});
|
|
91
100
|
};
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseParagraph","paragraph","end","concat","parseParagraphs","dom","paragraphs","querySelectorAll","str","forEach","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getStartIndex","newStartIndex","indexOf","lastToken","newStart","newEnd"],"mappings":";;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAIA,qBAAqB,GAAG,SAASA,qBAAT,GAAiC;AAC3D,MAAIC,UAAU,GAAGC,SAAS,CAACC,MAAV,GAAmB,CAAnB,IAAwBD,SAAS,CAAC,CAAD,CAAT,KAAiBE,SAAzC,GAAqDF,SAAS,CAAC,CAAD,CAA9D,GAAoE,EAArF;AACA,MAAIG,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAF,EAAAA,GAAG,CAACG,SAAJ,GAAgBP,UAAU,CAACQ,IAAX,EAAhB;AACA,SAAOJ,GAAP;AACD,CALD;;AAOA,IAAIK,cAAc,GAAG,SAASA,cAAT,CAAwBC,SAAxB,EAAmCC,GAAnC,EAAwC;AAC3D,MAAIA,GAAJ,EAAS;AACP,WAAOD,SAAS,CAACH,SAAjB;AACD;;AAED,SAAO,GAAGK,MAAH,CAAUF,SAAS,CAACH,SAApB,EAA+B,MAA/B,CAAP;AACD,CAND;;AAQA,IAAIM,eAAe,GAAG,SAASA,eAAT,CAAyBC,GAAzB,EAA8B;AAClD,MAAIC,UAAU,GAAGD,GAAG,CAACE,gBAAJ,CAAqB,qBAArB,CAAjB,CADkD,CACY;;AAE9D,MAAIC,GAAG,GAAG,EAAV;AACAF,EAAAA,UAAU,CAACG,OAAX,CAAmB,UAAUC,GAAV,EAAeC,KAAf,EAAsB;AACvCH,IAAAA,GAAG,IAAIR,cAAc,CAACU,GAAD,EAAMC,KAAK,KAAKL,UAAU,CAACb,MAAX,GAAoB,CAApC,CAArB;AACD,GAFD;AAGA,SAAOe,GAAG,IAAI,IAAd;AACD,CARD;;AAUA,IAAII,WAAW,GAAG,SAASA,WAAT,CAAqBC,IAArB,EAA2B;AAC3C,MAAIC,MAAM,GAAGxB,qBAAqB,CAACuB,IAAD,CAAlC;AAEA,MAAIlB,GAAG,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAF,EAAAA,GAAG,CAACG,SAAJ,GAAgB,2BAA2BK,MAA3B,CAAkCW,MAAM,CAAChB,SAAzC,EAAoD,QAApD,CAAhB;AACAgB,EAAAA,MAAM,GAAGnB,GAAT;AAEA,MAAIoB,cAAc,GAAGC,KAAK,CAACC,IAAN,CAAWH,MAAM,CAACP,gBAAP,CAAwB,GAAxB,CAAX,CAArB;;AAEA,MAAIQ,cAAc,CAACtB,MAAf,KAA0B,CAA9B,EAAiC;AAC/B,WAAOoB,IAAP;AACD;;AAED,SAAOT,eAAe,CAACU,MAAD,CAAtB;AACD,CAdD;;eAgBe,kBAACI,KAAD,EAAW;AACxB,MAAI,CAACA,KAAL,EAAY,OAAOA,KAAP,CADY,CAGxB;;AACA,MAAMC,SAAS,GAAGP,WAAW,CAACM,KAAK,CAACL,IAAN,IAAc,EAAf,CAA7B;AAEA,MAAMO,SAAS,GAAG,CAACF,KAAK,CAACG,MAAN,IAAgB,EAAjB,EAAqBC,MAArB,CAA4B,UAACC,GAAD,EAAqB;AAAA,QAAfC,KAAe,uEAAP,EAAO;AACjE,QAAMC,SAAS,GAAGb,WAAW,CAAC,CAACM,KAAK,CAACL,IAAN,IAAc,EAAf,EAAmBa,KAAnB,CAAyBF,KAAK,CAACG,KAA/B,EAAsCH,KAAK,CAACtB,GAA5C,CAAD,CAA7B;;AAEA,QAAI,CAACuB,SAAL,EAAgB;AACd,2DAAWF,GAAX,IAAgBC,KAAhB;AACD;;AAED,QAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACD,KAAD,EAAW;AAC/B,UAAIlC,MAAM,GAAGkC,KAAb;;AAEA,aAAOlC,MAAM,IAAI,CAAjB,EAAoB;AAClB,YAAIoC,aAAa,GAAGV,SAAS,CAACO,KAAV,CAAgBjC,MAAhB,EAAwBqC,OAAxB,CAAgCL,SAAhC,CAApB;;AAEA,YAAII,aAAa,IAAI,CAArB,EAAwB;AACtB,iBAAOA,aAAa,GAAGpC,MAAvB;AACD;;AAEDA,QAAAA,MAAM;AACP;;AAED,aAAO,CAAP;AACD,KAdD;;AAgBA,QAAMsC,SAAS,GAAGR,GAAG,CAACA,GAAG,CAAC9B,MAAJ,GAAa,CAAd,CAArB;AACA,QAAMuC,QAAQ,GAAGJ,aAAa,CAACG,SAAS,GAAGA,SAAS,CAAC7B,GAAb,GAAmBsB,KAAK,CAACG,KAAnC,CAA9B;AACA,QAAMM,MAAM,GAAGD,QAAQ,GAAGP,SAAS,CAAChC,MAApC;AAEA,yDACK8B,GADL,oCAGOC,KAHP;AAIIX,MAAAA,IAAI,EAAEY,SAJV;AAKIE,MAAAA,KAAK,EAAEK,QALX;AAMI9B,MAAAA,GAAG,EAAE+B;AANT;AASD,GApCiB,EAoCf,EApCe,CAAlB;AAuCA,yCACKf,KADL;AAEEG,IAAAA,MAAM,EAAED,SAFV;AAGEP,IAAAA,IAAI,EAAEM;AAHR;AAKD,C","sourcesContent":["import React from 'react';\n\nvar createElementFromHTML = function createElementFromHTML() {\n var htmlString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n return div;\n};\n\nvar parseParagraph = function parseParagraph(paragraph, end) {\n if (end) {\n return paragraph.innerHTML;\n }\n\n return ''.concat(paragraph.innerHTML, '\\n\\n');\n};\n\nvar parseParagraphs = function parseParagraphs(dom) {\n var paragraphs = dom.querySelectorAll('div[separator=true]'); // separate variable for easily debugging, if needed\n\n var str = '';\n paragraphs.forEach(function (par, index) {\n str += parseParagraph(par, index === paragraphs.length - 1);\n });\n return str || null;\n};\n\nvar prepareText = function prepareText(text) {\n var txtDom = createElementFromHTML(text);\n\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n if (!model) return model;\n\n // parsing\n const modelText = prepareText(model.text || '');\n\n const newTokens = (model.tokens || []).reduce((acc, token = {}) => {\n const tokenText = prepareText((model.text || '').slice(token.start, token.end));\n\n if (!tokenText) {\n return [...acc, token];\n }\n\n const getStartIndex = (start) => {\n let length = start;\n\n while (length >= 0) {\n let newStartIndex = modelText.slice(length).indexOf(tokenText);\n\n if (newStartIndex >= 0) {\n return newStartIndex + length;\n }\n\n length--;\n }\n\n return 0;\n };\n\n const lastToken = acc[acc.length - 1];\n const newStart = getStartIndex(lastToken ? lastToken.end : token.start);\n const newEnd = newStart + tokenText.length;\n\n return [\n ...acc,\n {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd\n }\n ];\n }, []);\n\n\n return {\n ...model,\n tokens: newTokens,\n text: modelText\n }\n}\n"],"file":"utils.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "6.5.3-next.
|
|
7
|
+
"version": "6.5.3-next.555+b13a4f67e",
|
|
8
8
|
"description": "",
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"author": "",
|
|
21
21
|
"license": "ISC",
|
|
22
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "b13a4f67ef84cd1592b1d4748f183fe4630712fd",
|
|
23
23
|
"scripts": {
|
|
24
24
|
"postpublish": "../../scripts/postpublish"
|
|
25
25
|
},
|