@expensify/react-native-live-markdown 0.1.17 → 0.1.19

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.
@@ -105,6 +105,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
105
105
  placeholderTextColor = `rgba(0,0,0,0.2)`,
106
106
  selectTextOnFocus,
107
107
  spellCheck,
108
+ selection,
108
109
  style = {},
109
110
  value,
110
111
  autoFocus = false
@@ -112,7 +113,11 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
112
113
  const compositionRef = useRef(false);
113
114
  const divRef = useRef(null);
114
115
  const currentlyFocusedField = useRef(null);
115
- const contentSelection = useRef(null);
116
+ const valueLength = value ? value.length : 0;
117
+ const contentSelection = useRef({
118
+ start: valueLength,
119
+ end: valueLength
120
+ });
116
121
  const className = `react-native-live-markdown-input-${multiline ? 'multiline' : 'singleline'}`;
117
122
  const history = useRef();
118
123
  if (!history.current) {
@@ -122,15 +127,18 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
122
127
 
123
128
  // Empty placeholder would collapse the div, so we need to use zero-width space to prevent it
124
129
  const heightSafePlaceholder = useMemo(() => getPlaceholderValue(placeholder), [placeholder]);
125
- const updateSelection = useCallback(() => {
126
- if (!divRef.current) {
127
- return;
130
+ const setEventProps = useCallback(e => {
131
+ if (divRef.current) {
132
+ const text = normalizeValue(divRef.current.innerText || '');
133
+ if (e.target) {
134
+ // TODO: change the logic here so every event have value property
135
+ e.target.value = text;
136
+ }
137
+ if (e.nativeEvent && e.nativeEvent.text) {
138
+ e.nativeEvent.text = text;
139
+ }
128
140
  }
129
- const selection = CursorUtils.getCurrentCursorPosition(divRef.current);
130
- const markdownHTMLInput = divRef.current;
131
- markdownHTMLInput.selectionStart = selection.start;
132
- markdownHTMLInput.selectionEnd = selection.end;
133
- contentSelection.current = selection;
141
+ return e;
134
142
  }, []);
135
143
  const parseText = useCallback((target, text, customMarkdownStyles, cursorPosition = null, shouldAddToHistory = true) => {
136
144
  if (text === null) {
@@ -143,7 +151,6 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
143
151
  if (history.current && shouldAddToHistory) {
144
152
  history.current.debouncedAdd(parsedText.text, parsedText.cursorPosition);
145
153
  }
146
- updateSelection();
147
154
  return parsedText;
148
155
  }, [multiline]);
149
156
  const processedMarkdownStyle = useMemo(() => {
@@ -174,17 +181,6 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
174
181
  }
175
182
  return value;
176
183
  }, [value]);
177
- const setEventProps = useCallback(e => {
178
- if (divRef.current) {
179
- const text = normalizeValue(divRef.current.innerText || '');
180
- if (typeof e.target !== 'number') {
181
- // TODO: change the logic here so every event have value property
182
- e.target.value = text;
183
- }
184
- e.nativeEvent.text = text;
185
- }
186
- return e;
187
- }, []);
188
184
 
189
185
  // Placeholder text color logic
190
186
  const updateTextColor = useCallback((node, text) => {
@@ -223,6 +219,36 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
223
219
  onChangeText(normalizedText);
224
220
  }
225
221
  }, [multiline, onChange, onChangeText, setEventProps, processedMarkdownStyle]);
222
+ const handleSelectionChange = useCallback(event => {
223
+ const e = event;
224
+ setEventProps(e);
225
+ if (onSelectionChange && contentSelection.current) {
226
+ e.nativeEvent.selection = contentSelection.current;
227
+ onSelectionChange(e);
228
+ }
229
+ }, [onSelectionChange, setEventProps]);
230
+ const updateRefSelectionVariables = useCallback(newSelection => {
231
+ const {
232
+ start,
233
+ end
234
+ } = newSelection;
235
+ const markdownHTMLInput = divRef.current;
236
+ markdownHTMLInput.selectionStart = start;
237
+ markdownHTMLInput.selectionEnd = end;
238
+ }, []);
239
+ const updateSelection = useCallback((e = null) => {
240
+ if (!divRef.current) {
241
+ return;
242
+ }
243
+ const newSelection = CursorUtils.getCurrentCursorPosition(divRef.current);
244
+ if (newSelection && (contentSelection.current.start !== newSelection.start || contentSelection.current.end !== newSelection.end)) {
245
+ updateRefSelectionVariables(newSelection);
246
+ contentSelection.current = newSelection;
247
+ if (e) {
248
+ handleSelectionChange(e);
249
+ }
250
+ }
251
+ }, []);
226
252
  const handleKeyPress = useCallback(e => {
227
253
  if (!divRef.current) {
228
254
  return;
@@ -249,6 +275,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
249
275
  if (onKeyPress) {
250
276
  onKeyPress(event);
251
277
  }
278
+ updateSelection(event);
252
279
  if (e.key === 'Enter' && !e.shiftKey &&
253
280
  // Do not call submit if composition is occuring.
254
281
  !isComposing && !e.isDefaultPrevented()) {
@@ -269,22 +296,13 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
269
296
  }
270
297
  }
271
298
  }, [onKeyPress]);
272
- const handleSelectionChange = useCallback(event => {
273
- const e = event;
274
- setEventProps(e);
275
- updateSelection();
276
- if (onSelectionChange && contentSelection.current) {
277
- e.nativeEvent.selection = contentSelection.current;
278
- onSelectionChange(e);
279
- }
280
- }, [onSelectionChange, setEventProps]);
281
299
  const handleFocus = useCallback(event => {
282
300
  const e = event;
283
301
  const hostNode = e.target;
284
302
  currentlyFocusedField.current = hostNode;
285
303
  setEventProps(e);
286
304
  if (divRef.current && contentSelection.current) {
287
- CursorUtils.setCursorPosition(divRef.current, contentSelection.current.start || divRef.current.innerText.length, !multiline);
305
+ CursorUtils.setCursorPosition(divRef.current, contentSelection.current.end || contentSelection.current.start);
288
306
  }
289
307
  if (onFocus) {
290
308
  setEventProps(e);
@@ -310,6 +328,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
310
328
  }, [clearTextOnFocus, multiline, onFocus, selectTextOnFocus, setEventProps]);
311
329
  const handleBlur = useCallback(event => {
312
330
  const e = event;
331
+ CursorUtils.removeSelection();
313
332
  currentlyFocusedField.current = null;
314
333
  if (onBlur) {
315
334
  setEventProps(e);
@@ -317,13 +336,16 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
317
336
  }
318
337
  }, [onBlur, setEventProps]);
319
338
  const handleClick = useCallback(e => {
320
- updateSelection();
339
+ updateSelection(e);
321
340
  if (!onClick || !divRef.current) {
322
341
  return;
323
342
  }
324
343
  e.target.value = normalizeValue(divRef.current.innerText || '');
325
344
  onClick(e);
326
345
  }, [onClick]);
346
+ const startComposition = useCallback(() => {
347
+ compositionRef.current = true;
348
+ }, []);
327
349
  const setRef = currentRef => {
328
350
  const r = currentRef;
329
351
  if (r) {
@@ -388,15 +410,22 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
388
410
  };
389
411
  }, []);
390
412
  useEffect(() => {
391
- // focus the input on mount if autoFocus is set
392
- if (!(divRef.current && autoFocus)) {
413
+ if (!divRef.current) {
393
414
  return;
394
415
  }
395
- divRef.current.focus();
396
- }, []);
397
- const startComposition = useCallback(() => {
398
- compositionRef.current = true;
416
+ // focus the input on mount if autoFocus is set
417
+ if (autoFocus) {
418
+ divRef.current.focus();
419
+ }
420
+ updateRefSelectionVariables(contentSelection.current);
399
421
  }, []);
422
+ useEffect(() => {
423
+ if (!divRef.current || !selection || selection.start === contentSelection.current.start && selection.end === contentSelection.current.end) {
424
+ return;
425
+ }
426
+ CursorUtils.setCursorPosition(divRef.current, selection.start, selection.end);
427
+ updateSelection();
428
+ }, [selection]);
400
429
  return (
401
430
  /*#__PURE__*/
402
431
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
@@ -416,7 +445,6 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
416
445
  onCompositionStart: startComposition,
417
446
  onKeyUp: updateSelection,
418
447
  onInput: handleOnChangeText,
419
- onSelect: handleSelectionChange,
420
448
  onClick: handleClick,
421
449
  onFocus: handleFocus,
422
450
  onBlur: handleBlur,
@@ -435,8 +463,8 @@ const styles = StyleSheet.create({
435
463
  // @ts-expect-error it works on web
436
464
  boxSizing: 'border-box',
437
465
  whiteSpace: 'pre-wrap',
438
- overflowY: 'scroll',
439
- overflowX: 'scroll',
466
+ overflowY: 'auto',
467
+ overflowX: 'auto',
440
468
  overflowWrap: 'break-word'
441
469
  },
442
470
  disabledInputStyles: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","useLayoutEffect","StyleSheet","ParseUtils","CursorUtils","StyleUtils","InputHistory","require","useClientEffect","window","createReactDOMStyle","default","e","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","isEventComposing","nativeEvent","isComposing","keyCode","ZERO_WIDTH_SPACE","getPlaceholderValue","placeholder","length","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","Object","keys","forEach","key","obj","prop","processMarkdownStyle","mergeMarkdownStyleWithDefault","getElementHeight","node","styles","numberOfLines","tempElement","document","createElement","setAttribute","assign","style","innerText","Array","fill","join","parentElement","appendChild","height","clientHeight","removeChild","MarkdownTextInput","forwardRef","accessibilityLabel","accessibilityLabelledBy","accessibilityRole","autoCapitalize","autoCorrect","blurOnSubmit","clearTextOnFocus","dir","disabled","multiline","markdownStyle","onBlur","onChange","onChangeText","onClick","onFocus","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","selectTextOnFocus","spellCheck","autoFocus","ref","compositionRef","divRef","currentlyFocusedField","contentSelection","className","history","current","flattenedStyle","flatten","heightSafePlaceholder","updateSelection","selection","getCurrentCursorPosition","markdownHTMLInput","selectionStart","start","selectionEnd","end","parseText","target","text","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","debouncedAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","redo","processedValue","setEventProps","updateTextColor","String","handleOnChangeText","HTMLElement","inputType","event","normalizedText","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","setTimeout","blur","handleSelectionChange","handleFocus","setCursorPosition","clearTimeout","handleBlur","handleClick","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","originalAddEventListener","EventTarget","prototype","addEventListener","eventName","callback","call","contains","defineProperty","writable","focus","startComposition","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onSelect","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","useLayoutEffect","StyleSheet","ParseUtils","CursorUtils","StyleUtils","InputHistory","require","useClientEffect","window","createReactDOMStyle","default","e","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","isEventComposing","nativeEvent","isComposing","keyCode","ZERO_WIDTH_SPACE","getPlaceholderValue","placeholder","length","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","Object","keys","forEach","key","obj","prop","processMarkdownStyle","mergeMarkdownStyleWithDefault","getElementHeight","node","styles","numberOfLines","tempElement","document","createElement","setAttribute","assign","style","innerText","Array","fill","join","parentElement","appendChild","height","clientHeight","removeChild","MarkdownTextInput","forwardRef","accessibilityLabel","accessibilityLabelledBy","accessibilityRole","autoCapitalize","autoCorrect","blurOnSubmit","clearTextOnFocus","dir","disabled","multiline","markdownStyle","onBlur","onChange","onChangeText","onClick","onFocus","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","selectTextOnFocus","spellCheck","selection","autoFocus","ref","compositionRef","divRef","currentlyFocusedField","valueLength","contentSelection","start","end","className","history","current","flattenedStyle","flatten","heightSafePlaceholder","setEventProps","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","debouncedAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","redo","processedValue","updateTextColor","String","handleOnChangeText","HTMLElement","inputType","event","normalizedText","handleSelectionChange","updateRefSelectionVariables","newSelection","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","getCurrentCursorPosition","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","setTimeout","blur","handleFocus","setCursorPosition","clearTimeout","handleBlur","removeSelection","handleClick","startComposition","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","originalAddEventListener","EventTarget","prototype","addEventListener","eventName","callback","call","contains","defineProperty","writable","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
@@ -1,43 +1,47 @@
1
- function createRange(node, targetPosition, ignoreNewLines = false) {
2
- const range = document.createRange();
3
- range.selectNode(node);
4
- let pos = 0;
5
- const stack = [node];
6
- while (stack.length > 0) {
7
- const current = stack.pop();
8
- if (!current) {
9
- break;
1
+ function findTextNodes(textNodes, node) {
2
+ if (node.nodeType === Node.TEXT_NODE) {
3
+ textNodes.push(node);
4
+ } else {
5
+ for (let i = 0, length = node.childNodes.length; i < length; ++i) {
6
+ const childNode = node.childNodes[i];
7
+ if (childNode) {
8
+ findTextNodes(textNodes, childNode);
9
+ }
10
10
  }
11
- if (current.nodeType === Node.TEXT_NODE || current.nodeName === 'BR') {
12
- const textContentLength = current.textContent ? current.textContent.length : 0;
13
- const len = current.nodeName === 'BR' ? 1 : textContentLength;
14
- if (pos + len >= targetPosition) {
15
- if (current.nodeName === 'BR') {
16
- range.setStartAfter(current);
17
- current.scrollIntoView();
18
- } else {
19
- range.setStart(current, targetPosition - pos);
11
+ }
12
+ }
13
+ function setCursorPosition(target, start, end = null) {
14
+ const range = document.createRange();
15
+ range.selectNodeContents(target);
16
+ const textNodes = [];
17
+ findTextNodes(textNodes, target);
18
+ let charCount = 0;
19
+ let startNode = null;
20
+ let endNode = null;
21
+ const n = textNodes.length;
22
+ for (let i = 0; i < n; ++i) {
23
+ const textNode = textNodes[i];
24
+ if (textNode) {
25
+ const nextCharCount = charCount + textNode.length;
26
+ if (!startNode && start >= charCount && (start <= nextCharCount || start === nextCharCount && i < n - 1)) {
27
+ startNode = textNode;
28
+ range.setStart(textNode, start - charCount);
29
+ if (!end) {
30
+ break;
20
31
  }
21
- return range;
22
32
  }
23
- pos += len;
24
- } else if (current.childNodes && current.childNodes.length > 0) {
25
- for (let i = current.childNodes.length - 1; i >= 0; i--) {
26
- const currentNode = current.childNodes[i];
27
- if (currentNode && (!ignoreNewLines || ignoreNewLines && currentNode.nodeName !== 'BR')) {
28
- stack.push(currentNode);
29
- }
33
+ if (end && !endNode && end >= charCount && (end <= nextCharCount || end === nextCharCount && i < n - 1)) {
34
+ endNode = textNode;
35
+ range.setEnd(textNode, end - charCount);
30
36
  }
37
+ charCount = nextCharCount;
31
38
  }
32
39
  }
33
- range.setStart(node, node.childNodes.length);
34
- return range;
35
- }
36
- function setCursorPosition(target, targetPosition, ignoreNewLines = false) {
37
- const range = createRange(target, targetPosition, ignoreNewLines);
40
+ if (!end) {
41
+ range.collapse(true);
42
+ }
38
43
  const selection = window.getSelection();
39
44
  if (selection) {
40
- range.collapse(true);
41
45
  selection.removeAllRanges();
42
46
  selection.addRange(range);
43
47
  }
@@ -52,32 +56,27 @@ function moveCursorToEnd(target) {
52
56
  selection.addRange(range);
53
57
  }
54
58
  }
55
- function getIndexedPosition(target, range, isStart) {
56
- const marker = document.createTextNode('\0');
57
- const rangeClone = range.cloneRange();
58
- rangeClone.collapse(isStart);
59
- rangeClone.insertNode(marker);
60
- const position = target.innerText.indexOf('\0');
61
- if (marker.parentNode) {
62
- marker.parentNode.removeChild(marker);
63
- }
64
- return position;
65
- }
66
59
  function getCurrentCursorPosition(target) {
67
- const selection = document.getSelection();
68
- if (!selection || selection.rangeCount === 0) {
69
- return {
70
- start: target.innerText.length,
71
- end: target.innerText.length
72
- };
60
+ const selection = window.getSelection();
61
+ if (!selection || selection && selection.rangeCount === 0) {
62
+ return null;
73
63
  }
74
64
  const range = selection.getRangeAt(0);
75
- const start = getIndexedPosition(target, range, true);
76
- const end = getIndexedPosition(target, range, false);
65
+ const preSelectionRange = range.cloneRange();
66
+ preSelectionRange.selectNodeContents(target);
67
+ preSelectionRange.setEnd(range.startContainer, range.startOffset);
68
+ const start = preSelectionRange.toString().length;
69
+ const end = start + range.toString().length;
77
70
  return {
78
71
  start,
79
72
  end
80
73
  };
81
74
  }
82
- export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition };
75
+ function removeSelection() {
76
+ const selection = window.getSelection();
77
+ if (selection) {
78
+ selection.removeAllRanges();
79
+ }
80
+ }
81
+ export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, removeSelection };
83
82
  //# sourceMappingURL=cursorUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createRange","node","targetPosition","ignoreNewLines","range","document","selectNode","pos","stack","length","current","pop","nodeType","Node","TEXT_NODE","nodeName","textContentLength","textContent","len","setStartAfter","scrollIntoView","setStart","childNodes","i","currentNode","push","setCursorPosition","target","selection","window","getSelection","collapse","removeAllRanges","addRange","moveCursorToEnd","getIndexedPosition","isStart","marker","createTextNode","rangeClone","cloneRange","insertNode","position","innerText","indexOf","parentNode","removeChild","getCurrentCursorPosition","rangeCount","start","end","getRangeAt"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setCursorPosition","target","start","end","range","document","createRange","selectNodeContents","charCount","startNode","endNode","n","textNode","nextCharCount","setStart","setEnd","collapse","selection","window","getSelection","removeAllRanges","addRange","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","startContainer","startOffset","toString","removeSelection"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
@@ -142,27 +142,47 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
142
142
  addSubstringAsTextNode(root, text, lastRangeEndIndex, textLength);
143
143
  return root;
144
144
  }
145
- function parseText(target, text, curosrPositionIndex, markdownStyle = {}, disableNewLinesInCursorPositioning = false, alwaysMoveCursorToTheEnd = false) {
145
+ function moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, target) {
146
+ if (!isFocused) {
147
+ return;
148
+ }
149
+ if (alwaysMoveCursorToTheEnd || cursorPosition === null) {
150
+ CursorUtils.moveCursorToEnd(target);
151
+ } else if (cursorPosition !== null) {
152
+ CursorUtils.setCursorPosition(target, cursorPosition);
153
+ }
154
+ }
155
+ const isChromium = ('chrome' in window);
156
+ function parseText(target, text, curosrPositionIndex, markdownStyle = {}, alwaysMoveCursorToTheEnd = false) {
146
157
  const targetElement = target;
147
158
  let cursorPosition = curosrPositionIndex;
148
159
  const isFocused = document.activeElement === target;
149
160
  if (isFocused && curosrPositionIndex === null) {
150
- cursorPosition = CursorUtils.getCurrentCursorPosition(target).start;
161
+ const selection = CursorUtils.getCurrentCursorPosition(target);
162
+ cursorPosition = selection ? selection.end : null;
151
163
  }
152
164
  const ranges = global.parseExpensiMarkToRanges(text);
153
165
  const markdownRanges = ranges;
154
- targetElement.innerHTML = '';
155
- targetElement.innerText = '';
166
+ const rootSpan = targetElement.firstChild;
167
+ if (targetElement.innerHTML === '<br>' || rootSpan && rootSpan.innerHTML === '\n') {
168
+ targetElement.innerHTML = '';
169
+ targetElement.innerText = '';
170
+ }
156
171
 
157
172
  // We don't want to parse text with single '\n', because contentEditable represents it as invisible <br />
158
- if (!!text && text !== '\n') {
173
+ if (text) {
159
174
  const dom = parseRangesToHTMLNodes(text, markdownRanges, markdownStyle);
160
- target.appendChild(dom);
161
- }
162
- if (alwaysMoveCursorToTheEnd) {
163
- CursorUtils.moveCursorToEnd(target);
164
- } else if (isFocused && cursorPosition !== null) {
165
- CursorUtils.setCursorPosition(target, cursorPosition, disableNewLinesInCursorPositioning);
175
+ if (!rootSpan || rootSpan.innerHTML !== dom.innerHTML) {
176
+ targetElement.innerHTML = '';
177
+ targetElement.innerText = '';
178
+ target.appendChild(dom);
179
+ if (isChromium) {
180
+ moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, target);
181
+ }
182
+ }
183
+ if (!isChromium) {
184
+ moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, target);
185
+ }
166
186
  }
167
187
  return {
168
188
  text: target.innerText,
@@ -1 +1 @@
1
- {"version":3,"names":["CursorUtils","addStyling","targetElement","type","markdownStyle","node","Object","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","global","parseExpensiMarkToRanges","markdownRanges","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["CursorUtils","addStyling","targetElement","type","markdownStyle","node","Object","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","moveCursorToEnd","setCursorPosition","isChromium","window","parseText","curosrPositionIndex","activeElement","selection","getCurrentCursorPosition","end","global","parseExpensiMarkToRanges","markdownRanges","rootSpan","firstChild","innerHTML","innerText","dom"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownTextInput.web.d.ts","sourceRoot":"","sources":["../../../src/MarkdownTextInput.web.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EAKT,cAAc,EAGf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAgC,MAAM,OAAO,CAAC;AAK5I,OAAO,KAAK,KAAK,6CAA6C,MAAM,iDAAiD,CAAC;AACtH,OAAO,6BAA6B,CAAC;AAkCrC,KAAK,aAAa,GAAG,6CAA6C,CAAC,aAAa,CAAC;AAEjF,UAAU,sBAAuB,SAAQ,cAAc;IACrD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkED,QAAA,MAAM,iBAAiB,0FA8atB,CAAC;AAqBF,eAAe,iBAAiB,CAAC;AAEjC,YAAY,EAAC,sBAAsB,EAAC,CAAC"}
1
+ {"version":3,"file":"MarkdownTextInput.web.d.ts","sourceRoot":"","sources":["../../../src/MarkdownTextInput.web.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EAKT,cAAc,EAGf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAgC,MAAM,OAAO,CAAC;AAK5I,OAAO,KAAK,KAAK,6CAA6C,MAAM,iDAAiD,CAAC;AACtH,OAAO,6BAA6B,CAAC;AAkCrC,KAAK,aAAa,GAAG,6CAA6C,CAAC,aAAa,CAAC;AAEjF,UAAU,sBAAuB,SAAQ,cAAc;IACrD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkED,QAAA,MAAM,iBAAiB,0FAwctB,CAAC;AAqBF,eAAe,iBAAiB,CAAC;AAEjC,YAAY,EAAC,sBAAsB,EAAC,CAAC"}
@@ -1,8 +1,9 @@
1
- declare function setCursorPosition(target: HTMLElement, targetPosition: number, ignoreNewLines?: boolean): void;
1
+ declare function setCursorPosition(target: HTMLElement, start: number, end?: number | null): void;
2
2
  declare function moveCursorToEnd(target: HTMLElement): void;
3
3
  declare function getCurrentCursorPosition(target: HTMLElement): {
4
4
  start: number;
5
5
  end: number;
6
- };
7
- export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition };
6
+ } | null;
7
+ declare function removeSelection(): void;
8
+ export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, removeSelection };
8
9
  //# sourceMappingURL=cursorUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAsCA,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,UAAQ,QAQ7F;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAS3C;AAiBD,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;EAUpD;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAC,CAAC"}
1
+ {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAaA,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,QAwCvF;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAS3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;SAYpD;AAED,iBAAS,eAAe,SAKvB;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAC,CAAC"}
@@ -8,7 +8,7 @@ type MarkdownRange = {
8
8
  depth?: number;
9
9
  };
10
10
  declare function parseRangesToHTMLNodes(text: string, ranges: MarkdownRange[], markdownStyle?: PartialMarkdownStyle, disableInlineStyles?: boolean): HTMLElement;
11
- declare function parseText(target: HTMLElement, text: string, curosrPositionIndex: number | null, markdownStyle?: PartialMarkdownStyle, disableNewLinesInCursorPositioning?: boolean, alwaysMoveCursorToTheEnd?: boolean): {
11
+ declare function parseText(target: HTMLElement, text: string, curosrPositionIndex: number | null, markdownStyle?: PartialMarkdownStyle, alwaysMoveCursorToTheEnd?: boolean): {
12
12
  text: string;
13
13
  cursorPosition: number;
14
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parserUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/parserUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,eAAe,MAAM,eAAe,CAAC;AAEtD,KAAK,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAC;AAEjE,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAErJ,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkFF,iBAAS,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,aAAa,GAAE,oBAAyB,EAAE,mBAAmB,UAAQ,GAAG,WAAW,CAkEzJ;AAED,iBAAS,SAAS,CAChB,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAClC,aAAa,GAAE,oBAAyB,EACxC,kCAAkC,UAAQ,EAC1C,wBAAwB,UAAQ;;;EA6BjC;AAED,OAAO,EAAC,SAAS,EAAE,sBAAsB,EAAC,CAAC;AAE3C,YAAY,EAAC,aAAa,EAAE,YAAY,EAAC,CAAC"}
1
+ {"version":3,"file":"parserUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/parserUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,eAAe,MAAM,eAAe,CAAC;AAEtD,KAAK,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAC;AAEjE,KAAK,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,IAAI,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAErJ,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkFF,iBAAS,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,aAAa,GAAE,oBAAyB,EAAE,mBAAmB,UAAQ,GAAG,WAAW,CAkEzJ;AAgBD,iBAAS,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,EAAE,aAAa,GAAE,oBAAyB,EAAE,wBAAwB,UAAQ;;;EAuCnK;AAED,OAAO,EAAC,SAAS,EAAE,sBAAsB,EAAC,CAAC;AAE3C,YAAY,EAAC,aAAa,EAAE,YAAY,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-live-markdown",
3
- "version": "0.1.17",
3
+ "version": "0.1.19",
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",