@expensify/react-native-live-markdown 0.1.170 → 0.1.171

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.
@@ -51,29 +51,21 @@ function setCursorPosition(target, startIndex, endIndex = null, shouldScrollInto
51
51
  }
52
52
  }
53
53
  function scrollIntoView(target, node) {
54
- var _node$parentNode;
54
+ var _target$tree$childNod;
55
55
  const targetElement = target;
56
- if (node.type === 'br' && ((_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 || (_node$parentNode = _node$parentNode.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.type) === 'line') {
57
- // If the node is a line break, scroll to the parent paragraph, because Safari doesn't support scrollIntoView on br elements
58
- node.parentNode.parentNode.element.scrollIntoView({
59
- block: 'nearest'
60
- });
61
- } else {
62
- const selection = window.getSelection();
63
- if (selection && selection.rangeCount > 0) {
64
- const range = selection.getRangeAt(0);
65
- const caretRect = range.getBoundingClientRect();
66
- const targetRect = target.getBoundingClientRect();
67
-
68
- // In case the caret is below the visible input area, scroll to the end of the node
69
- if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
70
- targetElement.scrollTop = caretRect.top + caretRect.height - targetRect.top - targetRect.height + target.scrollTop;
71
- }
72
- }
73
- node.element.scrollIntoView({
74
- block: 'nearest'
75
- });
56
+ const orderIndex = Number(node.orderIndex.split(',')[0]);
57
+ const currentLine = (_target$tree$childNod = target.tree.childNodes[orderIndex]) === null || _target$tree$childNod === void 0 ? void 0 : _target$tree$childNod.element;
58
+ const scrollTargetElement = currentLine || node.element;
59
+ const caretRect = scrollTargetElement.getBoundingClientRect();
60
+ const targetRect = target.getBoundingClientRect();
61
+ // In case the caret is below the visible input area, scroll to the end of the node
62
+ if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
63
+ targetElement.scrollTop = caretRect.top - targetRect.top + target.scrollTop - targetRect.height + caretRect.height + 4;
64
+ return;
76
65
  }
66
+ scrollTargetElement.scrollIntoView({
67
+ block: 'nearest'
68
+ });
77
69
  }
78
70
  function moveCursorToEnd(target) {
79
71
  const range = document.createRange();
@@ -1 +1 @@
1
- {"version":3,"names":["_treeUtils","require","setCursorPosition","target","startIndex","endIndex","shouldScrollIntoView","tree","document","activeElement","start","Math","max","min","length","end","range","createRange","selectNodeContents","startTreeNode","getTreeNodeByIndex","endTreeNode","console","error","type","setStartBefore","element","startElement","setStart","childNodes","setEndBefore","endElement","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","findHTMLElementInTree","value","removeSelection","removeAllRanges"],"sourceRoot":"../../../../src","sources":["web/utils/cursorUtils.ts"],"mappings":";;;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAGA,SAASC,iBAAiBA,CAACC,MAAgC,EAAEC,UAAkB,EAAEC,QAAuB,GAAG,IAAI,EAAEC,oBAAoB,GAAG,KAAK,EAAE;EAC7I;EACA,IAAI,CAACH,MAAM,CAACI,IAAI,IAAIJ,MAAM,KAAKK,QAAQ,CAACC,aAAa,EAAE;IACrD;EACF;EAEA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACT,UAAU,EAAED,MAAM,CAACI,IAAI,CAACO,MAAM,CAAC,CAAC;EACnE,MAAMC,GAAG,GAAGV,QAAQ,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACR,QAAQ,EAAEF,MAAM,CAACI,IAAI,CAACO,MAAM,CAAC,CAAC,GAAG,IAAI;EACjF,IAAIC,GAAG,IAAIA,GAAG,GAAGL,KAAK,EAAE;IACtB;EACF;EAEA,MAAMM,KAAK,GAAGR,QAAQ,CAACS,WAAW,CAAC,CAAC;EACpCD,KAAK,CAACE,kBAAkB,CAACf,MAAM,CAAC;EAEhC,MAAMgB,aAAa,GAAG,IAAAC,6BAAkB,EAACjB,MAAM,CAACI,IAAI,EAAEG,KAAK,CAAC;EAC5D,MAAMW,WAAW,GAAGN,GAAG,IAAII,aAAa,KAAKJ,GAAG,GAAGI,aAAa,CAACT,KAAK,IAAIK,GAAG,IAAII,aAAa,CAACT,KAAK,GAAGS,aAAa,CAACL,MAAM,CAAC,GAAG,IAAAM,6BAAkB,EAACjB,MAAM,CAACI,IAAI,EAAEQ,GAAG,CAAC,GAAGI,aAAa;EACnL,IAAI,CAACA,aAAa,IAAI,CAACE,WAAW,EAAE;IAClCC,OAAO,CAACC,KAAK,CAAC,gCAAgC,CAAC;IAC/C;EACF;EAEA,IAAIJ,aAAa,CAACK,IAAI,KAAK,IAAI,EAAE;IAC/BR,KAAK,CAACS,cAAc,CAACN,aAAa,CAACO,OAAO,CAAC;EAC7C,CAAC,MAAM;IACL,MAAMC,YAAY,GAAGR,aAAa,CAACO,OAAO;IAC1CV,KAAK,CAACY,QAAQ,CAAED,YAAY,CAACE,UAAU,CAAC,CAAC,CAAC,IAAIF,YAAY,EAAgBjB,KAAK,GAAGS,aAAa,CAACT,KAAK,CAAC;EACxG;EAEA,IAAIW,WAAW,CAACG,IAAI,KAAK,IAAI,EAAE;IAC7BR,KAAK,CAACc,YAAY,CAACT,WAAW,CAACK,OAAO,CAAC;EACzC,CAAC,MAAM;IACL,MAAMK,UAAU,GAAGV,WAAW,CAACK,OAAO;IACtCV,KAAK,CAACgB,MAAM,CAAED,UAAU,CAACF,UAAU,CAAC,CAAC,CAAC,IAAIE,UAAU,EAAgB,CAAChB,GAAG,IAAIL,KAAK,IAAIW,WAAW,CAACX,KAAK,CAAC;EACzG;EAEA,IAAI,CAACK,GAAG,EAAE;IACRC,KAAK,CAACiB,QAAQ,CAAC,IAAI,CAAC;EACtB;EAEA,MAAMC,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAC;EACvC,IAAIF,SAAS,EAAE;IACbA,SAAS,CAACG,gBAAgB,CAACrB,KAAK,CAACsB,cAAc,EAAEtB,KAAK,CAACuB,WAAW,EAAEvB,KAAK,CAACwB,YAAY,EAAExB,KAAK,CAACyB,SAAS,CAAC;EAC1G;EAEA,IAAInC,oBAAoB,EAAE;IACxBoC,cAAc,CAACvC,MAAM,EAAEkB,WAAW,CAAC;EACrC;AACF;AAEA,SAASqB,cAAcA,CAACvC,MAAgC,EAAEwC,IAAc,EAAE;EAAA,IAAAC,gBAAA;EACxE,MAAMC,aAAa,GAAG1C,MAAM;EAC5B,IAAIwC,IAAI,CAACnB,IAAI,KAAK,IAAI,IAAI,EAAAoB,gBAAA,GAAAD,IAAI,CAACG,UAAU,cAAAF,gBAAA,gBAAAA,gBAAA,GAAfA,gBAAA,CAAiBE,UAAU,cAAAF,gBAAA,uBAA3BA,gBAAA,CAA6BpB,IAAI,MAAK,MAAM,EAAE;IACtE;IACAmB,IAAI,CAACG,UAAU,CAACA,UAAU,CAACpB,OAAO,CAACgB,cAAc,CAAC;MAChDK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,MAAMb,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAC;IACvC,IAAIF,SAAS,IAAIA,SAAS,CAACc,UAAU,GAAG,CAAC,EAAE;MACzC,MAAMhC,KAAK,GAAGkB,SAAS,CAACe,UAAU,CAAC,CAAC,CAAC;MACrC,MAAMC,SAAS,GAAGlC,KAAK,CAACmC,qBAAqB,CAAC,CAAC;MAC/C,MAAMC,UAAU,GAAGjD,MAAM,CAACgD,qBAAqB,CAAC,CAAC;;MAEjD;MACA,IAAID,SAAS,CAACG,GAAG,GAAGH,SAAS,CAACI,MAAM,GAAGF,UAAU,CAACC,GAAG,GAAGD,UAAU,CAACE,MAAM,EAAE;QACzET,aAAa,CAACU,SAAS,GAAGL,SAAS,CAACG,GAAG,GAAGH,SAAS,CAACI,MAAM,GAAGF,UAAU,CAACC,GAAG,GAAGD,UAAU,CAACE,MAAM,GAAGnD,MAAM,CAACoD,SAAS;MACpH;IACF;IAEAZ,IAAI,CAACjB,OAAO,CAACgB,cAAc,CAAC;MAC1BK,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;AACF;AAEA,SAASS,eAAeA,CAACrD,MAAmB,EAAE;EAC5C,MAAMa,KAAK,GAAGR,QAAQ,CAACS,WAAW,CAAC,CAAC;EACpC,MAAMiB,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAC;EACvC,IAAIF,SAAS,EAAE;IACblB,KAAK,CAACY,QAAQ,CAACzB,MAAM,EAAEA,MAAM,CAAC0B,UAAU,CAACf,MAAM,CAAC;IAChDE,KAAK,CAACiB,QAAQ,CAAC,IAAI,CAAC;IACpBC,SAAS,CAACG,gBAAgB,CAACrB,KAAK,CAACsB,cAAc,EAAEtB,KAAK,CAACuB,WAAW,EAAEvB,KAAK,CAACwB,YAAY,EAAExB,KAAK,CAACyB,SAAS,CAAC;EAC1G;AACF;AAEA,SAASgB,wBAAwBA,CAACtD,MAAgC,EAAE;EAClE,SAASuD,cAAcA,CAACf,IAAU,EAAE;IAClC,IAAIjB,OAAO,GAAGiB,IAA0B;IACxC,IAAIjB,OAAO,YAAYiC,IAAI,EAAE;MAC3BjC,OAAO,GAAGiB,IAAI,CAACiB,aAA4B;IAC7C;IACA,OAAOlC,OAAO;EAChB;EAEA,MAAMQ,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAC;EACvC,IAAI,CAACF,SAAS,IAAKA,SAAS,IAAIA,SAAS,CAACc,UAAU,KAAK,CAAE,EAAE;IAC3D,OAAO,IAAI;EACb;EACA,MAAMhC,KAAK,GAAGkB,SAAS,CAACe,UAAU,CAAC,CAAC,CAAC;EACrC,MAAMtB,YAAY,GAAG+B,cAAc,CAAC1C,KAAK,CAACsB,cAAc,CAAC;EACzD,MAAMP,UAAU,GAAGf,KAAK,CAACsB,cAAc,KAAKtB,KAAK,CAACwB,YAAY,GAAGb,YAAY,GAAG+B,cAAc,CAAC1C,KAAK,CAACwB,YAAY,CAAC;EAElH,MAAMrB,aAAa,GAAG,IAAA0C,gCAAqB,EAAC1D,MAAM,CAACI,IAAI,EAAEoB,YAAY,CAAC;EACtE,MAAMN,WAAW,GAAG,IAAAwC,gCAAqB,EAAC1D,MAAM,CAACI,IAAI,EAAEwB,UAAU,CAAC;EAElE,IAAIrB,KAAK,GAAG,CAAC,CAAC;EACd,IAAIK,GAAG,GAAG,CAAC,CAAC;EACZ,IAAII,aAAa,IAAIE,WAAW,EAAE;IAChCX,KAAK,GAAGS,aAAa,CAACT,KAAK,GAAGM,KAAK,CAACuB,WAAW;;IAE/C;IACA,IAAI,CAAAlB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEyB,UAAU,MAAK,IAAI,EAAE;MACpC/B,GAAG,GAAGZ,MAAM,CAAC2D,KAAK,CAAChD,MAAM;IAC3B,CAAC,MAAM;MACLC,GAAG,GAAGM,WAAW,CAACX,KAAK,GAAGM,KAAK,CAACyB,SAAS;IAC3C;EACF;EACA,OAAO;IAAC/B,KAAK;IAAEK;EAAG,CAAC;AACrB;AAEA,SAASgD,eAAeA,CAAA,EAAG;EACzB,MAAM7B,SAAS,GAAGC,MAAM,CAACC,YAAY,CAAC,CAAC;EACvC,IAAIF,SAAS,EAAE;IACbA,SAAS,CAAC8B,eAAe,CAAC,CAAC;EAC7B;AACF"}
1
+ {"version":3,"names":["_treeUtils","require","setCursorPosition","target","startIndex","endIndex","shouldScrollIntoView","tree","document","activeElement","start","Math","max","min","length","end","range","createRange","selectNodeContents","startTreeNode","getTreeNodeByIndex","endTreeNode","console","error","type","setStartBefore","element","startElement","setStart","childNodes","setEndBefore","endElement","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollIntoView","node","_target$tree$childNod","targetElement","orderIndex","Number","split","currentLine","scrollTargetElement","caretRect","getBoundingClientRect","targetRect","top","height","scrollTop","block","moveCursorToEnd","getCurrentCursorPosition","getHTMLElement","Text","parentElement","rangeCount","getRangeAt","findHTMLElementInTree","parentNode","value","removeSelection","removeAllRanges"],"sourceRoot":"../../../../src","sources":["web/utils/cursorUtils.ts"],"mappings":"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"}
@@ -41,29 +41,21 @@ function setCursorPosition(target, startIndex, endIndex = null, shouldScrollInto
41
41
  }
42
42
  }
43
43
  function scrollIntoView(target, node) {
44
- var _node$parentNode;
44
+ var _target$tree$childNod;
45
45
  const targetElement = target;
46
- if (node.type === 'br' && ((_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 || (_node$parentNode = _node$parentNode.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.type) === 'line') {
47
- // If the node is a line break, scroll to the parent paragraph, because Safari doesn't support scrollIntoView on br elements
48
- node.parentNode.parentNode.element.scrollIntoView({
49
- block: 'nearest'
50
- });
51
- } else {
52
- const selection = window.getSelection();
53
- if (selection && selection.rangeCount > 0) {
54
- const range = selection.getRangeAt(0);
55
- const caretRect = range.getBoundingClientRect();
56
- const targetRect = target.getBoundingClientRect();
57
-
58
- // In case the caret is below the visible input area, scroll to the end of the node
59
- if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
60
- targetElement.scrollTop = caretRect.top + caretRect.height - targetRect.top - targetRect.height + target.scrollTop;
61
- }
62
- }
63
- node.element.scrollIntoView({
64
- block: 'nearest'
65
- });
46
+ const orderIndex = Number(node.orderIndex.split(',')[0]);
47
+ const currentLine = (_target$tree$childNod = target.tree.childNodes[orderIndex]) === null || _target$tree$childNod === void 0 ? void 0 : _target$tree$childNod.element;
48
+ const scrollTargetElement = currentLine || node.element;
49
+ const caretRect = scrollTargetElement.getBoundingClientRect();
50
+ const targetRect = target.getBoundingClientRect();
51
+ // In case the caret is below the visible input area, scroll to the end of the node
52
+ if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
53
+ targetElement.scrollTop = caretRect.top - targetRect.top + target.scrollTop - targetRect.height + caretRect.height + 4;
54
+ return;
66
55
  }
56
+ scrollTargetElement.scrollIntoView({
57
+ block: 'nearest'
58
+ });
67
59
  }
68
60
  function moveCursorToEnd(target) {
69
61
  const range = document.createRange();
@@ -1 +1 @@
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","startElement","setStart","childNodes","setEndBefore","endElement","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","value","removeSelection","removeAllRanges"],"sourceRoot":"../../../../src","sources":["web/utils/cursorUtils.ts"],"mappings":"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"}
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","startElement","setStart","childNodes","setEndBefore","endElement","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollIntoView","node","_target$tree$childNod","targetElement","orderIndex","Number","split","currentLine","scrollTargetElement","caretRect","getBoundingClientRect","targetRect","top","height","scrollTop","block","moveCursorToEnd","getCurrentCursorPosition","getHTMLElement","Text","parentElement","rangeCount","getRangeAt","parentNode","value","removeSelection","removeAllRanges"],"sourceRoot":"../../../../src","sources":["web/utils/cursorUtils.ts"],"mappings":"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"}
@@ -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,EAAE,oBAAoB,UAAQ,QAgD5I;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"}
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,QAgD5I;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,QAiBvE;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-live-markdown",
3
- "version": "0.1.170",
3
+ "version": "0.1.171",
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",
@@ -54,28 +54,21 @@ function setCursorPosition(target: MarkdownTextInputElement, startIndex: number,
54
54
 
55
55
  function scrollIntoView(target: MarkdownTextInputElement, node: TreeNode) {
56
56
  const targetElement = target;
57
- if (node.type === 'br' && node.parentNode?.parentNode?.type === 'line') {
58
- // If the node is a line break, scroll to the parent paragraph, because Safari doesn't support scrollIntoView on br elements
59
- node.parentNode.parentNode.element.scrollIntoView({
60
- block: 'nearest',
61
- });
62
- } else {
63
- const selection = window.getSelection();
64
- if (selection && selection.rangeCount > 0) {
65
- const range = selection.getRangeAt(0);
66
- const caretRect = range.getBoundingClientRect();
67
- const targetRect = target.getBoundingClientRect();
68
-
69
- // In case the caret is below the visible input area, scroll to the end of the node
70
- if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
71
- targetElement.scrollTop = caretRect.top + caretRect.height - targetRect.top - targetRect.height + target.scrollTop;
72
- }
73
- }
74
-
75
- node.element.scrollIntoView({
76
- block: 'nearest',
77
- });
57
+ const orderIndex = Number(node.orderIndex.split(',')[0]);
58
+ const currentLine = target.tree.childNodes[orderIndex]?.element;
59
+ const scrollTargetElement = currentLine || node.element;
60
+
61
+ const caretRect = scrollTargetElement.getBoundingClientRect();
62
+ const targetRect = target.getBoundingClientRect();
63
+ // In case the caret is below the visible input area, scroll to the end of the node
64
+ if (caretRect.top + caretRect.height > targetRect.top + targetRect.height) {
65
+ targetElement.scrollTop = caretRect.top - targetRect.top + target.scrollTop - targetRect.height + caretRect.height + 4;
66
+ return;
78
67
  }
68
+
69
+ scrollTargetElement.scrollIntoView({
70
+ block: 'nearest',
71
+ });
79
72
  }
80
73
 
81
74
  function moveCursorToEnd(target: HTMLElement) {