@expensify/react-native-live-markdown 0.1.290 → 0.1.292

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.
@@ -20,6 +20,18 @@ void MarkdownTextInputDecoratorShadowNode::initialize() {
20
20
  // removing the trait, it's possible to force RN to create a host view, layout
21
21
  // of which can then be customized.
22
22
  ShadowNode::traits_.unset(ShadowNodeTraits::ForceFlattenView);
23
+
24
+ // When the decorator is cloned and has a child node, the child node should be
25
+ // cloned as well to ensure it is mutable.
26
+ const auto &children = getChildren();
27
+ if (!children.empty()) {
28
+ react_native_assert(
29
+ children.size() == 1 &&
30
+ "MarkdownTextInputDecoratorView received more than one child");
31
+
32
+ const auto clonedChild = children[0]->clone({});
33
+ replaceChild(*children[0], clonedChild);
34
+ }
23
35
  }
24
36
 
25
37
  void MarkdownTextInputDecoratorShadowNode::createCustomContextContainer() {
@@ -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":"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","ignoreList":[]}
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
- /** Merges lines that contain multiline markdown tags into one line */
29
- function mergeLinesWithMultilineTags(lines, ranges) {
30
- let mergedLines = [...lines];
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
- otherLineIndexes.forEach(lineIndex => {
42
- const otherLine = mergedLines[lineIndex];
43
- mainLine.text += `\n${otherLine.text}`;
44
- mainLine.length += otherLine.length + 1;
45
- mainLine.markdownRanges.push(...otherLine.markdownRanges);
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 = mergeLinesWithMultilineTags(lines, markdownRanges);
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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","ignoreList":[]}
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
- /** Merges lines that contain multiline markdown tags into one line */
24
- function mergeLinesWithMultilineTags(lines, ranges) {
25
- let mergedLines = [...lines];
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
- otherLineIndexes.forEach(lineIndex => {
37
- const otherLine = mergedLines[lineIndex];
38
- mainLine.text += `\n${otherLine.text}`;
39
- mainLine.length += otherLine.length + 1;
40
- mainLine.markdownRanges.push(...otherLine.markdownRanges);
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 = mergeLinesWithMultilineTags(lines, markdownRanges);
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;AAKD,iBAAS,mBAAmB,CAAC,IAAI,EAAE,QAAQ,WAE1C;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,0BAA0B,EAAC,CAAC"}
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;AAoI7E,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"}
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.290",
3
+ "version": "0.1.292",
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
- /** Merges lines that contain multiline markdown tags into one line */
35
- function mergeLinesWithMultilineTags(lines: Paragraph[], ranges: MarkdownRange[]) {
36
- let mergedLines = [...lines];
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
- mainLine.text += `\n${otherLine.text}`;
55
- mainLine.length += otherLine.length + 1;
56
- mainLine.markdownRanges.push(...otherLine.markdownRanges);
57
- });
58
- if (otherLineIndexes.length > 0) {
59
- mergedLines = mergedLines.filter((_line, index) => !otherLineIndexes.includes(index));
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 = mergeLinesWithMultilineTags(lines, markdownRanges);
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};