@expensify/react-native-live-markdown 0.1.212 → 0.1.214

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,7 @@ var _reactNative = require("react-native");
9
9
  var _expensifyCommon = require("expensify-common");
10
10
  var _utils = require("expensify-common/dist/utils");
11
11
  var _htmlEntities = require("html-entities");
12
+ var _rangeUtils = require("./rangeUtils");
12
13
  function isWeb() {
13
14
  return _reactNative.Platform.OS === 'web';
14
15
  }
@@ -224,39 +225,6 @@ function parseTreeToTextAndRanges(tree) {
224
225
  dfs(tree);
225
226
  return [text, ranges];
226
227
  }
227
-
228
- // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
229
- function getTagPriority(tag) {
230
- switch (tag) {
231
- case 'blockquote':
232
- return 2;
233
- case 'h1':
234
- return 1;
235
- default:
236
- return 0;
237
- }
238
- }
239
- function sortRanges(ranges) {
240
- // sort ranges by start position, then by length, then by tag hierarchy
241
- return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
242
- }
243
- function groupRanges(ranges) {
244
- const lastVisibleRangeIndex = {};
245
- return ranges.reduce((acc, range) => {
246
- const start = range.start;
247
- const end = range.start + range.length;
248
- const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
249
- const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
250
- if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
251
- // increment depth of overlapping range
252
- sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
253
- } else {
254
- lastVisibleRangeIndex[range.type] = acc.length;
255
- acc.push(range);
256
- }
257
- return acc;
258
- }, []);
259
- }
260
228
  function parseExpensiMark(markdown) {
261
229
  if (markdown.length > MAX_PARSABLE_LENGTH) {
262
230
  return [];
@@ -269,8 +237,10 @@ function parseExpensiMark(markdown) {
269
237
  console.error(`[react-native-live-markdown] Parsing error: the processed text does not match the original Markdown input. This may be caused by incorrect parsing functions or invalid input Markdown.\nProcessed input: '${JSON.stringify(text)}'\nOriginal input: '${JSON.stringify(markdown)}'`);
270
238
  return [];
271
239
  }
272
- const sortedRanges = sortRanges(ranges);
273
- const groupedRanges = groupRanges(sortedRanges);
240
+ let splittedRanges = (0, _rangeUtils.splitRangesOnEmojis)(ranges, 'italic');
241
+ splittedRanges = (0, _rangeUtils.splitRangesOnEmojis)(splittedRanges, 'strikethrough');
242
+ const sortedRanges = (0, _rangeUtils.sortRanges)(splittedRanges);
243
+ const groupedRanges = (0, _rangeUtils.groupRanges)(sortedRanges);
274
244
  return groupedRanges;
275
245
  }
276
246
  var _default = exports.default = parseExpensiMark;
@@ -1 +1 @@
1
- {"version":3,"names":["Object","defineProperty","exports","value","default","_reactNative","require","_expensifyCommon","_utils","_htmlEntities","isWeb","Platform","OS","isJest","global","process","env","JEST_WORKER_ID","__DEV__","decode","__workletHash","undefined","Error","MAX_PARSABLE_LENGTH","parseMarkdownToHTML","markdown","parser","ExpensiMark","html","replace","shouldKeepRawInput","parseHTMLToTokens","tokens","left","open","indexOf","length","push","substring","close","parseTokensToTree","stack","tag","children","forEach","type","payload","text","unescapeText","top","startsWith","child","pop","endsWith","unclosedTags","slice","map","item","join","parseTreeToTextAndRanges","tree","processChildren","node","dfs","appendSyntax","syntax","addChildrenWithStyle","start","end","ranges","curr","content","rawHref","match","href","isLabeledLink","dataRawHref","matchString","src","alt","hasAlt","rawLink","linkString","getTagPriority","sortRanges","sort","a","b","groupRanges","lastVisibleRangeIndex","reduce","acc","range","rangeWithSameStyleIndex","sameStyleRange","depth","parseExpensiMark","console","error","JSON","stringify","sortedRanges","groupedRanges","_default"],"sourceRoot":"../../src","sources":["parseExpensiMark.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Object","defineProperty","exports","value","default","_reactNative","require","_expensifyCommon","_utils","_htmlEntities","_rangeUtils","isWeb","Platform","OS","isJest","global","process","env","JEST_WORKER_ID","__DEV__","decode","__workletHash","undefined","Error","MAX_PARSABLE_LENGTH","parseMarkdownToHTML","markdown","parser","ExpensiMark","html","replace","shouldKeepRawInput","parseHTMLToTokens","tokens","left","open","indexOf","length","push","substring","close","parseTokensToTree","stack","tag","children","forEach","type","payload","text","unescapeText","top","startsWith","child","pop","endsWith","unclosedTags","slice","map","item","join","parseTreeToTextAndRanges","tree","processChildren","node","dfs","appendSyntax","syntax","addChildrenWithStyle","start","end","ranges","curr","content","rawHref","match","href","isLabeledLink","dataRawHref","matchString","src","alt","hasAlt","rawLink","linkString","parseExpensiMark","console","error","JSON","stringify","splittedRanges","splitRangesOnEmojis","sortedRanges","sortRanges","groupedRanges","groupRanges","_default"],"sourceRoot":"../../src","sources":["parseExpensiMark.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ 'worklet';
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.groupRanges = groupRanges;
8
+ exports.sortRanges = sortRanges;
9
+ exports.splitRangesOnEmojis = splitRangesOnEmojis;
10
+ exports.ungroupRanges = ungroupRanges;
11
+ // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
12
+ function getTagPriority(tag) {
13
+ switch (tag) {
14
+ case 'blockquote':
15
+ return 2;
16
+ case 'h1':
17
+ return 1;
18
+ default:
19
+ return 0;
20
+ }
21
+ }
22
+ function sortRanges(ranges) {
23
+ // sort ranges by start position, then by length, then by tag hierarchy
24
+ return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
25
+ }
26
+ function groupRanges(ranges) {
27
+ const lastVisibleRangeIndex = {};
28
+ return ranges.reduce((acc, range) => {
29
+ const start = range.start;
30
+ const end = range.start + range.length;
31
+ const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
32
+ const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
33
+ if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
34
+ // increment depth of overlapping range
35
+ sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
36
+ } else {
37
+ lastVisibleRangeIndex[range.type] = acc.length;
38
+ acc.push(range);
39
+ }
40
+ return acc;
41
+ }, []);
42
+ }
43
+ function ungroupRanges(ranges) {
44
+ const ungroupedRanges = [];
45
+ ranges.forEach(range => {
46
+ if (!range.depth) {
47
+ ungroupedRanges.push(range);
48
+ }
49
+ const {
50
+ depth,
51
+ ...rangeWithoutDepth
52
+ } = range;
53
+ Array.from({
54
+ length: depth
55
+ }).forEach(() => {
56
+ ungroupedRanges.push(rangeWithoutDepth);
57
+ });
58
+ });
59
+ return ungroupedRanges;
60
+ }
61
+ function splitRangesOnEmojis(ranges, type) {
62
+ const emojiRanges = ranges.filter(range => range.type === 'emoji');
63
+ const newRanges = [];
64
+ let i = 0;
65
+ let j = 0;
66
+ while (i < ranges.length) {
67
+ const currentRange = ranges[i];
68
+ if (!currentRange) {
69
+ break;
70
+ }
71
+ if (currentRange.type !== type) {
72
+ newRanges.push(currentRange);
73
+ i++;
74
+ } else {
75
+ // Iterate through all emoji ranges before the end of the current range, splitting the current range at each intersection.
76
+ while (j < emojiRanges.length) {
77
+ const emojiRange = emojiRanges[j];
78
+ if (!emojiRange || emojiRange.start > currentRange.start + currentRange.length) {
79
+ break;
80
+ }
81
+ const currentStart = currentRange.start;
82
+ const currentEnd = currentRange.start + currentRange.length;
83
+ const emojiStart = emojiRange.start;
84
+ const emojiEnd = emojiRange.start + emojiRange.length;
85
+ if (emojiStart >= currentStart && emojiEnd <= currentEnd) {
86
+ // Intersection
87
+ const newRange = {
88
+ type: currentRange.type,
89
+ start: currentStart,
90
+ length: emojiStart - currentStart,
91
+ ...((currentRange === null || currentRange === void 0 ? void 0 : currentRange.depth) && {
92
+ depth: currentRange === null || currentRange === void 0 ? void 0 : currentRange.depth
93
+ })
94
+ };
95
+ currentRange.start = emojiEnd;
96
+ currentRange.length = currentEnd - emojiEnd;
97
+ if (newRange.length > 0) {
98
+ newRanges.push(newRange);
99
+ }
100
+ }
101
+ j++;
102
+ }
103
+ if (currentRange.length > 0) {
104
+ newRanges.push(currentRange);
105
+ }
106
+ i++;
107
+ }
108
+ }
109
+ return newRanges;
110
+ }
111
+ //# sourceMappingURL=rangeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Object","defineProperty","exports","value","groupRanges","sortRanges","splitRangesOnEmojis","ungroupRanges","getTagPriority","tag","ranges","sort","a","b","start","length","type","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","emojiRanges","filter","newRanges","i","j","currentRange","emojiRange","currentStart","currentEnd","emojiStart","emojiEnd","newRange"],"sourceRoot":"../../src","sources":["rangeUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -9,24 +9,7 @@ var _treeUtils = require("./treeUtils");
9
9
  var _cursorUtils = require("./cursorUtils");
10
10
  var _blockUtils = require("./blockUtils");
11
11
  var _animationUtils = require("./animationUtils");
12
- function ungroupRanges(ranges) {
13
- const ungroupedRanges = [];
14
- ranges.forEach(range => {
15
- if (!range.depth) {
16
- ungroupedRanges.push(range);
17
- }
18
- const {
19
- depth,
20
- ...rangeWithoutDepth
21
- } = range;
22
- Array.from({
23
- length: depth
24
- }).forEach(() => {
25
- ungroupedRanges.push(rangeWithoutDepth);
26
- });
27
- });
28
- return ungroupedRanges;
29
- }
12
+ var _rangeUtils = require("../../rangeUtils");
30
13
  function splitTextIntoLines(text) {
31
14
  let lineStartIndex = 0;
32
15
  const lines = text.split('\n').map(line => {
@@ -142,7 +125,10 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
142
125
  tree: rootNode
143
126
  };
144
127
  }
145
- const markdownRanges = ungroupRanges(ranges);
128
+
129
+ // Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
130
+ const sortedRanges = (0, _rangeUtils.sortRanges)(ranges);
131
+ const markdownRanges = (0, _rangeUtils.ungroupRanges)(sortedRanges);
146
132
  lines = mergeLinesWithMultilineTags(lines, markdownRanges);
147
133
  let lastRangeEndIndex = 0;
148
134
  while (lines.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["_treeUtils","require","_cursorUtils","_blockUtils","_animationUtils","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","length","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","markdownRanges","mergeLinesWithMultilineTags","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","addNodeToTree","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","addStyleToBlock","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","inlineImagesProps","rootElement","textLength","rootNode","createRootTreeNode","currentParentNode","dom","tree","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","getFirstBlockMarkdownRange","substring","textBeforeRange","extendBlockStructure","textAfterRange","isBlockMarkdownType","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","shouldScrollIntoView","moveCursorToEnd","setCursorPosition","updateInputStructure","parserFunction","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","getCurrentCursorPosition","innerHTML","innerText","animationTimes","getAnimationCurrentTimes","updateAnimationsTime","updateTreeElementRefs"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_treeUtils","require","_cursorUtils","_blockUtils","_animationUtils","_rangeUtils","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","ranges","mergedLines","lineIndexes","_line","index","forEach","range","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","push","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","addNodeToTree","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","addStyleToBlock","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","inlineImagesProps","rootElement","textLength","rootNode","createRootTreeNode","currentParentNode","dom","tree","sortedRanges","sortRanges","ungroupRanges","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","getFirstBlockMarkdownRange","substring","textBeforeRange","extendBlockStructure","textAfterRange","isBlockMarkdownType","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","shouldScrollIntoView","moveCursorToEnd","setCursorPosition","updateInputStructure","parserFunction","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","getCurrentCursorPosition","innerHTML","innerText","animationTimes","getAnimationCurrentTimes","updateAnimationsTime","updateTreeElementRefs"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { Platform } from 'react-native';
4
4
  import { ExpensiMark } from 'expensify-common';
5
5
  import { unescapeText } from 'expensify-common/dist/utils';
6
6
  import { decode } from 'html-entities';
7
+ import { groupRanges, sortRanges, splitRangesOnEmojis } from './rangeUtils';
7
8
  function isWeb() {
8
9
  return Platform.OS === 'web';
9
10
  }
@@ -219,39 +220,6 @@ function parseTreeToTextAndRanges(tree) {
219
220
  dfs(tree);
220
221
  return [text, ranges];
221
222
  }
222
-
223
- // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
224
- function getTagPriority(tag) {
225
- switch (tag) {
226
- case 'blockquote':
227
- return 2;
228
- case 'h1':
229
- return 1;
230
- default:
231
- return 0;
232
- }
233
- }
234
- function sortRanges(ranges) {
235
- // sort ranges by start position, then by length, then by tag hierarchy
236
- return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
237
- }
238
- function groupRanges(ranges) {
239
- const lastVisibleRangeIndex = {};
240
- return ranges.reduce((acc, range) => {
241
- const start = range.start;
242
- const end = range.start + range.length;
243
- const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
244
- const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
245
- if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
246
- // increment depth of overlapping range
247
- sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
248
- } else {
249
- lastVisibleRangeIndex[range.type] = acc.length;
250
- acc.push(range);
251
- }
252
- return acc;
253
- }, []);
254
- }
255
223
  function parseExpensiMark(markdown) {
256
224
  if (markdown.length > MAX_PARSABLE_LENGTH) {
257
225
  return [];
@@ -264,7 +232,9 @@ function parseExpensiMark(markdown) {
264
232
  console.error(`[react-native-live-markdown] Parsing error: the processed text does not match the original Markdown input. This may be caused by incorrect parsing functions or invalid input Markdown.\nProcessed input: '${JSON.stringify(text)}'\nOriginal input: '${JSON.stringify(markdown)}'`);
265
233
  return [];
266
234
  }
267
- const sortedRanges = sortRanges(ranges);
235
+ let splittedRanges = splitRangesOnEmojis(ranges, 'italic');
236
+ splittedRanges = splitRangesOnEmojis(splittedRanges, 'strikethrough');
237
+ const sortedRanges = sortRanges(splittedRanges);
268
238
  const groupedRanges = groupRanges(sortedRanges);
269
239
  return groupedRanges;
270
240
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","ExpensiMark","unescapeText","decode","isWeb","OS","isJest","global","process","env","JEST_WORKER_ID","__DEV__","__workletHash","undefined","Error","MAX_PARSABLE_LENGTH","parseMarkdownToHTML","markdown","parser","html","replace","shouldKeepRawInput","parseHTMLToTokens","tokens","left","open","indexOf","length","push","substring","close","parseTokensToTree","stack","tag","children","forEach","type","payload","text","top","startsWith","child","pop","endsWith","unclosedTags","slice","map","item","join","parseTreeToTextAndRanges","tree","processChildren","node","dfs","appendSyntax","syntax","addChildrenWithStyle","start","end","ranges","curr","content","rawHref","match","href","isLabeledLink","dataRawHref","matchString","src","alt","hasAlt","rawLink","linkString","getTagPriority","sortRanges","sort","a","b","groupRanges","lastVisibleRangeIndex","reduce","acc","range","rangeWithSameStyleIndex","sameStyleRange","depth","parseExpensiMark","console","error","JSON","stringify","sortedRanges","groupedRanges"],"sourceRoot":"../../src","sources":["parseExpensiMark.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","ExpensiMark","unescapeText","decode","groupRanges","sortRanges","splitRangesOnEmojis","isWeb","OS","isJest","global","process","env","JEST_WORKER_ID","__DEV__","__workletHash","undefined","Error","MAX_PARSABLE_LENGTH","parseMarkdownToHTML","markdown","parser","html","replace","shouldKeepRawInput","parseHTMLToTokens","tokens","left","open","indexOf","length","push","substring","close","parseTokensToTree","stack","tag","children","forEach","type","payload","text","top","startsWith","child","pop","endsWith","unclosedTags","slice","map","item","join","parseTreeToTextAndRanges","tree","processChildren","node","dfs","appendSyntax","syntax","addChildrenWithStyle","start","end","ranges","curr","content","rawHref","match","href","isLabeledLink","dataRawHref","matchString","src","alt","hasAlt","rawLink","linkString","parseExpensiMark","console","error","JSON","stringify","splittedRanges","sortedRanges","groupedRanges"],"sourceRoot":"../../src","sources":["parseExpensiMark.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ 'worklet';
2
+
3
+ // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
4
+ function getTagPriority(tag) {
5
+ switch (tag) {
6
+ case 'blockquote':
7
+ return 2;
8
+ case 'h1':
9
+ return 1;
10
+ default:
11
+ return 0;
12
+ }
13
+ }
14
+ function sortRanges(ranges) {
15
+ // sort ranges by start position, then by length, then by tag hierarchy
16
+ return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
17
+ }
18
+ function groupRanges(ranges) {
19
+ const lastVisibleRangeIndex = {};
20
+ return ranges.reduce((acc, range) => {
21
+ const start = range.start;
22
+ const end = range.start + range.length;
23
+ const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
24
+ const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
25
+ if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
26
+ // increment depth of overlapping range
27
+ sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
28
+ } else {
29
+ lastVisibleRangeIndex[range.type] = acc.length;
30
+ acc.push(range);
31
+ }
32
+ return acc;
33
+ }, []);
34
+ }
35
+ function ungroupRanges(ranges) {
36
+ const ungroupedRanges = [];
37
+ ranges.forEach(range => {
38
+ if (!range.depth) {
39
+ ungroupedRanges.push(range);
40
+ }
41
+ const {
42
+ depth,
43
+ ...rangeWithoutDepth
44
+ } = range;
45
+ Array.from({
46
+ length: depth
47
+ }).forEach(() => {
48
+ ungroupedRanges.push(rangeWithoutDepth);
49
+ });
50
+ });
51
+ return ungroupedRanges;
52
+ }
53
+ function splitRangesOnEmojis(ranges, type) {
54
+ const emojiRanges = ranges.filter(range => range.type === 'emoji');
55
+ const newRanges = [];
56
+ let i = 0;
57
+ let j = 0;
58
+ while (i < ranges.length) {
59
+ const currentRange = ranges[i];
60
+ if (!currentRange) {
61
+ break;
62
+ }
63
+ if (currentRange.type !== type) {
64
+ newRanges.push(currentRange);
65
+ i++;
66
+ } else {
67
+ // Iterate through all emoji ranges before the end of the current range, splitting the current range at each intersection.
68
+ while (j < emojiRanges.length) {
69
+ const emojiRange = emojiRanges[j];
70
+ if (!emojiRange || emojiRange.start > currentRange.start + currentRange.length) {
71
+ break;
72
+ }
73
+ const currentStart = currentRange.start;
74
+ const currentEnd = currentRange.start + currentRange.length;
75
+ const emojiStart = emojiRange.start;
76
+ const emojiEnd = emojiRange.start + emojiRange.length;
77
+ if (emojiStart >= currentStart && emojiEnd <= currentEnd) {
78
+ // Intersection
79
+ const newRange = {
80
+ type: currentRange.type,
81
+ start: currentStart,
82
+ length: emojiStart - currentStart,
83
+ ...((currentRange === null || currentRange === void 0 ? void 0 : currentRange.depth) && {
84
+ depth: currentRange === null || currentRange === void 0 ? void 0 : currentRange.depth
85
+ })
86
+ };
87
+ currentRange.start = emojiEnd;
88
+ currentRange.length = currentEnd - emojiEnd;
89
+ if (newRange.length > 0) {
90
+ newRanges.push(newRange);
91
+ }
92
+ }
93
+ j++;
94
+ }
95
+ if (currentRange.length > 0) {
96
+ newRanges.push(currentRange);
97
+ }
98
+ i++;
99
+ }
100
+ }
101
+ return newRanges;
102
+ }
103
+ export { sortRanges, groupRanges, ungroupRanges, splitRangesOnEmojis };
104
+ //# sourceMappingURL=rangeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getTagPriority","tag","sortRanges","ranges","sort","a","b","start","length","type","groupRanges","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupRanges","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","splitRangesOnEmojis","emojiRanges","filter","newRanges","i","j","currentRange","emojiRange","currentStart","currentEnd","emojiStart","emojiEnd","newRange"],"sourceRoot":"../../src","sources":["rangeUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -2,24 +2,7 @@ import { addNodeToTree, createRootTreeNode, updateTreeElementRefs } from './tree
2
2
  import { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition } from './cursorUtils';
3
3
  import { addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType } from './blockUtils';
4
4
  import { getAnimationCurrentTimes, updateAnimationsTime } from './animationUtils';
5
- function ungroupRanges(ranges) {
6
- const ungroupedRanges = [];
7
- ranges.forEach(range => {
8
- if (!range.depth) {
9
- ungroupedRanges.push(range);
10
- }
11
- const {
12
- depth,
13
- ...rangeWithoutDepth
14
- } = range;
15
- Array.from({
16
- length: depth
17
- }).forEach(() => {
18
- ungroupedRanges.push(rangeWithoutDepth);
19
- });
20
- });
21
- return ungroupedRanges;
22
- }
5
+ import { sortRanges, ungroupRanges } from '../../rangeUtils';
23
6
  function splitTextIntoLines(text) {
24
7
  let lineStartIndex = 0;
25
8
  const lines = text.split('\n').map(line => {
@@ -135,7 +118,10 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
135
118
  tree: rootNode
136
119
  };
137
120
  }
138
- const markdownRanges = ungroupRanges(ranges);
121
+
122
+ // Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
123
+ const sortedRanges = sortRanges(ranges);
124
+ const markdownRanges = ungroupRanges(sortedRanges);
139
125
  lines = mergeLinesWithMultilineTags(lines, markdownRanges);
140
126
  let lastRangeEndIndex = 0;
141
127
  while (lines.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["addNodeToTree","createRootTreeNode","updateTreeElementRefs","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addStyleToBlock","extendBlockStructure","getFirstBlockMarkdownRange","isBlockMarkdownType","getAnimationCurrentTimes","updateAnimationsTime","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","length","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","markdownRanges","mergeLinesWithMultilineTags","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","inlineImagesProps","rootElement","textLength","rootNode","currentParentNode","dom","tree","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","substring","textBeforeRange","textAfterRange","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","innerHTML","innerText","animationTimes"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["addNodeToTree","createRootTreeNode","updateTreeElementRefs","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addStyleToBlock","extendBlockStructure","getFirstBlockMarkdownRange","isBlockMarkdownType","getAnimationCurrentTimes","updateAnimationsTime","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","ranges","mergedLines","lineIndexes","_line","index","forEach","range","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","push","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","inlineImagesProps","rootElement","textLength","rootNode","currentParentNode","dom","tree","sortedRanges","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","substring","textBeforeRange","textAfterRange","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","shouldScrollIntoView","updateInputStructure","parserFunction","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","innerHTML","innerText","animationTimes"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"parseExpensiMark.d.ts","sourceRoot":"","sources":["../../../src/parseExpensiMark.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAe,aAAa,EAAC,MAAM,eAAe,CAAC;AA2Q/D,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAmB3D;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"parseExpensiMark.d.ts","sourceRoot":"","sources":["../../../src/parseExpensiMark.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAe,aAAa,EAAC,MAAM,eAAe,CAAC;AAqO/D,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAwB3D;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { MarkdownRange, MarkdownType } from './commonTypes';
2
+ declare function sortRanges(ranges: MarkdownRange[]): MarkdownRange[];
3
+ declare function groupRanges(ranges: MarkdownRange[]): MarkdownRange[];
4
+ declare function ungroupRanges(ranges: MarkdownRange[]): MarkdownRange[];
5
+ declare function splitRangesOnEmojis(ranges: MarkdownRange[], type: MarkdownType): MarkdownRange[];
6
+ export { sortRanges, groupRanges, ungroupRanges, splitRangesOnEmojis };
7
+ //# sourceMappingURL=rangeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rangeUtils.d.ts","sourceRoot":"","sources":["../../../src/rangeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAc/D,iBAAS,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,mBAG1C;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,mBAoB3C;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAY/D;AAED,iBAAS,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa,EAAE,CAsDzF;AAED,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parserUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/parserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAE,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,KAAK,EAAW,QAAQ,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAC,sBAAsB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AA2I7E,yEAAyE;AACzE,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,WAAW,UAAO,EAClB,aAAa,GAAE,oBAAyB,EACxC,mBAAmB,UAAQ,EAC3B,YAAY,GAAE,wBAAwB,GAAG,IAAW,EACpD,iBAAiB,GAAE,sBAA2B;;;EA0G/C;AAcD,iBAAS,oBAAoB,CAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,EAAE,EAClD,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,WAAW,UAAO,EAClB,aAAa,GAAE,oBAAyB,EACxC,wBAAwB,UAAQ,EAChC,oBAAoB,UAAQ,EAC5B,oBAAoB,UAAQ,EAC5B,iBAAiB,GAAE,sBAA2B;;;EAsC/C;AAED,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,CAAC"}
1
+ {"version":3,"file":"parserUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/parserUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAE,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAE/F,OAAO,KAAK,EAAW,QAAQ,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAC,sBAAsB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AA8H7E,yEAAyE;AACzE,iBAAS,sBAAsB,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,WAAW,UAAO,EAClB,aAAa,GAAE,oBAAyB,EACxC,mBAAmB,UAAQ,EAC3B,YAAY,GAAE,wBAAwB,GAAG,IAAW,EACpD,iBAAiB,GAAE,sBAA2B;;;EA4G/C;AAcD,iBAAS,oBAAoB,CAC3B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,aAAa,EAAE,EAClD,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,WAAW,UAAO,EAClB,aAAa,GAAE,oBAAyB,EACxC,wBAAwB,UAAQ,EAChC,oBAAoB,UAAQ,EAC5B,oBAAoB,UAAQ,EAC5B,iBAAiB,GAAE,sBAA2B;;;EAsC/C;AAED,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-live-markdown",
3
- "version": "0.1.212",
3
+ "version": "0.1.214",
4
4
  "description": "Drop-in replacement for React Native's TextInput component with Markdown formatting.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -6,6 +6,7 @@ import {unescapeText} from 'expensify-common/dist/utils';
6
6
  import {decode} from 'html-entities';
7
7
  import type {WorkletFunction} from 'react-native-reanimated/lib/typescript/commonTypes';
8
8
  import type {MarkdownType, MarkdownRange} from './commonTypes';
9
+ import {groupRanges, sortRanges, splitRangesOnEmojis} from './rangeUtils';
9
10
 
10
11
  function isWeb() {
11
12
  return Platform.OS === 'web';
@@ -233,45 +234,6 @@ function parseTreeToTextAndRanges(tree: StackItem): [string, MarkdownRange[]] {
233
234
  return [text, ranges];
234
235
  }
235
236
 
236
- // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
237
- function getTagPriority(tag: string) {
238
- switch (tag) {
239
- case 'blockquote':
240
- return 2;
241
- case 'h1':
242
- return 1;
243
- default:
244
- return 0;
245
- }
246
- }
247
-
248
- function sortRanges(ranges: MarkdownRange[]) {
249
- // sort ranges by start position, then by length, then by tag hierarchy
250
- return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
251
- }
252
-
253
- function groupRanges(ranges: MarkdownRange[]) {
254
- const lastVisibleRangeIndex: {[key in MarkdownType]?: number} = {};
255
-
256
- return ranges.reduce((acc, range) => {
257
- const start = range.start;
258
- const end = range.start + range.length;
259
-
260
- const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
261
- const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
262
-
263
- if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
264
- // increment depth of overlapping range
265
- sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
266
- } else {
267
- lastVisibleRangeIndex[range.type] = acc.length;
268
- acc.push(range);
269
- }
270
-
271
- return acc;
272
- }, [] as MarkdownRange[]);
273
- }
274
-
275
237
  function parseExpensiMark(markdown: string): MarkdownRange[] {
276
238
  if (markdown.length > MAX_PARSABLE_LENGTH) {
277
239
  return [];
@@ -288,8 +250,13 @@ function parseExpensiMark(markdown: string): MarkdownRange[] {
288
250
  );
289
251
  return [];
290
252
  }
291
- const sortedRanges = sortRanges(ranges);
253
+
254
+ let splittedRanges = splitRangesOnEmojis(ranges, 'italic');
255
+ splittedRanges = splitRangesOnEmojis(splittedRanges, 'strikethrough');
256
+
257
+ const sortedRanges = sortRanges(splittedRanges);
292
258
  const groupedRanges = groupRanges(sortedRanges);
259
+
293
260
  return groupedRanges;
294
261
  }
295
262
 
@@ -0,0 +1,114 @@
1
+ 'worklet';
2
+
3
+ import type {MarkdownRange, MarkdownType} from './commonTypes';
4
+
5
+ // getTagPriority returns a priority for a tag, higher priority means the tag should be processed first
6
+ function getTagPriority(tag: string) {
7
+ switch (tag) {
8
+ case 'blockquote':
9
+ return 2;
10
+ case 'h1':
11
+ return 1;
12
+ default:
13
+ return 0;
14
+ }
15
+ }
16
+
17
+ function sortRanges(ranges: MarkdownRange[]) {
18
+ // sort ranges by start position, then by length, then by tag hierarchy
19
+ return ranges.sort((a, b) => a.start - b.start || b.length - a.length || getTagPriority(b.type) - getTagPriority(a.type) || 0);
20
+ }
21
+
22
+ function groupRanges(ranges: MarkdownRange[]) {
23
+ const lastVisibleRangeIndex: {[key in MarkdownType]?: number} = {};
24
+
25
+ return ranges.reduce((acc, range) => {
26
+ const start = range.start;
27
+ const end = range.start + range.length;
28
+
29
+ const rangeWithSameStyleIndex = lastVisibleRangeIndex[range.type];
30
+ const sameStyleRange = rangeWithSameStyleIndex !== undefined ? acc[rangeWithSameStyleIndex] : undefined;
31
+
32
+ if (sameStyleRange && sameStyleRange.start <= start && sameStyleRange.start + sameStyleRange.length >= end && range.length > 1) {
33
+ // increment depth of overlapping range
34
+ sameStyleRange.depth = (sameStyleRange.depth || 1) + 1;
35
+ } else {
36
+ lastVisibleRangeIndex[range.type] = acc.length;
37
+ acc.push(range);
38
+ }
39
+
40
+ return acc;
41
+ }, [] as MarkdownRange[]);
42
+ }
43
+
44
+ function ungroupRanges(ranges: MarkdownRange[]): MarkdownRange[] {
45
+ const ungroupedRanges: MarkdownRange[] = [];
46
+ ranges.forEach((range) => {
47
+ if (!range.depth) {
48
+ ungroupedRanges.push(range);
49
+ }
50
+ const {depth, ...rangeWithoutDepth} = range;
51
+ Array.from({length: depth!}).forEach(() => {
52
+ ungroupedRanges.push(rangeWithoutDepth);
53
+ });
54
+ });
55
+ return ungroupedRanges;
56
+ }
57
+
58
+ function splitRangesOnEmojis(ranges: MarkdownRange[], type: MarkdownType): MarkdownRange[] {
59
+ const emojiRanges: MarkdownRange[] = ranges.filter((range) => range.type === 'emoji');
60
+ const newRanges: MarkdownRange[] = [];
61
+
62
+ let i = 0;
63
+ let j = 0;
64
+ while (i < ranges.length) {
65
+ const currentRange = ranges[i];
66
+ if (!currentRange) {
67
+ break;
68
+ }
69
+
70
+ if (currentRange.type !== type) {
71
+ newRanges.push(currentRange);
72
+ i++;
73
+ } else {
74
+ // Iterate through all emoji ranges before the end of the current range, splitting the current range at each intersection.
75
+ while (j < emojiRanges.length) {
76
+ const emojiRange = emojiRanges[j];
77
+ if (!emojiRange || emojiRange.start > currentRange.start + currentRange.length) {
78
+ break;
79
+ }
80
+
81
+ const currentStart: number = currentRange.start;
82
+ const currentEnd: number = currentRange.start + currentRange.length;
83
+ const emojiStart: number = emojiRange.start;
84
+ const emojiEnd: number = emojiRange.start + emojiRange.length;
85
+
86
+ if (emojiStart >= currentStart && emojiEnd <= currentEnd) {
87
+ // Intersection
88
+ const newRange: MarkdownRange = {
89
+ type: currentRange.type,
90
+ start: currentStart,
91
+ length: emojiStart - currentStart,
92
+ ...(currentRange?.depth && {depth: currentRange?.depth}),
93
+ };
94
+
95
+ currentRange.start = emojiEnd;
96
+ currentRange.length = currentEnd - emojiEnd;
97
+
98
+ if (newRange.length > 0) {
99
+ newRanges.push(newRange);
100
+ }
101
+ }
102
+ j++;
103
+ }
104
+
105
+ if (currentRange.length > 0) {
106
+ newRanges.push(currentRange);
107
+ }
108
+ i++;
109
+ }
110
+ }
111
+ return newRanges;
112
+ }
113
+
114
+ export {sortRanges, groupRanges, ungroupRanges, splitRangesOnEmojis};
@@ -6,6 +6,7 @@ import {getCurrentCursorPosition, moveCursorToEnd, setCursorPosition} from './cu
6
6
  import {addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType} from './blockUtils';
7
7
  import type {InlineImagesInputProps, MarkdownRange} from '../../commonTypes';
8
8
  import {getAnimationCurrentTimes, updateAnimationsTime} from './animationUtils';
9
+ import {sortRanges, ungroupRanges} from '../../rangeUtils';
9
10
 
10
11
  type Paragraph = {
11
12
  text: string;
@@ -14,20 +15,6 @@ type Paragraph = {
14
15
  markdownRanges: MarkdownRange[];
15
16
  };
16
17
 
17
- function ungroupRanges(ranges: MarkdownRange[]): MarkdownRange[] {
18
- const ungroupedRanges: MarkdownRange[] = [];
19
- ranges.forEach((range) => {
20
- if (!range.depth) {
21
- ungroupedRanges.push(range);
22
- }
23
- const {depth, ...rangeWithoutDepth} = range;
24
- Array.from({length: depth!}).forEach(() => {
25
- ungroupedRanges.push(rangeWithoutDepth);
26
- });
27
- });
28
- return ungroupedRanges;
29
- }
30
-
31
18
  function splitTextIntoLines(text: string): Paragraph[] {
32
19
  let lineStartIndex = 0;
33
20
  const lines: Paragraph[] = text.split('\n').map((line) => {
@@ -167,7 +154,9 @@ function parseRangesToHTMLNodes(
167
154
  return {dom: rootElement, tree: rootNode};
168
155
  }
169
156
 
170
- const markdownRanges = ungroupRanges(ranges);
157
+ // Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
158
+ const sortedRanges = sortRanges(ranges);
159
+ const markdownRanges = ungroupRanges(sortedRanges);
171
160
  lines = mergeLinesWithMultilineTags(lines, markdownRanges);
172
161
 
173
162
  let lastRangeEndIndex = 0;