@expensify/react-native-live-markdown 0.1.289 → 0.1.291
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/android/build.gradle +2 -1
- package/lib/commonjs/web/utils/blockUtils.js +5 -0
- package/lib/commonjs/web/utils/blockUtils.js.map +1 -1
- package/lib/commonjs/web/utils/parserUtils.js +59 -13
- package/lib/commonjs/web/utils/parserUtils.js.map +1 -1
- package/lib/module/web/utils/blockUtils.js +5 -1
- package/lib/module/web/utils/blockUtils.js.map +1 -1
- package/lib/module/web/utils/parserUtils.js +60 -15
- package/lib/module/web/utils/parserUtils.js.map +1 -1
- package/lib/typescript/src/web/utils/blockUtils.d.ts +2 -1
- package/lib/typescript/src/web/utils/blockUtils.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/parserUtils.d.ts +13 -1
- package/lib/typescript/src/web/utils/parserUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/web/utils/blockUtils.ts +6 -1
- package/src/web/utils/parserUtils.ts +66 -17
package/android/build.gradle
CHANGED
|
@@ -93,7 +93,8 @@ android {
|
|
|
93
93
|
cmake {
|
|
94
94
|
arguments "-DANDROID_STL=c++_shared",
|
|
95
95
|
"-DANDROID_TOOLCHAIN=clang",
|
|
96
|
-
"-DREACT_NATIVE_MINOR_VERSION=${REACT_NATIVE_MINOR_VERSION}"
|
|
96
|
+
"-DREACT_NATIVE_MINOR_VERSION=${REACT_NATIVE_MINOR_VERSION}",
|
|
97
|
+
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
97
98
|
abiFilters (*reactNativeArchitectures())
|
|
98
99
|
}
|
|
99
100
|
}
|
|
@@ -7,6 +7,7 @@ exports.addStyleToBlock = addStyleToBlock;
|
|
|
7
7
|
exports.extendBlockStructure = extendBlockStructure;
|
|
8
8
|
exports.getFirstBlockMarkdownRange = getFirstBlockMarkdownRange;
|
|
9
9
|
exports.isBlockMarkdownType = isBlockMarkdownType;
|
|
10
|
+
exports.isMultilineMarkdownType = isMultilineMarkdownType;
|
|
10
11
|
var _inlineImage = require("../inputElements/inlineImage.js");
|
|
11
12
|
function addStyleToBlock(targetElement, type, markdownStyle, isMultiline = true) {
|
|
12
13
|
const node = targetElement;
|
|
@@ -99,9 +100,13 @@ function addStyleToBlock(targetElement, type, markdownStyle, isMultiline = true)
|
|
|
99
100
|
}
|
|
100
101
|
const BLOCK_MARKDOWN_TYPES = ['inline-image'];
|
|
101
102
|
const FULL_LINE_MARKDOWN_TYPES = ['blockquote'];
|
|
103
|
+
const MULTILINE_MARKDOWN_TYPES = ['pre'];
|
|
102
104
|
function isBlockMarkdownType(type) {
|
|
103
105
|
return BLOCK_MARKDOWN_TYPES.includes(type);
|
|
104
106
|
}
|
|
107
|
+
function isMultilineMarkdownType(type) {
|
|
108
|
+
return MULTILINE_MARKDOWN_TYPES.includes(type);
|
|
109
|
+
}
|
|
105
110
|
function getFirstBlockMarkdownRange(ranges) {
|
|
106
111
|
const blockMarkdownRange = ranges.find(r => isBlockMarkdownType(r.type) || FULL_LINE_MARKDOWN_TYPES.includes(r.type));
|
|
107
112
|
return FULL_LINE_MARKDOWN_TYPES.includes(blockMarkdownRange?.type || '') ? undefined : blockMarkdownRange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_inlineImage","require","addStyleToBlock","targetElement","type","markdownStyle","isMultiline","node","Object","assign","style","margin","padding","syntax","fontWeight","fontStyle","textDecoration","emoji","verticalAlign","display","mentionHere","mentionUser","mentionReport","link","code","pre","blockquote","borderLeftStyle","maxWidth","boxSizing","overflowWrap","h1","position","parentElement","cssText","BLOCK_MARKDOWN_TYPES","FULL_LINE_MARKDOWN_TYPES","isBlockMarkdownType","includes","getFirstBlockMarkdownRange","ranges","blockMarkdownRange","find","r","undefined","extendBlockStructure","currentInput","targetNode","currentRange","text","inlineImagesProps","addInlineImagePreview"],"sourceRoot":"../../../../src","sources":["web/utils/blockUtils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_inlineImage","require","addStyleToBlock","targetElement","type","markdownStyle","isMultiline","node","Object","assign","style","margin","padding","syntax","fontWeight","fontStyle","textDecoration","emoji","verticalAlign","display","mentionHere","mentionUser","mentionReport","link","code","pre","blockquote","borderLeftStyle","maxWidth","boxSizing","overflowWrap","h1","position","parentElement","cssText","BLOCK_MARKDOWN_TYPES","FULL_LINE_MARKDOWN_TYPES","MULTILINE_MARKDOWN_TYPES","isBlockMarkdownType","includes","isMultilineMarkdownType","getFirstBlockMarkdownRange","ranges","blockMarkdownRange","find","r","undefined","extendBlockStructure","currentInput","targetNode","currentRange","text","inlineImagesProps","addInlineImagePreview"],"sourceRoot":"../../../../src","sources":["web/utils/blockUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.normalizeLines = normalizeLines;
|
|
6
7
|
exports.parseRangesToHTMLNodes = parseRangesToHTMLNodes;
|
|
7
8
|
exports.updateInputStructure = updateInputStructure;
|
|
8
9
|
var _treeUtils = require("./treeUtils.js");
|
|
@@ -25,9 +26,57 @@ function splitTextIntoLines(text) {
|
|
|
25
26
|
return lines;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Merges lines with multiline markdown tags (like `pre`) into a single line.
|
|
31
|
+
* The main line will contain the text and all markdown ranges from the other lines.
|
|
32
|
+
*/
|
|
33
|
+
function mergeLinesWithMultilineTags(lines, currentLine, range, correspondingLineIndexes) {
|
|
34
|
+
const mainLine = currentLine;
|
|
35
|
+
currentLine.markdownRanges.push(range);
|
|
36
|
+
correspondingLineIndexes.forEach(lineIndex => {
|
|
37
|
+
const otherLine = lines[lineIndex];
|
|
38
|
+
mainLine.text += `\n${otherLine.text}`;
|
|
39
|
+
mainLine.length += otherLine.length + 1;
|
|
40
|
+
mainLine.markdownRanges.push(...otherLine.markdownRanges);
|
|
41
|
+
});
|
|
42
|
+
if (correspondingLineIndexes.length > 0 && correspondingLineIndexes[0] !== undefined) {
|
|
43
|
+
lines.splice(correspondingLineIndexes[0], correspondingLineIndexes.length);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Splits a markdown range that spans multiple lines into separate lines.
|
|
49
|
+
*/
|
|
50
|
+
function splitRangeIntoSeparateLines(lines, currentLine, range, correspondingLineIndexes) {
|
|
51
|
+
const mainLineRangeLength = currentLine.start + currentLine.length - range.start;
|
|
52
|
+
currentLine.markdownRanges.push({
|
|
53
|
+
...range,
|
|
54
|
+
length: mainLineRangeLength
|
|
55
|
+
});
|
|
56
|
+
let rangeLength = range.length - mainLineRangeLength;
|
|
57
|
+
correspondingLineIndexes.forEach(lineIndex => {
|
|
58
|
+
const otherLine = lines[lineIndex];
|
|
59
|
+
let currentLength = otherLine.length;
|
|
60
|
+
if (rangeLength <= currentLength) {
|
|
61
|
+
currentLength = rangeLength - 1;
|
|
62
|
+
}
|
|
63
|
+
if (currentLength > 0) {
|
|
64
|
+
lines[lineIndex]?.markdownRanges.push({
|
|
65
|
+
...range,
|
|
66
|
+
start: otherLine.start,
|
|
67
|
+
length: currentLength
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
rangeLength -= currentLength;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* For singleline markdown types, the function splits markdown ranges that spread beyond the line length into separate lines.
|
|
76
|
+
* For multiline markdown types (like `pre`), it merges them and corresponding text into one line.
|
|
77
|
+
*/
|
|
78
|
+
function normalizeLines(lines, ranges) {
|
|
79
|
+
const mergedLines = [...lines];
|
|
31
80
|
const lineIndexes = mergedLines.map((_line, index) => index);
|
|
32
81
|
ranges.forEach(range => {
|
|
33
82
|
const beginLineIndex = mergedLines.findLastIndex(line => line.start <= range.start);
|
|
@@ -36,16 +85,13 @@ function mergeLinesWithMultilineTags(lines, ranges) {
|
|
|
36
85
|
if (correspondingLineIndexes.length > 0) {
|
|
37
86
|
const mainLineIndex = correspondingLineIndexes[0];
|
|
38
87
|
const mainLine = mergedLines[mainLineIndex];
|
|
39
|
-
mainLine.markdownRanges.push(range);
|
|
40
88
|
const otherLineIndexes = correspondingLineIndexes.slice(1);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
mainLine
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (otherLineIndexes.length > 0) {
|
|
48
|
-
mergedLines = mergedLines.filter((_line, index) => !otherLineIndexes.includes(index));
|
|
89
|
+
if ((0, _blockUtils.isMultilineMarkdownType)(range.type)) {
|
|
90
|
+
mergeLinesWithMultilineTags(mergedLines, mainLine, range, otherLineIndexes);
|
|
91
|
+
} else if (otherLineIndexes.length > 0) {
|
|
92
|
+
splitRangeIntoSeparateLines(mergedLines, mainLine, range, otherLineIndexes);
|
|
93
|
+
} else {
|
|
94
|
+
mainLine.markdownRanges.push(range);
|
|
49
95
|
}
|
|
50
96
|
}
|
|
51
97
|
});
|
|
@@ -134,7 +180,7 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
|
|
|
134
180
|
// Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
|
|
135
181
|
const sortedRanges = (0, _rangeUtils.sortRanges)(ranges);
|
|
136
182
|
const markdownRanges = (0, _rangeUtils.ungroupRanges)(sortedRanges);
|
|
137
|
-
lines =
|
|
183
|
+
lines = normalizeLines(lines, markdownRanges);
|
|
138
184
|
let lastRangeEndIndex = 0;
|
|
139
185
|
while (lines.length > 0) {
|
|
140
186
|
const line = lines.shift();
|
|
@@ -1 +1 @@
|
|
|
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","isMultiline","createTextNode","parentType","parentElement","dataset","addStyleToBlock","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","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":[]}
|
|
1
|
+
{"version":3,"names":["_treeUtils","require","_cursorUtils","_blockUtils","_animationUtils","_rangeUtils","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","isMultilineMarkdownType","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","addNodeToTree","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addStyleToBlock","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","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":[]}
|
|
@@ -92,9 +92,13 @@ function addStyleToBlock(targetElement, type, markdownStyle, isMultiline = true)
|
|
|
92
92
|
}
|
|
93
93
|
const BLOCK_MARKDOWN_TYPES = ['inline-image'];
|
|
94
94
|
const FULL_LINE_MARKDOWN_TYPES = ['blockquote'];
|
|
95
|
+
const MULTILINE_MARKDOWN_TYPES = ['pre'];
|
|
95
96
|
function isBlockMarkdownType(type) {
|
|
96
97
|
return BLOCK_MARKDOWN_TYPES.includes(type);
|
|
97
98
|
}
|
|
99
|
+
function isMultilineMarkdownType(type) {
|
|
100
|
+
return MULTILINE_MARKDOWN_TYPES.includes(type);
|
|
101
|
+
}
|
|
98
102
|
function getFirstBlockMarkdownRange(ranges) {
|
|
99
103
|
const blockMarkdownRange = ranges.find(r => isBlockMarkdownType(r.type) || FULL_LINE_MARKDOWN_TYPES.includes(r.type));
|
|
100
104
|
return FULL_LINE_MARKDOWN_TYPES.includes(blockMarkdownRange?.type || '') ? undefined : blockMarkdownRange;
|
|
@@ -108,5 +112,5 @@ function extendBlockStructure(currentInput, targetNode, currentRange, ranges, te
|
|
|
108
112
|
}
|
|
109
113
|
return targetNode;
|
|
110
114
|
}
|
|
111
|
-
export { addStyleToBlock, extendBlockStructure, isBlockMarkdownType, getFirstBlockMarkdownRange };
|
|
115
|
+
export { addStyleToBlock, extendBlockStructure, isBlockMarkdownType, isMultilineMarkdownType, getFirstBlockMarkdownRange };
|
|
112
116
|
//# sourceMappingURL=blockUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addInlineImagePreview","addStyleToBlock","targetElement","type","markdownStyle","isMultiline","node","Object","assign","style","margin","padding","syntax","fontWeight","fontStyle","textDecoration","emoji","verticalAlign","display","mentionHere","mentionUser","mentionReport","link","code","pre","blockquote","borderLeftStyle","maxWidth","boxSizing","overflowWrap","h1","position","parentElement","cssText","BLOCK_MARKDOWN_TYPES","FULL_LINE_MARKDOWN_TYPES","isBlockMarkdownType","includes","getFirstBlockMarkdownRange","ranges","blockMarkdownRange","find","r","undefined","extendBlockStructure","currentInput","targetNode","currentRange","text","inlineImagesProps"],"sourceRoot":"../../../../src","sources":["web/utils/blockUtils.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["addInlineImagePreview","addStyleToBlock","targetElement","type","markdownStyle","isMultiline","node","Object","assign","style","margin","padding","syntax","fontWeight","fontStyle","textDecoration","emoji","verticalAlign","display","mentionHere","mentionUser","mentionReport","link","code","pre","blockquote","borderLeftStyle","maxWidth","boxSizing","overflowWrap","h1","position","parentElement","cssText","BLOCK_MARKDOWN_TYPES","FULL_LINE_MARKDOWN_TYPES","MULTILINE_MARKDOWN_TYPES","isBlockMarkdownType","includes","isMultilineMarkdownType","getFirstBlockMarkdownRange","ranges","blockMarkdownRange","find","r","undefined","extendBlockStructure","currentInput","targetNode","currentRange","text","inlineImagesProps"],"sourceRoot":"../../../../src","sources":["web/utils/blockUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { addNodeToTree, createRootTreeNode, updateTreeElementRefs } from "./treeUtils.js";
|
|
4
4
|
import { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition } from "./cursorUtils.js";
|
|
5
|
-
import { addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType } from "./blockUtils.js";
|
|
5
|
+
import { addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType, isMultilineMarkdownType } from "./blockUtils.js";
|
|
6
6
|
import { getAnimationCurrentTimes, updateAnimationsTime } from "./animationUtils.js";
|
|
7
7
|
import { sortRanges, ungroupRanges } from "../../rangeUtils.js";
|
|
8
8
|
function splitTextIntoLines(text) {
|
|
@@ -20,9 +20,57 @@ function splitTextIntoLines(text) {
|
|
|
20
20
|
return lines;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Merges lines with multiline markdown tags (like `pre`) into a single line.
|
|
25
|
+
* The main line will contain the text and all markdown ranges from the other lines.
|
|
26
|
+
*/
|
|
27
|
+
function mergeLinesWithMultilineTags(lines, currentLine, range, correspondingLineIndexes) {
|
|
28
|
+
const mainLine = currentLine;
|
|
29
|
+
currentLine.markdownRanges.push(range);
|
|
30
|
+
correspondingLineIndexes.forEach(lineIndex => {
|
|
31
|
+
const otherLine = lines[lineIndex];
|
|
32
|
+
mainLine.text += `\n${otherLine.text}`;
|
|
33
|
+
mainLine.length += otherLine.length + 1;
|
|
34
|
+
mainLine.markdownRanges.push(...otherLine.markdownRanges);
|
|
35
|
+
});
|
|
36
|
+
if (correspondingLineIndexes.length > 0 && correspondingLineIndexes[0] !== undefined) {
|
|
37
|
+
lines.splice(correspondingLineIndexes[0], correspondingLineIndexes.length);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Splits a markdown range that spans multiple lines into separate lines.
|
|
43
|
+
*/
|
|
44
|
+
function splitRangeIntoSeparateLines(lines, currentLine, range, correspondingLineIndexes) {
|
|
45
|
+
const mainLineRangeLength = currentLine.start + currentLine.length - range.start;
|
|
46
|
+
currentLine.markdownRanges.push({
|
|
47
|
+
...range,
|
|
48
|
+
length: mainLineRangeLength
|
|
49
|
+
});
|
|
50
|
+
let rangeLength = range.length - mainLineRangeLength;
|
|
51
|
+
correspondingLineIndexes.forEach(lineIndex => {
|
|
52
|
+
const otherLine = lines[lineIndex];
|
|
53
|
+
let currentLength = otherLine.length;
|
|
54
|
+
if (rangeLength <= currentLength) {
|
|
55
|
+
currentLength = rangeLength - 1;
|
|
56
|
+
}
|
|
57
|
+
if (currentLength > 0) {
|
|
58
|
+
lines[lineIndex]?.markdownRanges.push({
|
|
59
|
+
...range,
|
|
60
|
+
start: otherLine.start,
|
|
61
|
+
length: currentLength
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
rangeLength -= currentLength;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* For singleline markdown types, the function splits markdown ranges that spread beyond the line length into separate lines.
|
|
70
|
+
* For multiline markdown types (like `pre`), it merges them and corresponding text into one line.
|
|
71
|
+
*/
|
|
72
|
+
function normalizeLines(lines, ranges) {
|
|
73
|
+
const mergedLines = [...lines];
|
|
26
74
|
const lineIndexes = mergedLines.map((_line, index) => index);
|
|
27
75
|
ranges.forEach(range => {
|
|
28
76
|
const beginLineIndex = mergedLines.findLastIndex(line => line.start <= range.start);
|
|
@@ -31,16 +79,13 @@ function mergeLinesWithMultilineTags(lines, ranges) {
|
|
|
31
79
|
if (correspondingLineIndexes.length > 0) {
|
|
32
80
|
const mainLineIndex = correspondingLineIndexes[0];
|
|
33
81
|
const mainLine = mergedLines[mainLineIndex];
|
|
34
|
-
mainLine.markdownRanges.push(range);
|
|
35
82
|
const otherLineIndexes = correspondingLineIndexes.slice(1);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
mainLine
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (otherLineIndexes.length > 0) {
|
|
43
|
-
mergedLines = mergedLines.filter((_line, index) => !otherLineIndexes.includes(index));
|
|
83
|
+
if (isMultilineMarkdownType(range.type)) {
|
|
84
|
+
mergeLinesWithMultilineTags(mergedLines, mainLine, range, otherLineIndexes);
|
|
85
|
+
} else if (otherLineIndexes.length > 0) {
|
|
86
|
+
splitRangeIntoSeparateLines(mergedLines, mainLine, range, otherLineIndexes);
|
|
87
|
+
} else {
|
|
88
|
+
mainLine.markdownRanges.push(range);
|
|
44
89
|
}
|
|
45
90
|
}
|
|
46
91
|
});
|
|
@@ -129,7 +174,7 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
|
|
|
129
174
|
// Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
|
|
130
175
|
const sortedRanges = sortRanges(ranges);
|
|
131
176
|
const markdownRanges = ungroupRanges(sortedRanges);
|
|
132
|
-
lines =
|
|
177
|
+
lines = normalizeLines(lines, markdownRanges);
|
|
133
178
|
let lastRangeEndIndex = 0;
|
|
134
179
|
while (lines.length > 0) {
|
|
135
180
|
const line = lines.shift();
|
|
@@ -262,5 +307,5 @@ function updateInputStructure(parserFunction, target, text, cursorPositionIndex,
|
|
|
262
307
|
cursorPosition: cursorPosition || 0
|
|
263
308
|
};
|
|
264
309
|
}
|
|
265
|
-
export { updateInputStructure, parseRangesToHTMLNodes };
|
|
310
|
+
export { updateInputStructure, parseRangesToHTMLNodes, normalizeLines };
|
|
266
311
|
//# sourceMappingURL=parserUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
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","isMultiline","createTextNode","parentType","parentElement","dataset","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","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
|
+
{"version":3,"names":["addNodeToTree","createRootTreeNode","updateTreeElementRefs","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addStyleToBlock","extendBlockStructure","getFirstBlockMarkdownRange","isBlockMarkdownType","isMultilineMarkdownType","getAnimationCurrentTimes","updateAnimationsTime","sortRanges","ungroupRanges","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","length","markdownRanges","mergeLinesWithMultilineTags","currentLine","range","correspondingLineIndexes","mainLine","push","forEach","lineIndex","otherLine","undefined","splice","splitRangeIntoSeparateLines","mainLineRangeLength","rangeLength","currentLength","normalizeLines","ranges","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","slice","mainLineIndex","otherLineIndexes","type","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","isMultiline","createTextNode","parentType","parentElement","dataset","includes","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","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":[]}
|
|
@@ -4,7 +4,8 @@ import type { PartialMarkdownStyle } from '../../styleUtils';
|
|
|
4
4
|
import type { NodeType, TreeNode } from './treeUtils';
|
|
5
5
|
declare function addStyleToBlock(targetElement: HTMLElement, type: NodeType, markdownStyle: PartialMarkdownStyle, isMultiline?: boolean): void;
|
|
6
6
|
declare function isBlockMarkdownType(type: NodeType): boolean;
|
|
7
|
+
declare function isMultilineMarkdownType(type: NodeType): boolean;
|
|
7
8
|
declare function getFirstBlockMarkdownRange(ranges: MarkdownRange[]): MarkdownRange | undefined;
|
|
8
9
|
declare function extendBlockStructure(currentInput: MarkdownTextInputElement, targetNode: TreeNode, currentRange: MarkdownRange, ranges: MarkdownRange[], text: string, markdownStyle: PartialMarkdownStyle, inlineImagesProps: InlineImagesInputProps): TreeNode;
|
|
9
|
-
export { addStyleToBlock, extendBlockStructure, isBlockMarkdownType, getFirstBlockMarkdownRange };
|
|
10
|
+
export { addStyleToBlock, extendBlockStructure, isBlockMarkdownType, isMultilineMarkdownType, getFirstBlockMarkdownRange };
|
|
10
11
|
//# sourceMappingURL=blockUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/blockUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAC,sBAAsB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAEpD,iBAAS,eAAe,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,UAAO,QAwF3H;
|
|
1
|
+
{"version":3,"file":"blockUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/blockUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAC,sBAAsB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAEpD,iBAAS,eAAe,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,UAAO,QAwF3H;AAMD,iBAAS,mBAAmB,CAAC,IAAI,EAAE,QAAQ,WAE1C;AAED,iBAAS,uBAAuB,CAAC,IAAI,EAAE,QAAQ,WAE9C;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,aAAa,EAAE,6BAG1D;AAED,iBAAS,oBAAoB,CAC3B,YAAY,EAAE,wBAAwB,EACtC,UAAU,EAAE,QAAQ,EACpB,YAAY,EAAE,aAAa,EAC3B,MAAM,EAAE,aAAa,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,oBAAoB,EACnC,iBAAiB,EAAE,sBAAsB,YAU1C;AAED,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,EAAC,CAAC"}
|
|
@@ -2,6 +2,17 @@ import type { HTMLMarkdownElement, MarkdownTextInputElement } from '../../Markdo
|
|
|
2
2
|
import type { TreeNode } from './treeUtils';
|
|
3
3
|
import type { PartialMarkdownStyle } from '../../styleUtils';
|
|
4
4
|
import type { InlineImagesInputProps, MarkdownRange } from '../../commonTypes';
|
|
5
|
+
type Paragraph = {
|
|
6
|
+
text: string;
|
|
7
|
+
start: number;
|
|
8
|
+
length: number;
|
|
9
|
+
markdownRanges: MarkdownRange[];
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* For singleline markdown types, the function splits markdown ranges that spread beyond the line length into separate lines.
|
|
13
|
+
* For multiline markdown types (like `pre`), it merges them and corresponding text into one line.
|
|
14
|
+
*/
|
|
15
|
+
declare function normalizeLines(lines: Paragraph[], ranges: MarkdownRange[]): Paragraph[];
|
|
5
16
|
/** Builds HTML DOM structure based on passed text and markdown ranges */
|
|
6
17
|
declare function parseRangesToHTMLNodes(text: string, ranges: MarkdownRange[], isMultiline?: boolean, markdownStyle?: PartialMarkdownStyle, disableInlineStyles?: boolean, currentInput?: MarkdownTextInputElement | null, inlineImagesProps?: InlineImagesInputProps): {
|
|
7
18
|
dom: HTMLMarkdownElement;
|
|
@@ -11,5 +22,6 @@ declare function updateInputStructure(parserFunction: (input: string) => Markdow
|
|
|
11
22
|
text: string;
|
|
12
23
|
cursorPosition: number;
|
|
13
24
|
};
|
|
14
|
-
export { updateInputStructure, parseRangesToHTMLNodes };
|
|
25
|
+
export { updateInputStructure, parseRangesToHTMLNodes, normalizeLines };
|
|
26
|
+
export type { Paragraph };
|
|
15
27
|
//# sourceMappingURL=parserUtils.d.ts.map
|
|
@@ -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;
|
|
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;AAI7E,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAoEF;;;GAGG;AACH,iBAAS,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,eAyBlE;AA0ED,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,EAAE,cAAc,EAAC,CAAC;AACtE,YAAY,EAAC,SAAS,EAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expensify/react-native-live-markdown",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.291",
|
|
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",
|
|
@@ -96,11 +96,16 @@ function addStyleToBlock(targetElement: HTMLElement, type: NodeType, markdownSty
|
|
|
96
96
|
|
|
97
97
|
const BLOCK_MARKDOWN_TYPES = ['inline-image'];
|
|
98
98
|
const FULL_LINE_MARKDOWN_TYPES = ['blockquote'];
|
|
99
|
+
const MULTILINE_MARKDOWN_TYPES = ['pre'];
|
|
99
100
|
|
|
100
101
|
function isBlockMarkdownType(type: NodeType) {
|
|
101
102
|
return BLOCK_MARKDOWN_TYPES.includes(type);
|
|
102
103
|
}
|
|
103
104
|
|
|
105
|
+
function isMultilineMarkdownType(type: NodeType) {
|
|
106
|
+
return MULTILINE_MARKDOWN_TYPES.includes(type);
|
|
107
|
+
}
|
|
108
|
+
|
|
104
109
|
function getFirstBlockMarkdownRange(ranges: MarkdownRange[]) {
|
|
105
110
|
const blockMarkdownRange = ranges.find((r) => isBlockMarkdownType(r.type) || FULL_LINE_MARKDOWN_TYPES.includes(r.type));
|
|
106
111
|
return FULL_LINE_MARKDOWN_TYPES.includes(blockMarkdownRange?.type || '') ? undefined : blockMarkdownRange;
|
|
@@ -125,4 +130,4 @@ function extendBlockStructure(
|
|
|
125
130
|
return targetNode;
|
|
126
131
|
}
|
|
127
132
|
|
|
128
|
-
export {addStyleToBlock, extendBlockStructure, isBlockMarkdownType, getFirstBlockMarkdownRange};
|
|
133
|
+
export {addStyleToBlock, extendBlockStructure, isBlockMarkdownType, isMultilineMarkdownType, getFirstBlockMarkdownRange};
|
|
@@ -3,7 +3,7 @@ import {addNodeToTree, createRootTreeNode, updateTreeElementRefs} from './treeUt
|
|
|
3
3
|
import type {NodeType, TreeNode} from './treeUtils';
|
|
4
4
|
import type {PartialMarkdownStyle} from '../../styleUtils';
|
|
5
5
|
import {getCurrentCursorPosition, moveCursorToEnd, setCursorPosition} from './cursorUtils';
|
|
6
|
-
import {addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType} from './blockUtils';
|
|
6
|
+
import {addStyleToBlock, extendBlockStructure, getFirstBlockMarkdownRange, isBlockMarkdownType, isMultilineMarkdownType} from './blockUtils';
|
|
7
7
|
import type {InlineImagesInputProps, MarkdownRange} from '../../commonTypes';
|
|
8
8
|
import {getAnimationCurrentTimes, updateAnimationsTime} from './animationUtils';
|
|
9
9
|
import {sortRanges, ungroupRanges} from '../../rangeUtils';
|
|
@@ -31,9 +31,62 @@ function splitTextIntoLines(text: string): Paragraph[] {
|
|
|
31
31
|
return lines;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Merges lines with multiline markdown tags (like `pre`) into a single line.
|
|
36
|
+
* The main line will contain the text and all markdown ranges from the other lines.
|
|
37
|
+
*/
|
|
38
|
+
function mergeLinesWithMultilineTags(lines: Paragraph[], currentLine: Paragraph, range: MarkdownRange, correspondingLineIndexes: number[]) {
|
|
39
|
+
const mainLine = currentLine;
|
|
40
|
+
currentLine.markdownRanges.push(range);
|
|
41
|
+
|
|
42
|
+
correspondingLineIndexes.forEach((lineIndex) => {
|
|
43
|
+
const otherLine = lines[lineIndex] as Paragraph;
|
|
44
|
+
mainLine.text += `\n${otherLine.text}`;
|
|
45
|
+
mainLine.length += otherLine.length + 1;
|
|
46
|
+
mainLine.markdownRanges.push(...otherLine.markdownRanges);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
if (correspondingLineIndexes.length > 0 && correspondingLineIndexes[0] !== undefined) {
|
|
50
|
+
lines.splice(correspondingLineIndexes[0], correspondingLineIndexes.length);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Splits a markdown range that spans multiple lines into separate lines.
|
|
56
|
+
*/
|
|
57
|
+
function splitRangeIntoSeparateLines(lines: Paragraph[], currentLine: Paragraph, range: MarkdownRange, correspondingLineIndexes: number[]) {
|
|
58
|
+
const mainLineRangeLength = currentLine.start + currentLine.length - range.start;
|
|
59
|
+
currentLine.markdownRanges.push({
|
|
60
|
+
...range,
|
|
61
|
+
length: mainLineRangeLength,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
let rangeLength = range.length - mainLineRangeLength;
|
|
65
|
+
correspondingLineIndexes.forEach((lineIndex) => {
|
|
66
|
+
const otherLine = lines[lineIndex] as Paragraph;
|
|
67
|
+
let currentLength = otherLine.length;
|
|
68
|
+
if (rangeLength <= currentLength) {
|
|
69
|
+
currentLength = rangeLength - 1;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (currentLength > 0) {
|
|
73
|
+
lines[lineIndex]?.markdownRanges.push({
|
|
74
|
+
...range,
|
|
75
|
+
start: otherLine.start,
|
|
76
|
+
length: currentLength,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
rangeLength -= currentLength;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* For singleline markdown types, the function splits markdown ranges that spread beyond the line length into separate lines.
|
|
86
|
+
* For multiline markdown types (like `pre`), it merges them and corresponding text into one line.
|
|
87
|
+
*/
|
|
88
|
+
function normalizeLines(lines: Paragraph[], ranges: MarkdownRange[]) {
|
|
89
|
+
const mergedLines = [...lines];
|
|
37
90
|
const lineIndexes = mergedLines.map((_line, index) => index);
|
|
38
91
|
|
|
39
92
|
ranges.forEach((range) => {
|
|
@@ -44,19 +97,14 @@ function mergeLinesWithMultilineTags(lines: Paragraph[], ranges: MarkdownRange[]
|
|
|
44
97
|
if (correspondingLineIndexes.length > 0) {
|
|
45
98
|
const mainLineIndex = correspondingLineIndexes[0] as number;
|
|
46
99
|
const mainLine = mergedLines[mainLineIndex] as Paragraph;
|
|
47
|
-
|
|
48
|
-
mainLine.markdownRanges.push(range);
|
|
49
|
-
|
|
50
100
|
const otherLineIndexes = correspondingLineIndexes.slice(1);
|
|
51
|
-
otherLineIndexes.forEach((lineIndex) => {
|
|
52
|
-
const otherLine = mergedLines[lineIndex] as Paragraph;
|
|
53
101
|
|
|
54
|
-
|
|
55
|
-
mainLine
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
102
|
+
if (isMultilineMarkdownType(range.type)) {
|
|
103
|
+
mergeLinesWithMultilineTags(mergedLines, mainLine, range, otherLineIndexes);
|
|
104
|
+
} else if (otherLineIndexes.length > 0) {
|
|
105
|
+
splitRangeIntoSeparateLines(mergedLines, mainLine, range, otherLineIndexes);
|
|
106
|
+
} else {
|
|
107
|
+
mainLine.markdownRanges.push(range);
|
|
60
108
|
}
|
|
61
109
|
}
|
|
62
110
|
});
|
|
@@ -163,7 +211,7 @@ function parseRangesToHTMLNodes(
|
|
|
163
211
|
// Sort all ranges by start position, length, and by tag hierarchy so the styles and text are applied in correct order
|
|
164
212
|
const sortedRanges = sortRanges(ranges);
|
|
165
213
|
const markdownRanges = ungroupRanges(sortedRanges);
|
|
166
|
-
lines =
|
|
214
|
+
lines = normalizeLines(lines, markdownRanges);
|
|
167
215
|
|
|
168
216
|
let lastRangeEndIndex = 0;
|
|
169
217
|
while (lines.length > 0) {
|
|
@@ -316,4 +364,5 @@ function updateInputStructure(
|
|
|
316
364
|
return {text, cursorPosition: cursorPosition || 0};
|
|
317
365
|
}
|
|
318
366
|
|
|
319
|
-
export {updateInputStructure, parseRangesToHTMLNodes};
|
|
367
|
+
export {updateInputStructure, parseRangesToHTMLNodes, normalizeLines};
|
|
368
|
+
export type {Paragraph};
|