@pie-element/select-text 6.5.3-next.549 → 6.5.3-next.550

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.
@@ -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; }
@@ -35,7 +37,7 @@ var parseParagraph = function parseParagraph(paragraph, end) {
35
37
  return paragraph.innerHTML;
36
38
  }
37
39
 
38
- return "".concat(paragraph.innerHTML, "\n\n");
40
+ return ''.concat(paragraph.innerHTML, '\n\n');
39
41
  };
40
42
 
41
43
  var parseParagraphs = function parseParagraphs(dom) {
@@ -50,15 +52,16 @@ var parseParagraphs = function parseParagraphs(dom) {
50
52
 
51
53
  var prepareText = function prepareText(text) {
52
54
  var txtDom = createElementFromHTML(text);
53
- var allDomElements = Array.from(txtDom.querySelectorAll('*'));
54
55
 
55
56
  if (txtDom.querySelectorAll('div').length === 0) {
56
57
  var div = document.createElement('div');
57
- div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, "</div>");
58
+ div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
58
59
  txtDom = div;
59
60
  } // if no dom elements, we just return the text
60
61
 
61
62
 
63
+ var allDomElements = Array.from(txtDom.querySelectorAll('*'));
64
+
62
65
  if (allDomElements.length === 0) {
63
66
  return text;
64
67
  }
@@ -70,22 +73,41 @@ var prepareText = function prepareText(text) {
70
73
  var _default = function _default(model) {
71
74
  // parsing
72
75
  var modelText = prepareText(model.text);
73
- return _objectSpread(_objectSpread({}, model), {}, {
74
- tokens: (model.tokens || []).map(function (token) {
75
- var tokenText = prepareText(model.text.slice(token.start, token.end));
76
-
77
- if (!tokenText) {
78
- return token;
76
+ var newTokens = (model.tokens || []).reduce(function (acc, token) {
77
+ var tokenText = prepareText(model.text.slice(token.start, token.end));
78
+
79
+ if (!tokenText) {
80
+ return token;
81
+ }
82
+
83
+ function getAllIndexes(arr, val) {
84
+ var indexes = [],
85
+ i = -1;
86
+
87
+ while ((i = (arr || '').indexOf(val, i + 1)) != -1) {
88
+ if (!(acc.filter(function (_ref) {
89
+ var start = _ref.start,
90
+ text = _ref.text;
91
+ return text === val && start === i;
92
+ }) || []).length) {
93
+ indexes.push(i);
94
+ }
79
95
  }
80
96
 
81
- var newStart = modelText.indexOf(tokenText);
82
- var newEnd = newStart + tokenText.length;
83
- return _objectSpread(_objectSpread({}, token), {}, {
84
- text: tokenText,
85
- start: newStart,
86
- end: newEnd
87
- });
88
- }),
97
+ return indexes;
98
+ }
99
+
100
+ var indexes = getAllIndexes(modelText, tokenText);
101
+ var newStart = indexes[0];
102
+ var newEnd = newStart + tokenText.length;
103
+ return [].concat((0, _toConsumableArray2["default"])(acc), [_objectSpread(_objectSpread({}, token), {}, {
104
+ text: tokenText,
105
+ start: newStart,
106
+ end: newEnd
107
+ })]);
108
+ }, []);
109
+ return _objectSpread(_objectSpread({}, model), {}, {
110
+ tokens: newTokens,
89
111
  text: modelText
90
112
  });
91
113
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","replace","parseParagraph","paragraph","end","concat","parseParagraphs","paragraphs","str","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","tokens","map","token","tokenText","slice","start","newStart","indexOf","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 parseBrs = function parseBrs(dom) {\n var brs = dom.querySelectorAll('br');\n brs.forEach(function (br) {\n return br.replaceWith('\\n');\n });\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\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 var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (txtDom.querySelectorAll('div').length === 0) {\n var div = document.createElement('div');\n div.innerHTML = \"<div separator='true'>\".concat(txtDom.innerHTML, \"</div>\");\n txtDom = div;\n } // if no dom elements, we just return the text\n\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n// parsing\n const modelText = prepareText(model.text);\n\n\n return {\n ...model,\n tokens: (model.tokens || []).map(token => {\n const tokenText = prepareText(model.text.slice(token.start, token.end));\n\n if (!tokenText) {\n return token;\n }\n\n const newStart = modelText.indexOf(tokenText);\n const newEnd = newStart + tokenText.length;\n\n return {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd\n };\n }),\n text: modelText\n }\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","replace","parseParagraph","paragraph","end","concat","parseParagraphs","paragraphs","str","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getAllIndexes","arr","val","indexes","i","indexOf","filter","push","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 parseBrs = function parseBrs(dom) {\n var brs = dom.querySelectorAll('br');\n brs.forEach(function (br) {\n return br.replaceWith('\\n');\n });\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\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 if (txtDom.querySelectorAll('div').length === 0) {\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n } // if no dom elements, we just return the text\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\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 token;\n }\n\n function getAllIndexes(arr, val) {\n var indexes = [], i = -1;\n\n while ((i = (arr || '').indexOf(val, i + 1)) != -1) {\n if (!(acc.filter(({ start, text }) => (text === val && start === i)) || []).length) {\n indexes.push(i);\n }\n }\n\n return indexes;\n }\n\n var indexes = getAllIndexes(modelText, tokenText);\n\n const newStart = indexes[0];\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"}
@@ -248,5 +248,375 @@ const simpleItem = {
248
248
  };
249
249
 
250
250
  exports.model = (id, element) => {
251
- return Object.assign({}, { id, element }, base(simpleItem));
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 &#8220;enemies&#8221; which Johnson wants to eliminate.</p>",
618
+ "rationale": "<p>In paragraph 6, Johnson refers to the &#8220;ancient enemies&#8221;&#8212;which he defines as poverty, disease, illiteracy, strife, and bigotry. In paragraph 3, he talks about this idea by explaining that he wants to &#8220;accomplish objectives which have eluded mankind;&#8221; 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; }
@@ -35,7 +37,7 @@ var parseParagraph = function parseParagraph(paragraph, end) {
35
37
  return paragraph.innerHTML;
36
38
  }
37
39
 
38
- return "".concat(paragraph.innerHTML, "\n\n");
40
+ return ''.concat(paragraph.innerHTML, '\n\n');
39
41
  };
40
42
 
41
43
  var parseParagraphs = function parseParagraphs(dom) {
@@ -50,15 +52,16 @@ var parseParagraphs = function parseParagraphs(dom) {
50
52
 
51
53
  var prepareText = function prepareText(text) {
52
54
  var txtDom = createElementFromHTML(text);
53
- var allDomElements = Array.from(txtDom.querySelectorAll('*'));
54
55
 
55
56
  if (txtDom.querySelectorAll('div').length === 0) {
56
57
  var div = document.createElement('div');
57
- div.innerHTML = "<div separator='true'>".concat(txtDom.innerHTML, "</div>");
58
+ div.innerHTML = '<div separator=\'true\'>'.concat(txtDom.innerHTML, '</div>');
58
59
  txtDom = div;
59
60
  } // if no dom elements, we just return the text
60
61
 
61
62
 
63
+ var allDomElements = Array.from(txtDom.querySelectorAll('*'));
64
+
62
65
  if (allDomElements.length === 0) {
63
66
  return text;
64
67
  }
@@ -70,22 +73,41 @@ var prepareText = function prepareText(text) {
70
73
  var _default = function _default(model) {
71
74
  // parsing
72
75
  var modelText = prepareText(model.text);
73
- return _objectSpread(_objectSpread({}, model), {}, {
74
- tokens: (model.tokens || []).map(function (token) {
75
- var tokenText = prepareText(model.text.slice(token.start, token.end));
76
-
77
- if (!tokenText) {
78
- return token;
76
+ var newTokens = (model.tokens || []).reduce(function (acc, token) {
77
+ var tokenText = prepareText(model.text.slice(token.start, token.end));
78
+
79
+ if (!tokenText) {
80
+ return token;
81
+ }
82
+
83
+ function getAllIndexes(arr, val) {
84
+ var indexes = [],
85
+ i = -1;
86
+
87
+ while ((i = (arr || '').indexOf(val, i + 1)) != -1) {
88
+ if (!(acc.filter(function (_ref) {
89
+ var start = _ref.start,
90
+ text = _ref.text;
91
+ return text === val && start === i;
92
+ }) || []).length) {
93
+ indexes.push(i);
94
+ }
79
95
  }
80
96
 
81
- var newStart = modelText.indexOf(tokenText);
82
- var newEnd = newStart + tokenText.length;
83
- return _objectSpread(_objectSpread({}, token), {}, {
84
- text: tokenText,
85
- start: newStart,
86
- end: newEnd
87
- });
88
- }),
97
+ return indexes;
98
+ }
99
+
100
+ var indexes = getAllIndexes(modelText, tokenText);
101
+ var newStart = indexes[0];
102
+ var newEnd = newStart + tokenText.length;
103
+ return [].concat((0, _toConsumableArray2["default"])(acc), [_objectSpread(_objectSpread({}, token), {}, {
104
+ text: tokenText,
105
+ start: newStart,
106
+ end: newEnd
107
+ })]);
108
+ }, []);
109
+ return _objectSpread(_objectSpread({}, model), {}, {
110
+ tokens: newTokens,
89
111
  text: modelText
90
112
  });
91
113
  };
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","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","replace","parseParagraph","paragraph","end","concat","parseParagraphs","paragraphs","str","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","tokens","map","token","tokenText","slice","start","newStart","indexOf","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 parseBrs = function parseBrs(dom) {\n var brs = dom.querySelectorAll('br');\n brs.forEach(function (br) {\n return br.replaceWith('\\n');\n });\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\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 var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (txtDom.querySelectorAll('div').length === 0) {\n var div = document.createElement('div');\n div.innerHTML = \"<div separator='true'>\".concat(txtDom.innerHTML, \"</div>\");\n txtDom = div;\n } // if no dom elements, we just return the text\n\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\n// parsing\n const modelText = prepareText(model.text);\n\n\n return {\n ...model,\n tokens: (model.tokens || []).map(token => {\n const tokenText = prepareText(model.text.slice(token.start, token.end));\n\n if (!tokenText) {\n return token;\n }\n\n const newStart = modelText.indexOf(tokenText);\n const newEnd = newStart + tokenText.length;\n\n return {\n ...token,\n text: tokenText,\n start: newStart,\n end: newEnd\n };\n }),\n text: modelText\n }\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../src/utils.js"],"names":["createElementFromHTML","htmlString","arguments","length","undefined","div","document","createElement","innerHTML","trim","parseBrs","dom","brs","querySelectorAll","forEach","br","replaceWith","replace","parseParagraph","paragraph","end","concat","parseParagraphs","paragraphs","str","par","index","prepareText","text","txtDom","allDomElements","Array","from","model","modelText","newTokens","tokens","reduce","acc","token","tokenText","slice","start","getAllIndexes","arr","val","indexes","i","indexOf","filter","push","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 parseBrs = function parseBrs(dom) {\n var brs = dom.querySelectorAll('br');\n brs.forEach(function (br) {\n return br.replaceWith('\\n');\n });\n dom.innerHTML = dom.innerHTML.replace(/\\n\\n/g, '\\n');\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 if (txtDom.querySelectorAll('div').length === 0) {\n var div = document.createElement('div');\n div.innerHTML = '<div separator=\\'true\\'>'.concat(txtDom.innerHTML, '</div>');\n txtDom = div;\n } // if no dom elements, we just return the text\n\n var allDomElements = Array.from(txtDom.querySelectorAll('*'));\n\n if (allDomElements.length === 0) {\n return text;\n }\n\n parseBrs(txtDom);\n return parseParagraphs(txtDom);\n};\n\nexport default (model) => {\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 token;\n }\n\n function getAllIndexes(arr, val) {\n var indexes = [], i = -1;\n\n while ((i = (arr || '').indexOf(val, i + 1)) != -1) {\n if (!(acc.filter(({ start, text }) => (text === val && start === i)) || []).length) {\n indexes.push(i);\n }\n }\n\n return indexes;\n }\n\n var indexes = getAllIndexes(modelText, tokenText);\n\n const newStart = indexes[0];\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.549+15ec4b35f",
7
+ "version": "6.5.3-next.550+0e4e8ca70",
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": "15ec4b35f6656bb2595f316d3a49af451c21450b",
22
+ "gitHead": "0e4e8ca70e9e75484310685500fea56144d1f0b8",
23
23
  "scripts": {
24
24
  "postpublish": "../../scripts/postpublish"
25
25
  },