@expensify/react-native-live-markdown 0.1.156 → 0.1.158
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/lib/commonjs/MarkdownTextInput.web.js +33 -6
- package/lib/commonjs/MarkdownTextInput.web.js.map +1 -1
- package/lib/commonjs/web/inputElements/inlineImage.js +98 -49
- package/lib/commonjs/web/inputElements/inlineImage.js.map +1 -1
- package/lib/commonjs/web/utils/blockUtils.js +1 -1
- package/lib/commonjs/web/utils/blockUtils.js.map +1 -1
- package/lib/commonjs/web/utils/cursorUtils.js +17 -3
- package/lib/commonjs/web/utils/cursorUtils.js.map +1 -1
- package/lib/commonjs/web/utils/parserUtils.js +4 -4
- package/lib/commonjs/web/utils/parserUtils.js.map +1 -1
- package/lib/module/MarkdownTextInput.web.js +33 -6
- package/lib/module/MarkdownTextInput.web.js.map +1 -1
- package/lib/module/web/inputElements/inlineImage.js +98 -50
- package/lib/module/web/inputElements/inlineImage.js.map +1 -1
- package/lib/module/web/utils/blockUtils.js +1 -1
- package/lib/module/web/utils/blockUtils.js.map +1 -1
- package/lib/module/web/utils/cursorUtils.js +17 -3
- package/lib/module/web/utils/cursorUtils.js.map +1 -1
- package/lib/module/web/utils/parserUtils.js +4 -4
- package/lib/module/web/utils/parserUtils.js.map +1 -1
- package/lib/typescript/src/MarkdownTextInput.web.d.ts.map +1 -1
- package/lib/typescript/src/web/inputElements/inlineImage.d.ts +2 -1
- package/lib/typescript/src/web/inputElements/inlineImage.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/cursorUtils.d.ts +2 -2
- package/lib/typescript/src/web/utils/cursorUtils.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/parserUtils.d.ts +1 -1
- package/lib/typescript/src/web/utils/parserUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/MarkdownTextInput.web.tsx +39 -5
- package/src/web/inputElements/inlineImage.ts +108 -47
- package/src/web/utils/blockUtils.ts +1 -1
- package/src/web/utils/cursorUtils.ts +18 -3
- package/src/web/utils/parserUtils.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findHTMLElementInTree","getTreeNodeByIndex","setCursorPosition","target","startIndex","endIndex","tree","document","activeElement","start","Math","max","min","length","end","range","createRange","selectNodeContents","startTreeNode","endTreeNode","console","error","type","setStartBefore","element","setStart","childNodes","setEndBefore","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollIntoView","node","_node$parentNode","parentNode","block","
|
|
1
|
+
{"version":3,"names":["findHTMLElementInTree","getTreeNodeByIndex","setCursorPosition","target","startIndex","endIndex","shouldScrollIntoView","tree","document","activeElement","start","Math","max","min","length","end","range","createRange","selectNodeContents","startTreeNode","endTreeNode","console","error","type","setStartBefore","element","setStart","childNodes","setEndBefore","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollIntoView","node","_node$parentNode","targetElement","parentNode","block","rangeCount","getRangeAt","caretRect","getBoundingClientRect","targetRect","top","height","scrollTop","moveCursorToEnd","getCurrentCursorPosition","getHTMLElement","Text","parentElement","startElement","endElement","value","removeSelection","removeAllRanges"],"sourceRoot":"../../../../src","sources":["web/utils/cursorUtils.ts"],"mappings":"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"}
|
|
@@ -228,17 +228,17 @@ function parseRangesToHTMLNodes(text, ranges, isMultiline = true, markdownStyle
|
|
|
228
228
|
tree: rootNode
|
|
229
229
|
};
|
|
230
230
|
}
|
|
231
|
-
function moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, target) {
|
|
231
|
+
function moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, target, shouldScrollIntoView = false) {
|
|
232
232
|
if (!isFocused) {
|
|
233
233
|
return;
|
|
234
234
|
}
|
|
235
235
|
if (alwaysMoveCursorToTheEnd || cursorPosition === null) {
|
|
236
236
|
moveCursorToEnd(target);
|
|
237
237
|
} else if (cursorPosition !== null) {
|
|
238
|
-
setCursorPosition(target, cursorPosition);
|
|
238
|
+
setCursorPosition(target, cursorPosition, null, shouldScrollIntoView);
|
|
239
239
|
}
|
|
240
240
|
}
|
|
241
|
-
function updateInputStructure(target, text, cursorPositionIndex, isMultiline = true, markdownStyle = {}, alwaysMoveCursorToTheEnd = false, shouldForceDOMUpdate = false) {
|
|
241
|
+
function updateInputStructure(target, text, cursorPositionIndex, isMultiline = true, markdownStyle = {}, alwaysMoveCursorToTheEnd = false, shouldForceDOMUpdate = false, shouldScrollIntoView = false) {
|
|
242
242
|
const targetElement = target;
|
|
243
243
|
|
|
244
244
|
// in case the cursorPositionIndex is larger than text length, cursorPosition will be null, i.e: move the caret to the end
|
|
@@ -269,7 +269,7 @@ function updateInputStructure(target, text, cursorPositionIndex, isMultiline = t
|
|
|
269
269
|
}
|
|
270
270
|
updateTreeElementRefs(tree, targetElement);
|
|
271
271
|
targetElement.tree = tree;
|
|
272
|
-
moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, targetElement);
|
|
272
|
+
moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, targetElement, shouldScrollIntoView);
|
|
273
273
|
}
|
|
274
274
|
return {
|
|
275
275
|
text,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["addNodeToTree","updateTreeElementRefs","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addStyleToBlock","extendBlockStructure","getFirstBlockMarkdownRange","isBlockMarkdownType","getAnimationCurrentTimes","updateAnimationsTime","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","length","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","markdownRanges","mergeLinesWithMultilineTags","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","rootElement","textLength","rootNode","childNodes","orderIndex","isGeneratingNewline","currentParentNode","dom","tree","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","substring","textBeforeRange","textAfterRange","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","updateInputStructure","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","global","parseExpensiMarkToRanges","innerHTML","innerText","animationTimes"],"sourceRoot":"../../../../src","sources":["web/utils/parserUtils.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["addNodeToTree","updateTreeElementRefs","getCurrentCursorPosition","moveCursorToEnd","setCursorPosition","addStyleToBlock","extendBlockStructure","getFirstBlockMarkdownRange","isBlockMarkdownType","getAnimationCurrentTimes","updateAnimationsTime","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","length","splitTextIntoLines","text","lineStartIndex","lines","split","map","line","lineObject","start","markdownRanges","mergeLinesWithMultilineTags","mergedLines","lineIndexes","_line","index","beginLineIndex","findLastIndex","endLineIndex","findIndex","correspondingLineIndexes","slice","mainLineIndex","mainLine","otherLineIndexes","lineIndex","otherLine","filter","includes","appendValueToElement","element","parentTreeNode","value","targetElement","parentNode","appendNode","type","node","appendChild","addBrElement","span","document","createElement","setAttribute","spanNode","addTextToElement","createTextNode","addParagraph","disableInlineStyles","p","pNode","addBlockWrapper","targetNode","markdownStyle","parseRangesToHTMLNodes","isMultiline","currentInput","rootElement","textLength","rootNode","childNodes","orderIndex","isGeneratingNewline","currentParentNode","dom","tree","lastRangeEndIndex","shift","wasBlockGenerated","lineMarkdownRanges","endOfCurrentRange","nextRangeStartIndex","blockRange","substring","textBeforeRange","textAfterRange","moveCursor","isFocused","alwaysMoveCursorToTheEnd","cursorPosition","target","shouldScrollIntoView","updateInputStructure","cursorPositionIndex","shouldForceDOMUpdate","activeElement","selection","global","parseExpensiMarkToRanges","innerHTML","innerText","animationTimes"],"sourceRoot":"../../../../src","sources":["web/utils/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,EAKf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAmE,MAAM,OAAO,CAAC;AAI/K,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"MarkdownTextInput.web.d.ts","sourceRoot":"","sources":["../../../src/MarkdownTextInput.web.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EAKT,cAAc,EAKf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAmE,MAAM,OAAO,CAAC;AAI/K,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAEpD,OAAO,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AASnF,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;AAMD,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAcF,KAAK,wBAAwB,GAAG,cAAc,GAC5C,gBAAgB,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEJ,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,QAAA,MAAM,iBAAiB,0FAkpBtB,CAAC;AAoBF,eAAe,iBAAiB,CAAC;AAEjC,YAAY,EAAC,sBAAsB,EAAE,wBAAwB,EAAE,mBAAmB,EAAC,CAAC"}
|
|
@@ -4,5 +4,6 @@ import type { PartialMarkdownStyle } from '../../styleUtils';
|
|
|
4
4
|
import type { TreeNode } from '../utils/treeUtils';
|
|
5
5
|
/** The main function that adds inline image preview to the node */
|
|
6
6
|
declare function addInlineImagePreview(currentInput: MarkdownTextInputElement, targetNode: TreeNode, text: string, ranges: MarkdownRange[], markdownStyle: PartialMarkdownStyle): TreeNode;
|
|
7
|
-
|
|
7
|
+
declare function forceRefreshAllImages(currentInput: MarkdownTextInputElement, markdownStyle: PartialMarkdownStyle): void;
|
|
8
|
+
export { addInlineImagePreview, forceRefreshAllImages };
|
|
8
9
|
//# sourceMappingURL=inlineImage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inlineImage.d.ts","sourceRoot":"","sources":["../../../../../src/web/inputElements/inlineImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"inlineImage.d.ts","sourceRoot":"","sources":["../../../../../src/web/inputElements/inlineImage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAC/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AA0IjD,mEAAmE;AACnE,iBAAS,qBAAqB,CAAC,YAAY,EAAE,wBAAwB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,oBAAoB,YAkCtK;AAED,iBAAS,qBAAqB,CAAC,YAAY,EAAE,wBAAwB,EAAE,aAAa,EAAE,oBAAoB,QAazG;AAGD,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MarkdownTextInputElement } from '../../MarkdownTextInput.web';
|
|
2
2
|
import type { TreeNode } from './treeUtils';
|
|
3
|
-
declare function setCursorPosition(target: MarkdownTextInputElement, startIndex: number, endIndex?: number | null): void;
|
|
4
|
-
declare function scrollIntoView(node: TreeNode): void;
|
|
3
|
+
declare function setCursorPosition(target: MarkdownTextInputElement, startIndex: number, endIndex?: number | null, shouldScrollIntoView?: boolean): void;
|
|
4
|
+
declare function scrollIntoView(target: MarkdownTextInputElement, node: TreeNode): void;
|
|
5
5
|
declare function moveCursorToEnd(target: HTMLElement): void;
|
|
6
6
|
declare function getCurrentCursorPosition(target: MarkdownTextInputElement): {
|
|
7
7
|
start: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/cursorUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAE1E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,
|
|
1
|
+
{"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../../src/web/utils/cursorUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAE1E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,oBAAoB,UAAQ,QA8C5I;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,QAwBvE;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAQ3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,wBAAwB;;;SAiCjE;AAED,iBAAS,eAAe,SAKvB;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAC,CAAC"}
|
|
@@ -7,7 +7,7 @@ declare function parseRangesToHTMLNodes(text: string, ranges: MarkdownRange[], i
|
|
|
7
7
|
dom: HTMLMarkdownElement;
|
|
8
8
|
tree: TreeNode;
|
|
9
9
|
};
|
|
10
|
-
declare function updateInputStructure(target: MarkdownTextInputElement, text: string, cursorPositionIndex: number | null, isMultiline?: boolean, markdownStyle?: PartialMarkdownStyle, alwaysMoveCursorToTheEnd?: boolean, shouldForceDOMUpdate?: boolean): {
|
|
10
|
+
declare function updateInputStructure(target: MarkdownTextInputElement, text: string, cursorPositionIndex: number | null, isMultiline?: boolean, markdownStyle?: PartialMarkdownStyle, alwaysMoveCursorToTheEnd?: boolean, shouldForceDOMUpdate?: boolean, shouldScrollIntoView?: boolean): {
|
|
11
11
|
text: string;
|
|
12
12
|
cursorPosition: number;
|
|
13
13
|
};
|
|
@@ -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,aAAa,EAAC,MAAM,mBAAmB,CAAC;AA2IrD,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;;;EAkHrD;AAcD,iBAAS,oBAAoB,CAC3B,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;;;EAoC7B;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,aAAa,EAAC,MAAM,mBAAmB,CAAC;AA2IrD,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;;;EAkHrD;AAcD,iBAAS,oBAAoB,CAC3B,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;;;EAoC7B;AAED,OAAO,EAAC,oBAAoB,EAAE,sBAAsB,EAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expensify/react-native-live-markdown",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.158",
|
|
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",
|
|
@@ -22,6 +22,7 @@ import './web/MarkdownTextInput.css';
|
|
|
22
22
|
import type {MarkdownStyle} from './MarkdownTextInputDecoratorViewNativeComponent';
|
|
23
23
|
import {getElementHeight, getPlaceholderValue, isEventComposing, normalizeValue, parseInnerHTMLToText} from './web/utils/inputUtils';
|
|
24
24
|
import {parseToReactDOMStyle, processMarkdownStyle} from './web/utils/webStyleUtils';
|
|
25
|
+
import {forceRefreshAllImages} from './web/inputElements/inlineImage';
|
|
25
26
|
|
|
26
27
|
require('../parser/react-native-live-markdown-parser.js');
|
|
27
28
|
|
|
@@ -111,6 +112,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
111
112
|
const history = useRef<InputHistory>();
|
|
112
113
|
const dimensions = useRef<Dimensions | null>(null);
|
|
113
114
|
const pasteContent = useRef<string | null>(null);
|
|
115
|
+
const hasJustBeenFocused = useRef<boolean>(false);
|
|
114
116
|
|
|
115
117
|
if (!history.current) {
|
|
116
118
|
history.current = new InputHistory(100, 150, value || '');
|
|
@@ -143,6 +145,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
143
145
|
cursorPosition: number | null = null,
|
|
144
146
|
shouldAddToHistory = true,
|
|
145
147
|
shouldForceDOMUpdate = false,
|
|
148
|
+
shouldScrollIntoView = false,
|
|
146
149
|
): ParseTextResult => {
|
|
147
150
|
if (!divRef.current) {
|
|
148
151
|
return {text: text || '', cursorPosition: null};
|
|
@@ -151,7 +154,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
151
154
|
if (text === null) {
|
|
152
155
|
return {text: divRef.current.value, cursorPosition: null};
|
|
153
156
|
}
|
|
154
|
-
const parsedText = updateInputStructure(target, text, cursorPosition, multiline, customMarkdownStyles, false, shouldForceDOMUpdate);
|
|
157
|
+
const parsedText = updateInputStructure(target, text, cursorPosition, multiline, customMarkdownStyles, false, shouldForceDOMUpdate, shouldScrollIntoView);
|
|
155
158
|
divRef.current.value = parsedText.text;
|
|
156
159
|
|
|
157
160
|
if (history.current && shouldAddToHistory) {
|
|
@@ -261,6 +264,19 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
261
264
|
[handleSelectionChange, updateRefSelectionVariables],
|
|
262
265
|
);
|
|
263
266
|
|
|
267
|
+
const handleOnSelect = useCallback(
|
|
268
|
+
(e) => {
|
|
269
|
+
updateSelection(e);
|
|
270
|
+
|
|
271
|
+
// If the input has just been focused, we need to scroll the cursor into view
|
|
272
|
+
if (divRef.current && contentSelection.current && hasJustBeenFocused.current) {
|
|
273
|
+
setCursorPosition(divRef.current, contentSelection.current?.start, contentSelection.current?.end, true);
|
|
274
|
+
hasJustBeenFocused.current = false;
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
[updateSelection],
|
|
278
|
+
);
|
|
279
|
+
|
|
264
280
|
const handleContentSizeChange = useCallback(() => {
|
|
265
281
|
if (!divRef.current || !multiline || !onContentSizeChange) {
|
|
266
282
|
return;
|
|
@@ -322,7 +338,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
322
338
|
newInputUpdate = redo(divRef.current);
|
|
323
339
|
break;
|
|
324
340
|
default:
|
|
325
|
-
newInputUpdate = parseText(divRef.current, parsedText, processedMarkdownStyle, newCursorPosition, true, !inputType);
|
|
341
|
+
newInputUpdate = parseText(divRef.current, parsedText, processedMarkdownStyle, newCursorPosition, true, !inputType, inputType === 'pasteText');
|
|
326
342
|
}
|
|
327
343
|
const {text, cursorPosition} = newInputUpdate;
|
|
328
344
|
updateTextColor(divRef.current, text);
|
|
@@ -456,6 +472,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
456
472
|
|
|
457
473
|
const handleFocus: FocusEventHandler<HTMLDivElement> = useCallback(
|
|
458
474
|
(event) => {
|
|
475
|
+
hasJustBeenFocused.current = true;
|
|
459
476
|
const e = event as unknown as NativeSyntheticEvent<TextInputFocusEventData>;
|
|
460
477
|
const hostNode = e.target as unknown as HTMLDivElement;
|
|
461
478
|
currentlyFocusedField.current = hostNode;
|
|
@@ -464,11 +481,17 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
464
481
|
if (contentSelection.current) {
|
|
465
482
|
setCursorPosition(divRef.current, contentSelection.current.start, contentSelection.current.end);
|
|
466
483
|
} else {
|
|
467
|
-
const valueLength = value ? value.length : divRef.current.value.length;
|
|
484
|
+
const valueLength = value ? value.length : (divRef.current.value || '').length;
|
|
468
485
|
setCursorPosition(divRef.current, valueLength, null);
|
|
469
486
|
}
|
|
470
487
|
}
|
|
471
488
|
|
|
489
|
+
if (divRef.current) {
|
|
490
|
+
divRef.current.scrollIntoView({
|
|
491
|
+
block: 'nearest',
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
|
|
472
495
|
if (onFocus) {
|
|
473
496
|
setEventProps(e);
|
|
474
497
|
onFocus(e);
|
|
@@ -612,7 +635,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
612
635
|
}
|
|
613
636
|
const normalizedValue = normalizeValue(value);
|
|
614
637
|
divRef.current.value = normalizedValue;
|
|
615
|
-
parseText(divRef.current, normalizedValue, processedMarkdownStyle);
|
|
638
|
+
parseText(divRef.current, normalizedValue, processedMarkdownStyle, null, true, false, true);
|
|
616
639
|
updateTextColor(divRef.current, value);
|
|
617
640
|
},
|
|
618
641
|
[multiline, processedMarkdownStyle, value],
|
|
@@ -656,6 +679,17 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
656
679
|
setCursorPosition(divRef.current, newSelection.start, newSelection.end);
|
|
657
680
|
}, [selection, updateRefSelectionVariables]);
|
|
658
681
|
|
|
682
|
+
useEffect(() => {
|
|
683
|
+
const handleReconnect = () => {
|
|
684
|
+
forceRefreshAllImages(divRef.current as MarkdownTextInputElement, processedMarkdownStyle);
|
|
685
|
+
};
|
|
686
|
+
|
|
687
|
+
window.addEventListener('online', handleReconnect);
|
|
688
|
+
return () => {
|
|
689
|
+
window.removeEventListener('online', handleReconnect);
|
|
690
|
+
};
|
|
691
|
+
}, [processedMarkdownStyle]);
|
|
692
|
+
|
|
659
693
|
return (
|
|
660
694
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
661
695
|
<div
|
|
@@ -685,7 +719,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
|
|
|
685
719
|
spellCheck={spellCheck}
|
|
686
720
|
dir={dir}
|
|
687
721
|
inputMode={inputMode}
|
|
688
|
-
onSelect={
|
|
722
|
+
onSelect={handleOnSelect}
|
|
689
723
|
onTouchStart={handleTouchStart}
|
|
690
724
|
/>
|
|
691
725
|
);
|
|
@@ -13,11 +13,94 @@ const inlineImageDefaultStyles = {
|
|
|
13
13
|
left: 0,
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
type DebouncePreviewItem = {
|
|
17
|
+
timeout: NodeJS.Timeout;
|
|
18
|
+
url: string;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const timeoutMap = new Map<string, DebouncePreviewItem>();
|
|
22
|
+
|
|
23
|
+
function getImagePreviewElement(targetElement: HTMLMarkdownElement) {
|
|
24
|
+
return Array.from(targetElement?.childNodes || []).find((el) => (el as HTMLElement)?.contentEditable === 'false') as HTMLMarkdownElement | undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function handleOnLoad(
|
|
28
|
+
currentInput: MarkdownTextInputElement,
|
|
29
|
+
target: HTMLMarkdownElement,
|
|
30
|
+
imageHref: string,
|
|
31
|
+
markdownStyle: PartialMarkdownStyle,
|
|
32
|
+
imageContainer: HTMLSpanElement,
|
|
33
|
+
err?: string | Event,
|
|
34
|
+
) {
|
|
35
|
+
let targetElement = target;
|
|
36
|
+
|
|
37
|
+
// Update the target element if the input structure was changed while the image was loading and its content hasn't changed
|
|
38
|
+
if (!targetElement.isConnected) {
|
|
39
|
+
const currentElement = currentInput.querySelector(`[data-type="block"][data-id="${target.getAttribute('data-id')}"]`) as HTMLMarkdownElement;
|
|
40
|
+
|
|
41
|
+
const currentElementURL = getImagePreviewElement(currentElement)?.getAttribute('data-url');
|
|
42
|
+
const targetElementURL = getImagePreviewElement(targetElement)?.getAttribute('data-url');
|
|
43
|
+
if (currentElementURL && targetElementURL && currentElementURL === targetElementURL) {
|
|
44
|
+
targetElement = currentElement;
|
|
45
|
+
} else {
|
|
46
|
+
return; // Prevent adding expired image previews to the input structure
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Verify if the current spinner is for the loaded image. If not, it means that the response came after the user changed the image url
|
|
51
|
+
const currentSpinner = currentInput.querySelector(`[data-type="spinner"][data-url="${imageHref}"]`);
|
|
52
|
+
|
|
53
|
+
// Remove the spinner
|
|
54
|
+
if (currentSpinner) {
|
|
55
|
+
currentSpinner.remove();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const img = imageContainer.firstChild as HTMLImageElement;
|
|
59
|
+
const {minHeight, minWidth, maxHeight, maxWidth, borderRadius} = markdownStyle.inlineImage || {};
|
|
60
|
+
const imgStyle = {
|
|
61
|
+
minHeight,
|
|
62
|
+
minWidth,
|
|
63
|
+
maxHeight,
|
|
64
|
+
maxWidth,
|
|
65
|
+
borderRadius,
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// Set the image styles
|
|
69
|
+
Object.assign(imageContainer.style, {
|
|
70
|
+
...inlineImageDefaultStyles,
|
|
71
|
+
...(err && {
|
|
72
|
+
...imgStyle,
|
|
73
|
+
display: 'flex',
|
|
74
|
+
alignItems: 'center',
|
|
75
|
+
justifyContent: 'center',
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
Object.assign(img.style, !err && imgStyle);
|
|
80
|
+
|
|
81
|
+
targetElement.appendChild(imageContainer);
|
|
17
82
|
|
|
18
|
-
|
|
83
|
+
const imageClientHeight = Math.max(img.clientHeight, imageContainer.clientHeight);
|
|
84
|
+
Object.assign(imageContainer.style, {
|
|
85
|
+
height: `${imageClientHeight}px`,
|
|
86
|
+
});
|
|
87
|
+
// Set paddingBottom to the height of the image so it's displayed under the block
|
|
88
|
+
const imageMarginTop = parseStringWithUnitToNumber(`${markdownStyle.inlineImage?.marginTop}`);
|
|
89
|
+
Object.assign(targetElement.style, {
|
|
90
|
+
paddingBottom: `${imageClientHeight + imageMarginTop}px`,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function createImageElement(currentInput: MarkdownTextInputElement, targetNode: TreeNode, url: string, markdownStyle: PartialMarkdownStyle) {
|
|
19
95
|
if (timeoutMap.has(targetNode.orderIndex)) {
|
|
20
|
-
|
|
96
|
+
const mapItem = timeoutMap.get(targetNode.orderIndex);
|
|
97
|
+
// Check if the image URL has been changed, if not, early return so the image can be loaded asynchronously
|
|
98
|
+
const currentElement = document.querySelector(`[data-type="block"][data-id="${targetNode.orderIndex}"]`) as HTMLMarkdownElement;
|
|
99
|
+
if (mapItem?.url === url && currentElement && getImagePreviewElement(currentElement)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
clearTimeout(mapItem?.timeout);
|
|
21
104
|
timeoutMap.delete(targetNode.orderIndex);
|
|
22
105
|
}
|
|
23
106
|
|
|
@@ -30,12 +113,15 @@ function createImageElement(targetNode: TreeNode, url: string, callback: (img: H
|
|
|
30
113
|
imageContainer.appendChild(img);
|
|
31
114
|
|
|
32
115
|
img.contentEditable = 'false';
|
|
33
|
-
img.onload = () =>
|
|
34
|
-
img.onerror = (err) =>
|
|
116
|
+
img.onload = () => handleOnLoad(currentInput, targetNode.element, url, markdownStyle, imageContainer);
|
|
117
|
+
img.onerror = (err) => handleOnLoad(currentInput, targetNode.element, url, markdownStyle, imageContainer, err);
|
|
35
118
|
img.src = url;
|
|
36
119
|
timeoutMap.delete(targetNode.orderIndex);
|
|
37
120
|
}, INLINE_IMAGE_PREVIEW_DEBOUNCE_TIME_MS);
|
|
38
|
-
timeoutMap.set(targetNode.orderIndex,
|
|
121
|
+
timeoutMap.set(targetNode.orderIndex, {
|
|
122
|
+
timeout,
|
|
123
|
+
url,
|
|
124
|
+
});
|
|
39
125
|
}
|
|
40
126
|
|
|
41
127
|
/** Adds already loaded image element from current input content to the tree node */
|
|
@@ -86,50 +172,25 @@ function addInlineImagePreview(currentInput: MarkdownTextInputElement, targetNod
|
|
|
86
172
|
paddingBottom: markdownStyle.loadingIndicatorContainer?.height || markdownStyle.loadingIndicator?.height || (!!markdownStyle.loadingIndicator && '30px') || undefined,
|
|
87
173
|
});
|
|
88
174
|
|
|
89
|
-
createImageElement(targetNode, imageHref,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
175
|
+
createImageElement(currentInput, targetNode, imageHref, markdownStyle);
|
|
176
|
+
|
|
177
|
+
return targetNode;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function forceRefreshAllImages(currentInput: MarkdownTextInputElement, markdownStyle: PartialMarkdownStyle) {
|
|
181
|
+
currentInput.querySelectorAll('img').forEach((img) => {
|
|
182
|
+
// force image reload only if broken image icon is displayed
|
|
183
|
+
if (img.naturalWidth > 0) {
|
|
184
|
+
return;
|
|
95
185
|
}
|
|
96
186
|
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
maxHeight,
|
|
103
|
-
maxWidth,
|
|
104
|
-
borderRadius,
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
// Set the image styles
|
|
108
|
-
Object.assign(imageContainer.style, {
|
|
109
|
-
...inlineImageDefaultStyles,
|
|
110
|
-
...(err && {
|
|
111
|
-
...imgStyle,
|
|
112
|
-
display: 'flex',
|
|
113
|
-
alignItems: 'center',
|
|
114
|
-
justifyContent: 'center',
|
|
115
|
-
}),
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
Object.assign(img.style, !err && imgStyle);
|
|
119
|
-
|
|
120
|
-
targetNode.element.appendChild(imageContainer);
|
|
121
|
-
|
|
122
|
-
Object.assign(imageContainer.style, {
|
|
123
|
-
height: `${imageContainer.clientHeight}px`,
|
|
124
|
-
});
|
|
125
|
-
// Set paddingBottom to the height of the image so it's displayed under the block
|
|
126
|
-
Object.assign(targetNode.element.style, {
|
|
127
|
-
paddingBottom: `${imageContainer.clientHeight + imageMarginTop}px`,
|
|
128
|
-
});
|
|
187
|
+
const url = img.src;
|
|
188
|
+
const imgElement = img;
|
|
189
|
+
imgElement.src = '';
|
|
190
|
+
imgElement.onload = () => handleOnLoad(currentInput, img.parentElement?.parentElement as HTMLMarkdownElement, url, markdownStyle, img.parentElement as HTMLMarkdownElement);
|
|
191
|
+
imgElement.src = `${url}#`;
|
|
129
192
|
});
|
|
130
|
-
|
|
131
|
-
return targetNode;
|
|
132
193
|
}
|
|
133
194
|
|
|
134
195
|
// eslint-disable-next-line import/prefer-default-export
|
|
135
|
-
export {addInlineImagePreview};
|
|
196
|
+
export {addInlineImagePreview, forceRefreshAllImages};
|
|
@@ -80,7 +80,7 @@ function addStyleToBlock(targetElement: HTMLElement, type: NodeType, markdownSty
|
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
const BLOCK_MARKDOWN_TYPES = ['inline-image'];
|
|
83
|
-
const FULL_LINE_MARKDOWN_TYPES = ['blockquote'
|
|
83
|
+
const FULL_LINE_MARKDOWN_TYPES = ['blockquote'];
|
|
84
84
|
|
|
85
85
|
function isBlockMarkdownType(type: NodeType) {
|
|
86
86
|
return BLOCK_MARKDOWN_TYPES.includes(type);
|
|
@@ -2,7 +2,7 @@ import type {MarkdownTextInputElement} from '../../MarkdownTextInput.web';
|
|
|
2
2
|
import {findHTMLElementInTree, getTreeNodeByIndex} from './treeUtils';
|
|
3
3
|
import type {TreeNode} from './treeUtils';
|
|
4
4
|
|
|
5
|
-
function setCursorPosition(target: MarkdownTextInputElement, startIndex: number, endIndex: number | null = null) {
|
|
5
|
+
function setCursorPosition(target: MarkdownTextInputElement, startIndex: number, endIndex: number | null = null, shouldScrollIntoView = false) {
|
|
6
6
|
// We don't want to move the cursor if the target is not focused
|
|
7
7
|
if (!target.tree || target !== document.activeElement) {
|
|
8
8
|
return;
|
|
@@ -45,16 +45,31 @@ function setCursorPosition(target: MarkdownTextInputElement, startIndex: number,
|
|
|
45
45
|
selection.setBaseAndExtent(range.startContainer, range.startOffset, range.endContainer, range.endOffset);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
if (shouldScrollIntoView) {
|
|
49
|
+
scrollIntoView(target, endTreeNode);
|
|
50
|
+
}
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
function scrollIntoView(node: TreeNode) {
|
|
53
|
+
function scrollIntoView(target: MarkdownTextInputElement, node: TreeNode) {
|
|
54
|
+
const targetElement = target;
|
|
52
55
|
if (node.type === 'br' && node.parentNode?.parentNode?.type === 'line') {
|
|
53
56
|
// If the node is a line break, scroll to the parent paragraph, because Safari doesn't support scrollIntoView on br elements
|
|
54
57
|
node.parentNode.parentNode.element.scrollIntoView({
|
|
55
58
|
block: 'nearest',
|
|
56
59
|
});
|
|
57
60
|
} else {
|
|
61
|
+
const selection = window.getSelection();
|
|
62
|
+
if (selection && selection.rangeCount > 0) {
|
|
63
|
+
const range = selection.getRangeAt(0);
|
|
64
|
+
const caretRect = range.getBoundingClientRect();
|
|
65
|
+
const targetRect = target.getBoundingClientRect();
|
|
66
|
+
|
|
67
|
+
// In case the caret is below the visible input area, scroll to the end of the node
|
|
68
|
+
if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
|
|
69
|
+
targetElement.scrollTop = caretRect.top + caretRect.height - targetRect.top - targetRect.height + target.scrollTop;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
58
73
|
node.element.scrollIntoView({
|
|
59
74
|
block: 'nearest',
|
|
60
75
|
});
|
|
@@ -266,7 +266,7 @@ function parseRangesToHTMLNodes(
|
|
|
266
266
|
return {dom: rootElement, tree: rootNode};
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
function moveCursor(isFocused: boolean, alwaysMoveCursorToTheEnd: boolean, cursorPosition: number | null, target: MarkdownTextInputElement) {
|
|
269
|
+
function moveCursor(isFocused: boolean, alwaysMoveCursorToTheEnd: boolean, cursorPosition: number | null, target: MarkdownTextInputElement, shouldScrollIntoView = false) {
|
|
270
270
|
if (!isFocused) {
|
|
271
271
|
return;
|
|
272
272
|
}
|
|
@@ -274,7 +274,7 @@ function moveCursor(isFocused: boolean, alwaysMoveCursorToTheEnd: boolean, curso
|
|
|
274
274
|
if (alwaysMoveCursorToTheEnd || cursorPosition === null) {
|
|
275
275
|
moveCursorToEnd(target);
|
|
276
276
|
} else if (cursorPosition !== null) {
|
|
277
|
-
setCursorPosition(target, cursorPosition);
|
|
277
|
+
setCursorPosition(target, cursorPosition, null, shouldScrollIntoView);
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
|
|
@@ -286,6 +286,7 @@ function updateInputStructure(
|
|
|
286
286
|
markdownStyle: PartialMarkdownStyle = {},
|
|
287
287
|
alwaysMoveCursorToTheEnd = false,
|
|
288
288
|
shouldForceDOMUpdate = false,
|
|
289
|
+
shouldScrollIntoView = false,
|
|
289
290
|
) {
|
|
290
291
|
const targetElement = target;
|
|
291
292
|
|
|
@@ -317,7 +318,7 @@ function updateInputStructure(
|
|
|
317
318
|
updateTreeElementRefs(tree, targetElement);
|
|
318
319
|
targetElement.tree = tree;
|
|
319
320
|
|
|
320
|
-
moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, targetElement);
|
|
321
|
+
moveCursor(isFocused, alwaysMoveCursorToTheEnd, cursorPosition, targetElement, shouldScrollIntoView);
|
|
321
322
|
}
|
|
322
323
|
|
|
323
324
|
return {text, cursorPosition: cursorPosition || 0};
|