@expensify/react-native-live-markdown 0.1.102 → 0.1.103

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.
@@ -180,19 +180,25 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
180
180
  }, disabled && styles.disabledInputStyles, createReactDOMStyle(preprocessStyle(flattenedStyle))]), [flattenedStyle, disabled]);
181
181
  const undo = (0, _react.useCallback)(target => {
182
182
  if (!history.current) {
183
- return '';
183
+ return {
184
+ text: '',
185
+ cursorPosition: 0
186
+ };
184
187
  }
185
188
  const item = history.current.undo();
186
189
  const undoValue = item ? denormalizeValue(item.text) : null;
187
- return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
190
+ return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
188
191
  }, [parseText, processedMarkdownStyle]);
189
192
  const redo = (0, _react.useCallback)(target => {
190
193
  if (!history.current) {
191
- return '';
194
+ return {
195
+ text: '',
196
+ cursorPosition: 0
197
+ };
192
198
  }
193
199
  const item = history.current.redo();
194
200
  const redoValue = item ? denormalizeValue(item.text) : null;
195
- return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
201
+ return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
196
202
  }, [parseText, processedMarkdownStyle]);
197
203
 
198
204
  // We have to process value property since contentEditable div adds one additional '\n' at the end of the text if we are entering new line
@@ -263,32 +269,43 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
263
269
  if (!divRef.current || !(e.target instanceof HTMLElement)) {
264
270
  return;
265
271
  }
272
+ const prevSelection = contentSelection.current ?? {
273
+ start: 0,
274
+ end: 0
275
+ };
276
+ const prevTextLength = CursorUtils.getPrevTextLength() ?? 0;
266
277
  const changedText = e.target.innerText;
267
278
  if (compositionRef.current && !BrowserUtils.isMobile) {
268
279
  updateTextColor(divRef.current, changedText);
269
280
  compositionRef.current = false;
270
281
  return;
271
282
  }
272
- let text = '';
283
+ let newInputUpdate;
273
284
  const nativeEvent = e.nativeEvent;
274
- switch (nativeEvent.inputType) {
285
+ const inputType = nativeEvent.inputType;
286
+ switch (inputType) {
275
287
  case 'historyUndo':
276
- text = undo(divRef.current);
288
+ newInputUpdate = undo(divRef.current);
277
289
  break;
278
290
  case 'historyRedo':
279
- text = redo(divRef.current);
291
+ newInputUpdate = redo(divRef.current);
280
292
  break;
281
293
  case 'insertFromPaste':
282
294
  // if there is no newline at the end of the copied text, contentEditable adds invisible <br> tag at the end of the text, so we need to normalize it
283
295
  if (changedText.length > 2 && changedText[changedText.length - 2] !== '\n' && changedText[changedText.length - 1] === '\n') {
284
- text = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle).text;
296
+ newInputUpdate = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle);
285
297
  break;
286
298
  }
287
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
299
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
288
300
  break;
289
301
  default:
290
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
302
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
291
303
  }
304
+ const {
305
+ text,
306
+ cursorPosition
307
+ } = newInputUpdate;
308
+ const normalizedText = normalizeValue(text);
292
309
  if (pasteRef !== null && pasteRef !== void 0 && pasteRef.current) {
293
310
  pasteRef.current = false;
294
311
  updateSelection(e);
@@ -297,10 +314,33 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
297
314
  if (onChange) {
298
315
  const event = e;
299
316
  setEventProps(event);
317
+
318
+ // The new text is between the prev start selection and the new end selection, can be empty
319
+ const addedText = normalizedText.slice(prevSelection.start, cursorPosition ?? 0);
320
+ // The length of the text that replaced the before text
321
+ const count = addedText.length;
322
+ // The start index of the replacement operation
323
+ let start = prevSelection.start;
324
+ const prevSelectionRange = prevSelection.end - prevSelection.start;
325
+ // The length the deleted text had before
326
+ let before = prevSelectionRange;
327
+ if (prevSelectionRange === 0 && (inputType === 'deleteContentBackward' || inputType === 'deleteContentForward')) {
328
+ // its possible the user pressed a delete key without a selection range, so we need to adjust the before value to have the length of the deleted text
329
+ before = prevTextLength - normalizedText.length;
330
+ }
331
+ if (inputType === 'deleteContentBackward') {
332
+ // When the user does a backspace delete he expects the content before the cursor to be removed.
333
+ // For this the start value needs to be adjusted (its as if the selection was before the text that we want to delete)
334
+ start -= before;
335
+ }
336
+ event.nativeEvent.count = count;
337
+ event.nativeEvent.before = before;
338
+ event.nativeEvent.start = start;
339
+
340
+ // @ts-expect-error TODO: Remove once react native PR merged https://github.com/facebook/react-native/pull/45248
300
341
  onChange(event);
301
342
  }
302
343
  if (onChangeText) {
303
- const normalizedText = normalizeValue(text);
304
344
  onChangeText(normalizedText);
305
345
  }
306
346
  handleContentSizeChange();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","ParseUtils","CursorUtils","StyleUtils","BrowserUtils","_InputHistory","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useClientEffect","window","useEffect","useLayoutEffect","createReactDOMStyle","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","denormalizeValue","endsWith","isEventComposing","nativeEvent","isComposing","keyCode","ZERO_WIDTH_SPACE","getPlaceholderValue","placeholder","length","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","keys","forEach","key","prop","processMarkdownStyle","mergeMarkdownStyleWithDefault","getElementHeight","node","styles","numberOfLines","tempElement","document","createElement","setAttribute","assign","style","innerText","Array","fill","join","parentElement","appendChild","height","clientHeight","removeChild","MarkdownTextInput","React","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","onContentSizeChange","id","ref","compositionRef","useRef","pasteRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","current","InputHistory","flattenedStyle","useMemo","StyleSheet","flatten","heightSafePlaceholder","setEventProps","useCallback","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","processedValue","updateTextColor","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","getCurrentCursorPosition","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","width","contentSize","handleOnChangeText","HTMLElement","changedText","isMobile","inputType","normalizedText","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","scrollCursorIntoView","setTimeout","blur","handleFocus","setCursorPosition","valueLength","clearTimeout","handleBlur","removeSelection","handleClick","handlePaste","clipboardData","getData","startComposition","setRef","currentRef","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onPaste","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor","_default","exports"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,UAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAN,uBAAA,CAAAC,OAAA;AAEAA,OAAA;AACA,IAAAM,aAAA,GAAAC,sBAAA,CAAAP,OAAA;AAA8C,SAAAO,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AArB9C;;AAuBAlB,OAAO,CAAC,gDAAgD,CAAC;AAEzD,MAAM8B,eAAe,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGC,gBAAS,GAAGC,sBAAe;AAEnF,IAAIC,mBAAwC;AAC5C,IAAI;EACFA,mBAAmB;EACjB;EACAlC,OAAO,CAAC,uEAAuE,CAAC,CAACU,OAAO;AAC5F,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,kKAAkK,CAAC;AACrL;AAEA,IAAIC,eAAoC;AACxC,IAAI;EACFA,eAAe;EACb;EACApC,OAAO,CAAC,qDAAqD,CAAC,CAACU,OAAO;AAC1E,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,0FAA0F,CAAC;AAC7G;AAEA,IAAIE,mBAAiF;AACrF,IAAI;EACFA,mBAAmB;EACjB;EACArC,OAAO,CAAC,qEAAqE,CAAC,CAACU,OAAO;AAC1F,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,8FAA8F,CAAC;AACjH;AAyBA,IAAIG,YAAmC,GAAG,IAAI;;AAE9C;AACA,SAASC,cAAcA,CAACC,KAAa,EAAE;EACrC,OAAOA,KAAK,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjC;AACA;AACA,SAASC,gBAAgBA,CAACF,KAAa,EAAE;EACvC,OAAOA,KAAK,CAACG,QAAQ,CAAC,IAAI,CAAC,GAAI,GAAEH,KAAM,IAAG,GAAGA,KAAK;AACpD;;AAEA;AACA;AACA,SAASI,gBAAgBA,CAACC,WAAqC,EAAE;EAC/D,OAAOA,WAAW,CAACC,WAAW,IAAID,WAAW,CAACE,OAAO,KAAK,GAAG;AAC/D;AAEA,MAAMC,gBAAgB,GAAG,QAAQ;AAEjC,SAASC,mBAAmBA,CAACC,WAA+B,EAAE;EAC5D,IAAI,CAACA,WAAW,EAAE;IAChB,OAAOF,gBAAgB;EACzB;EACA,OAAOE,WAAW,CAACC,MAAM,GAAGD,WAAW,GAAGF,gBAAgB;AAC5D;AAEA,SAASI,2BAA2BA,CAACC,KAAoB,EAAiB;EACxE,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACJ,KAAK,CAAC,CAAC;EAEhDhC,MAAM,CAACqC,IAAI,CAACJ,MAAM,CAAC,CAACK,OAAO,CAAEC,GAAG,IAAK;IACnC,MAAMpD,GAAG,GAAG8C,MAAM,CAACM,GAAG,CAAC;IACvBvC,MAAM,CAACqC,IAAI,CAAClD,GAAG,CAAC,CAACmD,OAAO,CAAEE,IAAI,IAAK;MACjCrD,GAAG,CAACqD,IAAI,CAAC,GAAGxB,mBAAmB,CAACwB,IAAI,EAAErD,GAAG,CAACqD,IAAI,CAAC,EAAE,KAAK,CAAC;IACzD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOP,MAAM;AACf;AAEA,SAASQ,oBAAoBA,CAACT,KAAgC,EAAiB;EAC7E,OAAOD,2BAA2B,CAAChD,UAAU,CAAC2D,6BAA6B,CAACV,KAAK,CAAC,CAAC;AACrF;AAEA,SAASW,gBAAgBA,CAACC,IAAoB,EAAEC,MAAqB,EAAEC,aAAiC,EAAE;EACxG,IAAIA,aAAa,EAAE;IACjB,MAAMC,WAAW,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IACjDF,WAAW,CAACG,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnDlD,MAAM,CAACmD,MAAM,CAACJ,WAAW,CAACK,KAAK,EAAEP,MAAM,CAAC;IACxCE,WAAW,CAACM,SAAS,GAAGC,KAAK,CAACR,aAAa,CAAC,CAACS,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACjE,IAAIZ,IAAI,CAACa,aAAa,EAAE;MACtBb,IAAI,CAACa,aAAa,CAACC,WAAW,CAACX,WAAW,CAAC;MAC3C,MAAMY,MAAM,GAAGZ,WAAW,CAACa,YAAY;MACvChB,IAAI,CAACa,aAAa,CAACI,WAAW,CAACd,WAAW,CAAC;MAC3C,OAAOY,MAAM,GAAI,GAAEA,MAAO,IAAG,GAAG,MAAM;IACxC;EACF;EACA,OAAOd,MAAM,CAACc,MAAM,GAAI,GAAEd,MAAM,CAACc,MAAO,IAAG,GAAG,MAAM;AACtD;AAEA,MAAMG,iBAAiB,gBAAGC,cAAK,CAACC,UAAU,CACxC,CACE;EACEC,kBAAkB;EAClBC,uBAAuB;EACvBC,iBAAiB;EACjBC,cAAc,GAAG,WAAW;EAC5BC,WAAW,GAAG,IAAI;EAClBC,YAAY,GAAG,KAAK;EACpBC,gBAAgB;EAChBC,GAAG,GAAG,MAAM;EACZC,QAAQ,GAAG,KAAK;EAChB3B,aAAa;EACb4B,SAAS,GAAG,KAAK;EACjBC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,YAAY;EACZC,OAAO;EACPC,OAAO;EACPC,UAAU;EACVC,iBAAiB;EACjBC,eAAe;EACftD,WAAW;EACXuD,oBAAoB,GAAI,iBAAgB;EACxCC,iBAAiB;EACjBC,UAAU;EACVC,SAAS;EACTnC,KAAK,GAAG,CAAC,CAAC;EACVjC,KAAK;EACLqE,SAAS,GAAG,KAAK;EACjBC,mBAAmB;EACnBC;AACF,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAU,KAAK,CAAC;EAC7C,MAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAU,KAAK,CAAC;EACvC,MAAME,MAAM,GAAG,IAAAF,aAAM,EAAwB,IAAI,CAAC;EAClD,MAAMG,qBAAqB,GAAG,IAAAH,aAAM,EAAwB,IAAI,CAAC;EACjE,MAAMI,gBAAgB,GAAG,IAAAJ,aAAM,EAAmB,IAAI,CAAC;EACvD,MAAMK,SAAS,GAAI,oCAAmCxB,SAAS,GAAG,WAAW,GAAG,YAAa,EAAC;EAC9F,MAAMyB,OAAO,GAAG,IAAAN,aAAM,EAAe,CAAC;EACtC,MAAMO,UAAU,GAAGrC,cAAK,CAAC8B,MAAM,CAAoB,IAAI,CAAC;EAExD,IAAI,CAACM,OAAO,CAACE,OAAO,EAAE;IACpBF,OAAO,CAACE,OAAO,GAAG,IAAIC,qBAAY,CAAC,GAAG,EAAE,GAAG,EAAEnF,KAAK,IAAI,EAAE,CAAC;EAC3D;EAEA,MAAMoF,cAAc,GAAG,IAAAC,cAAO,EAAC,MAAMC,uBAAU,CAACC,OAAO,CAACtD,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAExE;EACA,MAAMuD,qBAAqB,GAAG,IAAAH,cAAO,EAAC,MAAM5E,mBAAmB,CAACC,WAAW,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAE5F,MAAM+E,aAAa,GAAG,IAAAC,kBAAW,EAAEtH,CAA4B,IAAK;IAClE,IAAIwG,MAAM,CAACM,OAAO,EAAE;MAClB,MAAMS,IAAI,GAAG5F,cAAc,CAAC6E,MAAM,CAACM,OAAO,CAAChD,SAAS,IAAI,EAAE,CAAC;MAC3D,IAAI9D,CAAC,CAACwH,MAAM,EAAE;QACZ;QACCxH,CAAC,CAACwH,MAAM,CAAiC5F,KAAK,GAAG2F,IAAI;MACxD;MACA,IAAIvH,CAAC,CAACiC,WAAW,IAAIjC,CAAC,CAACiC,WAAW,CAACsF,IAAI,EAAE;QACvCvH,CAAC,CAACiC,WAAW,CAACsF,IAAI,GAAGA,IAAI;MAC3B;IACF;IACA,OAAOvH,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMyH,SAAS,GAAG,IAAAH,kBAAW,EAC3B,CAACE,MAAsB,EAAED,IAAmB,EAAEG,oBAAmC,EAAEC,cAA6B,GAAG,IAAI,EAAEC,kBAAkB,GAAG,IAAI,KAAK;IACrJ,IAAIL,IAAI,KAAK,IAAI,EAAE;MACjB,OAAO;QAACA,IAAI,EAAEC,MAAM,CAAC1D,SAAS;QAAE6D,cAAc,EAAE;MAAI,CAAC;IACvD;IACA,MAAME,UAAU,GAAGvI,UAAU,CAACmI,SAAS,CAACD,MAAM,EAAED,IAAI,EAAEI,cAAc,EAAED,oBAAoB,EAAE,CAACvC,SAAS,CAAC;IACvG,IAAIyB,OAAO,CAACE,OAAO,IAAIc,kBAAkB,EAAE;MACzC;MACAhB,OAAO,CAACE,OAAO,CAACgB,YAAY,CAACnG,cAAc,CAACkG,UAAU,CAACN,IAAI,CAAC,EAAEM,UAAU,CAACF,cAAc,CAAC;IAC1F;IAEA,OAAOE,UAAU;EACnB,CAAC,EACD,CAAC1C,SAAS,CACZ,CAAC;EAED,MAAM4C,sBAAsB,GAAG,IAAAd,cAAO,EAAC,MAAM;IAC3C,MAAMe,gBAAgB,GAAG9E,oBAAoB,CAACkC,aAAa,CAAC;IAC5D,IAAIoB,MAAM,CAACM,OAAO,EAAE;MAClBW,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAEN,MAAM,CAACM,OAAO,CAAChD,SAAS,EAAEkE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC;IACpF;IACA,OAAOA,gBAAgB;EACzB,CAAC,EAAE,CAAC5C,aAAa,EAAEqC,SAAS,CAAC,CAAC;EAE9B,MAAMQ,WAAW,GAAG,IAAAhB,cAAO,EACzB,MACEC,uBAAU,CAACC,OAAO,CAAC,CACjB7D,MAAM,CAAC4E,kBAAkB,EACzBlB,cAAc,IAAI;IAChBmB,UAAU,EAAGnB,cAAc,CAAeoB,KAAK,IAAI;EACrD,CAAC,EACDlD,QAAQ,IAAI5B,MAAM,CAAC+E,mBAAmB,EACtC/G,mBAAmB,CAACE,eAAe,CAACwF,cAAc,CAAC,CAAC,CACrD,CAAkB,EACrB,CAACA,cAAc,EAAE9B,QAAQ,CAC3B,CAAC;EAED,MAAMoD,IAAI,GAAG,IAAAhB,kBAAW,EACrBE,MAAsB,IAAK;IAC1B,IAAI,CAACZ,OAAO,CAACE,OAAO,EAAE;MACpB,OAAO,EAAE;IACX;IACA,MAAMyB,IAAI,GAAG3B,OAAO,CAACE,OAAO,CAACwB,IAAI,CAAC,CAAC;IACnC,MAAME,SAAS,GAAGD,IAAI,GAAGzG,gBAAgB,CAACyG,IAAI,CAAChB,IAAI,CAAC,GAAG,IAAI;IAC3D,OAAOE,SAAS,CAACD,MAAM,EAAEgB,SAAS,EAAET,sBAAsB,EAAEQ,IAAI,GAAGA,IAAI,CAACZ,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC,CAACJ,IAAI;EAC5G,CAAC,EACD,CAACE,SAAS,EAAEM,sBAAsB,CACpC,CAAC;EAED,MAAMU,IAAI,GAAG,IAAAnB,kBAAW,EACrBE,MAAsB,IAAK;IAC1B,IAAI,CAACZ,OAAO,CAACE,OAAO,EAAE;MACpB,OAAO,EAAE;IACX;IACA,MAAMyB,IAAI,GAAG3B,OAAO,CAACE,OAAO,CAAC2B,IAAI,CAAC,CAAC;IACnC,MAAMC,SAAS,GAAGH,IAAI,GAAGzG,gBAAgB,CAACyG,IAAI,CAAChB,IAAI,CAAC,GAAG,IAAI;IAC3D,OAAOE,SAAS,CAACD,MAAM,EAAEkB,SAAS,EAAEX,sBAAsB,EAAEQ,IAAI,GAAGA,IAAI,CAACZ,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC,CAACJ,IAAI;EAC5G,CAAC,EACD,CAACE,SAAS,EAAEM,sBAAsB,CACpC,CAAC;;EAED;EACA,MAAMY,cAAc,GAAG,IAAA1B,cAAO,EAAC,MAAM;IACnC,IAAIrF,KAAK,IAAIA,KAAK,CAACA,KAAK,CAACW,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;MAC7C,OAAQ,GAAEX,KAAM,IAAG;IACrB;IACA,OAAOA,KAAK;EACd,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAEX;EACA,MAAMgH,eAAe,GAAG,IAAAtB,kBAAW,EACjC,CAACjE,IAAoB,EAAEkE,IAAY,KAAK;IACtC;IACAlE,IAAI,CAACQ,KAAK,CAACuE,KAAK,GAAGS,MAAM,CAACvG,WAAW,KAAKiF,IAAI,KAAK,EAAE,IAAIA,IAAI,KAAK,IAAI,CAAC,GAAG1B,oBAAoB,GAAGmB,cAAc,CAACoB,KAAK,IAAI,OAAO,CAAC;EACnI,CAAC,EACD,CAACpB,cAAc,CAACoB,KAAK,EAAE9F,WAAW,EAAEuD,oBAAoB,CAC1D,CAAC;EAED,MAAMiD,qBAAwD,GAAG,IAAAxB,kBAAW,EACzEyB,KAAK,IAAK;IACT,MAAM/I,CAAC,GAAG+I,KAA2E;IACrF1B,aAAa,CAACrH,CAAC,CAAC;IAChB,IAAI2F,iBAAiB,IAAIe,gBAAgB,CAACI,OAAO,EAAE;MACjD9G,CAAC,CAACiC,WAAW,CAAC+D,SAAS,GAAGU,gBAAgB,CAACI,OAAO;MAClDnB,iBAAiB,CAAC3F,CAAC,CAAC;IACtB;EACF,CAAC,EACD,CAAC2F,iBAAiB,EAAE0B,aAAa,CACnC,CAAC;EAED,MAAM2B,2BAA2B,GAAG,IAAA1B,kBAAW,EAAE2B,YAAuB,IAAK;IAC3E,MAAM;MAACC,KAAK;MAAEC;IAAG,CAAC,GAAGF,YAAY;IACjC,MAAMG,iBAAiB,GAAG5C,MAAM,CAACM,OAA2B;IAC5DsC,iBAAiB,CAACC,cAAc,GAAGH,KAAK;IACxCE,iBAAiB,CAACE,YAAY,GAAGH,GAAG;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,eAAe,GAAG,IAAAjC,kBAAW,EACjC,CAACtH,CAAwC,GAAG,IAAI,EAAEwJ,mBAAqC,GAAG,IAAI,KAAK;IACjG,IAAI,CAAChD,MAAM,CAACM,OAAO,EAAE;MACnB;IACF;IACA,MAAMmC,YAAY,GAAGO,mBAAmB,IAAIjK,WAAW,CAACkK,wBAAwB,CAACjD,MAAM,CAACM,OAAO,CAAC;IAEhG,IAAImC,YAAY,KAAK,CAACvC,gBAAgB,CAACI,OAAO,IAAIJ,gBAAgB,CAACI,OAAO,CAACoC,KAAK,KAAKD,YAAY,CAACC,KAAK,IAAIxC,gBAAgB,CAACI,OAAO,CAACqC,GAAG,KAAKF,YAAY,CAACE,GAAG,CAAC,EAAE;MAC7JH,2BAA2B,CAACC,YAAY,CAAC;MACzCvC,gBAAgB,CAACI,OAAO,GAAGmC,YAAY;MAEvC,IAAIjJ,CAAC,EAAE;QACL8I,qBAAqB,CAAC9I,CAAC,CAAC;MAC1B;IACF;EACF,CAAC,EACD,CAAC8I,qBAAqB,EAAEE,2BAA2B,CACrD,CAAC;EAED,MAAMU,uBAAuB,GAAG,IAAApC,kBAAW,EAAC,MAAM;IAAA,IAAAqC,mBAAA;IAChD,IAAI,CAACnD,MAAM,CAACM,OAAO,IAAI,CAAC3B,SAAS,IAAI,CAACe,mBAAmB,EAAE;MACzD;IACF;IAEA,MAAM;MAAC0D,WAAW,EAAEC,QAAQ;MAAEC,YAAY,EAAEC;IAAS,CAAC,GAAGvD,MAAM,CAACM,OAAO;IAEvE,IAAIiD,SAAS,OAAAJ,mBAAA,GAAK9C,UAAU,CAACC,OAAO,cAAA6C,mBAAA,uBAAlBA,mBAAA,CAAoBvF,MAAM,KAAIyF,QAAQ,KAAKhD,UAAU,CAACC,OAAO,CAACkD,KAAK,EAAE;MACrFnD,UAAU,CAACC,OAAO,GAAG;QAAC1C,MAAM,EAAE2F,SAAS;QAAEC,KAAK,EAAEH;MAAQ,CAAC;MAEzD3D,mBAAmB,CAAC;QAClBjE,WAAW,EAAE;UACXgI,WAAW,EAAEpD,UAAU,CAACC;QAC1B;MACF,CAA8D,CAAC;IACjE;EACF,CAAC,EAAE,CAAC3B,SAAS,EAAEe,mBAAmB,CAAC,CAAC;EAEpC,MAAMgE,kBAAkB,GAAG,IAAA5C,kBAAW,EACnCtH,CAAiC,IAAK;IACrC,IAAI,CAACwG,MAAM,CAACM,OAAO,IAAI,EAAE9G,CAAC,CAACwH,MAAM,YAAY2C,WAAW,CAAC,EAAE;MACzD;IACF;IACA,MAAMC,WAAW,GAAGpK,CAAC,CAACwH,MAAM,CAAC1D,SAAS;IACtC,IAAIuC,cAAc,CAACS,OAAO,IAAI,CAACrH,YAAY,CAAC4K,QAAQ,EAAE;MACpDzB,eAAe,CAACpC,MAAM,CAACM,OAAO,EAAEsD,WAAW,CAAC;MAC5C/D,cAAc,CAACS,OAAO,GAAG,KAAK;MAC9B;IACF;IAEA,IAAIS,IAAI,GAAG,EAAE;IACb,MAAMtF,WAAW,GAAGjC,CAAC,CAACiC,WAAkC;IACxD,QAAQA,WAAW,CAACqI,SAAS;MAC3B,KAAK,aAAa;QAChB/C,IAAI,GAAGe,IAAI,CAAC9B,MAAM,CAACM,OAAO,CAAC;QAC3B;MACF,KAAK,aAAa;QAChBS,IAAI,GAAGkB,IAAI,CAACjC,MAAM,CAACM,OAAO,CAAC;QAC3B;MACF,KAAK,iBAAiB;QACpB;QACA,IAAIsD,WAAW,CAAC7H,MAAM,GAAG,CAAC,IAAI6H,WAAW,CAACA,WAAW,CAAC7H,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI6H,WAAW,CAACA,WAAW,CAAC7H,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;UAC1HgF,IAAI,GAAGE,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAEnF,cAAc,CAACyI,WAAW,CAAC,EAAErC,sBAAsB,CAAC,CAACR,IAAI;UAC1F;QACF;QACAA,IAAI,GAAGE,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAEsD,WAAW,EAAErC,sBAAsB,CAAC,CAACR,IAAI;QAC1E;MACF;QACEA,IAAI,GAAGE,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAEsD,WAAW,EAAErC,sBAAsB,CAAC,CAACR,IAAI;IAC9E;IAEA,IAAIhB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEO,OAAO,EAAE;MACrBP,QAAQ,CAACO,OAAO,GAAG,KAAK;MACxByC,eAAe,CAACvJ,CAAC,CAAC;IACpB;IACA4I,eAAe,CAACpC,MAAM,CAACM,OAAO,EAAES,IAAI,CAAC;IAErC,IAAIjC,QAAQ,EAAE;MACZ,MAAMyD,KAAK,GAAG/I,CAAyC;MACvDqH,aAAa,CAAC0B,KAAK,CAAC;MACpBzD,QAAQ,CAACyD,KAAK,CAAC;IACjB;IAEA,IAAIxD,YAAY,EAAE;MAChB,MAAMgF,cAAc,GAAG5I,cAAc,CAAC4F,IAAI,CAAC;MAC3ChC,YAAY,CAACgF,cAAc,CAAC;IAC9B;IAEAb,uBAAuB,CAAC,CAAC;EAC3B,CAAC,EACD,CAACd,eAAe,EAAEc,uBAAuB,EAAEpE,QAAQ,EAAEC,YAAY,EAAE+C,IAAI,EAAEG,IAAI,EAAEhB,SAAS,EAAEM,sBAAsB,EAAEwB,eAAe,EAAElC,aAAa,CAClJ,CAAC;EAED,MAAMmD,cAAc,GAAG,IAAAlD,kBAAW,EAC/BtH,CAAgC,IAAK;IACpC,IAAI,CAACwG,MAAM,CAACM,OAAO,EAAE;MACnB;IACF;IAEA,MAAM2D,QAAQ,GAAGzK,CAAC,CAACwH,MAAM;IACzBxH,CAAC,CAAC0K,eAAe,CAAC,CAAC;IAEnB,IAAI1K,CAAC,CAACgD,GAAG,KAAK,GAAG,IAAIhD,CAAC,CAAC2K,OAAO,EAAE;MAC9B3K,CAAC,CAAC4K,cAAc,CAAC,CAAC;MAClB,MAAM3I,WAAW,GAAGjC,CAAC,CAACiC,WAA6C;MACnE,IAAIjC,CAAC,CAAC6K,QAAQ,EAAE;QACd5I,WAAW,CAACqI,SAAS,GAAG,aAAa;MACvC,CAAC,MAAM;QACLrI,WAAW,CAACqI,SAAS,GAAG,aAAa;MACvC;MAEAJ,kBAAkB,CAAClK,CAAC,CAAC;MACrB;IACF;IAEA,MAAM8K,mBAAmB,GAAG,CAAC3F,SAAS;IACtC,MAAM4F,kBAAkB,GAAGhG,YAAY,KAAK,IAAI,GAAG+F,mBAAmB,GAAG/F,YAAY;IAErF,MAAM9C,WAAW,GAAGjC,CAAC,CAACiC,WAAW;IACjC,MAAMC,WAAW,GAAGF,gBAAgB,CAACC,WAAW,CAAC;IAEjD,MAAM8G,KAAK,GAAG/I,CAAgE;IAC9EqH,aAAa,CAAC0B,KAAK,CAAC;IACpB,IAAIrD,UAAU,EAAE;MACdA,UAAU,CAACqD,KAAK,CAAC;IACnB;IAEAQ,eAAe,CAACR,KAAyD,CAAC;IAE1E,IACE/I,CAAC,CAACgD,GAAG,KAAK,OAAO;IACjB;IACA,CAACd,WAAW,IACZ,CAAClC,CAAC,CAACgL,kBAAkB,CAAC,CAAC,EACvB;MACA;MACAhL,CAAC,CAAC4K,cAAc,CAAC,CAAC;MAClB,IAAI,CAAC5K,CAAC,CAAC6K,QAAQ,KAAK9F,YAAY,IAAI,CAACI,SAAS,CAAC,IAAIS,eAAe,EAAE;QAClEA,eAAe,CAACmD,KAAyE,CAAC;MAC5F,CAAC,MAAM,IAAI5D,SAAS,EAAE;QACpB;QACA;QACA1B,QAAQ,CAACwH,WAAW,CAAC,iBAAiB,CAAC;QACvC1L,WAAW,CAAC2L,oBAAoB,CAAC1E,MAAM,CAACM,OAA2B,CAAC;MACtE;MAEA,IAAI,CAAC9G,CAAC,CAAC6K,QAAQ,KAAME,kBAAkB,IAAIN,QAAQ,KAAK,IAAI,IAAK,CAACtF,SAAS,CAAC,EAAE;QAC5EgG,UAAU,CAAC,MAAM3E,MAAM,CAACM,OAAO,IAAIN,MAAM,CAACM,OAAO,CAACsE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MAC9D;IACF;EACF,CAAC,EACD,CAACjG,SAAS,EAAEJ,YAAY,EAAEsC,aAAa,EAAE3B,UAAU,EAAE6D,eAAe,EAAEW,kBAAkB,EAAEtE,eAAe,CAC3G,CAAC;EAED,MAAMyF,WAA8C,GAAG,IAAA/D,kBAAW,EAC/DyB,KAAK,IAAK;IACT,MAAM/I,CAAC,GAAG+I,KAAiE;IAC3E,MAAM0B,QAAQ,GAAGzK,CAAC,CAACwH,MAAmC;IACtDf,qBAAqB,CAACK,OAAO,GAAG2D,QAAQ;IACxCpD,aAAa,CAACrH,CAAC,CAAC;IAChB,IAAIwG,MAAM,CAACM,OAAO,EAAE;MAClB,IAAIJ,gBAAgB,CAACI,OAAO,EAAE;QAC5BvH,WAAW,CAAC+L,iBAAiB,CAAC9E,MAAM,CAACM,OAAO,EAAEJ,gBAAgB,CAACI,OAAO,CAACoC,KAAK,EAAExC,gBAAgB,CAACI,OAAO,CAACqC,GAAG,CAAC;MAC7G,CAAC,MAAM;QACL,MAAMoC,WAAW,GAAG3J,KAAK,GAAGA,KAAK,CAACW,MAAM,GAAGiE,MAAM,CAACM,OAAO,CAAChD,SAAS,CAACvB,MAAM;QAC1EhD,WAAW,CAAC+L,iBAAiB,CAAC9E,MAAM,CAACM,OAAO,EAAEyE,WAAW,EAAE,IAAI,CAAC;MAClE;MACAhC,eAAe,CAACR,KAAK,EAAErC,gBAAgB,CAACI,OAAO,CAAC;IAClD;IAEA,IAAIrB,OAAO,EAAE;MACX4B,aAAa,CAACrH,CAAC,CAAC;MAChByF,OAAO,CAACzF,CAAC,CAAC;IACZ;IAEA,IAAIyK,QAAQ,KAAK,IAAI,EAAE;MACrB,IAAIzF,gBAAgB,IAAIwB,MAAM,CAACM,OAAO,EAAE;QACtCN,MAAM,CAACM,OAAO,CAAChD,SAAS,GAAG,EAAE;MAC/B;MACA,IAAIgC,iBAAiB,EAAE;QACrB;QACA,IAAIpE,YAAY,KAAK,IAAI,EAAE;UACzB8J,YAAY,CAAC9J,YAAY,CAAC;QAC5B;QACAA,YAAY,GAAGyJ,UAAU,CAAC,MAAM;UAC9B,IAAIV,QAAQ,KAAK,IAAI,EAAE;YACrB;UACF;UACAhH,QAAQ,CAACwH,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,CAAC,EAAE,CAAC,CAAC;MACP;IACF;EACF,CAAC,EACD,CAACjG,gBAAgB,EAAES,OAAO,EAAEK,iBAAiB,EAAEuB,aAAa,EAAEkC,eAAe,EAAE3H,KAAK,CACtF,CAAC;EAED,MAAM6J,UAA6C,GAAG,IAAAnE,kBAAW,EAC9DyB,KAAK,IAAK;IACT,MAAM/I,CAAC,GAAG+I,KAAiE;IAC3ExJ,WAAW,CAACmM,eAAe,CAAC,CAAC;IAC7BjF,qBAAqB,CAACK,OAAO,GAAG,IAAI;IACpC,IAAIzB,MAAM,EAAE;MACVgC,aAAa,CAACrH,CAAC,CAAC;MAChBqF,MAAM,CAACrF,CAAC,CAAC;IACX;EACF,CAAC,EACD,CAACqF,MAAM,EAAEgC,aAAa,CACxB,CAAC;EAED,MAAMsE,WAAW,GAAG,IAAArE,kBAAW,EAC5BtH,CAAoD,IAAK;IACxDuJ,eAAe,CAACvJ,CAAC,CAAC;IAClB,IAAI,CAACwF,OAAO,IAAI,CAACgB,MAAM,CAACM,OAAO,EAAE;MAC/B;IACF;IACC9G,CAAC,CAACwH,MAAM,CAAsB5F,KAAK,GAAGD,cAAc,CAAC6E,MAAM,CAACM,OAAO,CAAChD,SAAS,IAAI,EAAE,CAAC;IACrF0B,OAAO,CAACxF,CAAC,CAAC;EACZ,CAAC,EACD,CAACwF,OAAO,EAAE+D,eAAe,CAC3B,CAAC;EAED,MAAMqC,WAAW,GAAG,IAAAtE,kBAAW,EAAEtH,CAAC,IAAK;IACrCuG,QAAQ,CAACO,OAAO,GAAG,IAAI;IACvB,IAAI9G,CAAC,CAACgL,kBAAkB,CAAC,CAAC,EAAE;MAC1B;IACF;IAEAhL,CAAC,CAAC4K,cAAc,CAAC,CAAC;IAClB,MAAMiB,aAAa,GAAG7L,CAAC,CAAC6L,aAAa;IACrC,MAAMtE,IAAI,GAAGsE,aAAa,CAACC,OAAO,CAAC,YAAY,CAAC;IAChDrI,QAAQ,CAACwH,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE1D,IAAI,CAAC;EACjD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMwE,gBAAgB,GAAG,IAAAzE,kBAAW,EAAC,MAAM;IACzCjB,cAAc,CAACS,OAAO,GAAG,IAAI;EAC/B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMkF,MAAM,GAAIC,UAAiC,IAAK;IACpD,MAAM/L,CAAC,GAAG+L,UAAU;IACpB,IAAI/L,CAAC,EAAE;MACJA,CAAC,CAA0BgM,SAAS,GAAG,MAAMzI,QAAQ,CAAC0I,aAAa,KAAKjM,CAAC;MACzEA,CAAC,CAA0BkM,KAAK,GAAG,MAAM;QACxClM,CAAC,CAAC4D,SAAS,GAAG,EAAE;QAChB8E,eAAe,CAAC1I,CAAC,EAAE,EAAE,CAAC;MACxB,CAAC;MAED,IAAI0B,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKyK,SAAS,EAAE;QACvC;QACAzD,eAAe,CAAC1I,CAAC,EAAEA,CAAC,CAAC4D,SAAS,CAAC;MACjC;IACF;IAEA,IAAIsC,GAAG,EAAE;MACP,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;QAC3B;QACCA,GAAG,CAA6CU,OAAO,GAAG5G,CAAC;MAC9D,CAAC,MAAM,IAAI,OAAOkG,GAAG,KAAK,UAAU,EAAE;QACnCA,GAAG,CAAiDlG,CAAC,CAAC;MACzD;IACF;IACAsG,MAAM,CAACM,OAAO,GAAG5G,CAAC;EACpB,CAAC;EAEDgB,eAAe,CACb,SAASoL,kBAAkBA,CAAA,EAAG;IAC5B,IAAI,CAAC9F,MAAM,CAACM,OAAO,IAAI6B,cAAc,KAAKnC,MAAM,CAACM,OAAO,CAAChD,SAAS,EAAE;MAClE;IACF;IAEA,IAAIlC,KAAK,KAAKyK,SAAS,EAAE;MACvB5E,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAEN,MAAM,CAACM,OAAO,CAAChD,SAAS,EAAEiE,sBAAsB,CAAC;MAC3E;IACF;IAEA,MAAMR,IAAI,GAAGoB,cAAc,KAAK0D,SAAS,GAAG1D,cAAc,GAAG,EAAE;IAE/DlB,SAAS,CAACjB,MAAM,CAACM,OAAO,EAAES,IAAI,EAAEQ,sBAAsB,EAAER,IAAI,CAAChF,MAAM,CAAC;IACpEqG,eAAe,CAACpC,MAAM,CAACM,OAAO,EAAElF,KAAK,CAAC;EACxC,CAAC,EACD,CAACuD,SAAS,EAAE4C,sBAAsB,EAAEY,cAAc,CACpD,CAAC;EAEDzH,eAAe,CACb,SAASqL,YAAYA,CAAA,EAAG;IACtB,IAAI,CAAC/F,MAAM,CAACM,OAAO,IAAI,CAAC3B,SAAS,EAAE;MACjC;IACF;IACA,MAAMqH,aAAa,GAAGpJ,gBAAgB,CAACoD,MAAM,CAACM,OAAO,EAAEmB,WAAW,EAAE1E,aAAa,CAAC;IAClFiD,MAAM,CAACM,OAAO,CAACjD,KAAK,CAACO,MAAM,GAAGoI,aAAa;IAC3ChG,MAAM,CAACM,OAAO,CAACjD,KAAK,CAAC4I,SAAS,GAAGD,aAAa;EAChD,CAAC,EACD,CAACjJ,aAAa,CAChB,CAAC;EAED,IAAAnC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACoF,MAAM,CAACM,OAAO,EAAE;MACnB;IACF;IACA;IACA,IAAIb,SAAS,EAAE;MACbO,MAAM,CAACM,OAAO,CAAC4F,KAAK,CAAC,CAAC;IACxB;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAtL,gBAAS,EAAC,MAAM;IACd;IACAsI,uBAAuB,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACA,uBAAuB,EAAEzB,WAAW,CAAC,CAAC;EAE1C,IAAA7G,gBAAS,EAAC,MAAM;IACd,IAAI,CAACoF,MAAM,CAACM,OAAO,IAAI,CAACd,SAAS,IAAKU,gBAAgB,CAACI,OAAO,IAAId,SAAS,CAACkD,KAAK,KAAKxC,gBAAgB,CAACI,OAAO,CAACoC,KAAK,IAAIlD,SAAS,CAACmD,GAAG,KAAKzC,gBAAgB,CAACI,OAAO,CAACqC,GAAI,EAAE;MACvK;IACF;IAEA,MAAMF,YAAuB,GAAG;MAACC,KAAK,EAAElD,SAAS,CAACkD,KAAK;MAAEC,GAAG,EAAEnD,SAAS,CAACmD,GAAG,IAAInD,SAAS,CAACkD;IAAK,CAAC;IAC/FxC,gBAAgB,CAACI,OAAO,GAAGmC,YAAY;IACvCD,2BAA2B,CAACC,YAAY,CAAC;IACzC1J,WAAW,CAAC+L,iBAAiB,CAAC9E,MAAM,CAACM,OAAO,EAAEmC,YAAY,CAACC,KAAK,EAAED,YAAY,CAACE,GAAG,CAAC;EACrF,CAAC,EAAE,CAACnD,SAAS,EAAEgD,2BAA2B,CAAC,CAAC;EAE5C;IAAA;IACE;IACA9J,MAAA,CAAAY,OAAA,CAAA4D,aAAA;MACEyC,EAAE,EAAEA,EAAG;MACPC,GAAG,EAAE4F,MAAO;MACZW,eAAe,EAAE,CAACzH,QAAS;MAC3BrB,KAAK,EAAEoE,WAAY;MACnB2E,IAAI,EAAEhI,iBAAiB,IAAI,SAAU;MACrC,cAAYF,kBAAmB;MAC/B,mBAAkB,GAAEC,uBAAwB,EAAE;MAC9C,oBAAkByC,qBAAsB;MACxC,kBAAgBjC,SAAU;MAC1BL,WAAW,EAAEA,WAAW,GAAG,IAAI,GAAG,KAAM;MACxCD,cAAc,EAAEA,cAAe;MAC/B8B,SAAS,EAAEA,SAAU;MACrBkG,SAAS,EAAErC,cAAe;MAC1BsC,kBAAkB,EAAEf,gBAAiB;MACrCgB,OAAO,EAAExD,eAAgB;MACzByD,OAAO,EAAE9C,kBAAmB;MAC5B1E,OAAO,EAAEmG,WAAY;MACrBlG,OAAO,EAAE4F,WAAY;MACrBhG,MAAM,EAAEoG,UAAW;MACnBwB,OAAO,EAAErB,WAAY;MACrBtJ,WAAW,EAAE8E,qBAAsB;MACnCrB,UAAU,EAAEA,UAAW;MACvBd,GAAG,EAAEA;IAAI,CACV;EAAC;AAEN,CACF,CAAC;AAED,MAAM3B,MAAM,GAAG4D,uBAAU,CAACgG,MAAM,CAAC;EAC/BhF,kBAAkB,EAAE;IAClBiF,WAAW,EAAE,OAAO;IACpBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,UAAU,EAAE,YAAY;IACxB;IACAC,SAAS,EAAE,YAAY;IACvBC,UAAU,EAAE,UAAU;IACtBC,SAAS,EAAE,MAAM;IACjBC,SAAS,EAAE,MAAM;IACjBC,YAAY,EAAE;EAChB,CAAC;EACDtF,mBAAmB,EAAE;IACnBuF,OAAO,EAAE,IAAI;IACbC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAjO,OAAA,GAEYyE,iBAAiB"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","ParseUtils","CursorUtils","StyleUtils","BrowserUtils","_InputHistory","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useClientEffect","window","useEffect","useLayoutEffect","createReactDOMStyle","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","denormalizeValue","endsWith","isEventComposing","nativeEvent","isComposing","keyCode","ZERO_WIDTH_SPACE","getPlaceholderValue","placeholder","length","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","keys","forEach","key","prop","processMarkdownStyle","mergeMarkdownStyleWithDefault","getElementHeight","node","styles","numberOfLines","tempElement","document","createElement","setAttribute","assign","style","innerText","Array","fill","join","parentElement","appendChild","height","clientHeight","removeChild","MarkdownTextInput","React","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","onContentSizeChange","id","ref","compositionRef","useRef","pasteRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","current","InputHistory","flattenedStyle","useMemo","StyleSheet","flatten","heightSafePlaceholder","setEventProps","useCallback","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","processedValue","updateTextColor","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","getCurrentCursorPosition","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","width","contentSize","handleOnChangeText","HTMLElement","prevSelection","prevTextLength","getPrevTextLength","changedText","isMobile","newInputUpdate","inputType","normalizedText","addedText","slice","count","prevSelectionRange","before","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","scrollCursorIntoView","setTimeout","blur","handleFocus","setCursorPosition","valueLength","clearTimeout","handleBlur","removeSelection","handleClick","handlePaste","clipboardData","getData","startComposition","setRef","currentRef","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onPaste","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor","_default","exports"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getCurrentCursorPosition = getCurrentCursorPosition;
7
+ exports.getPrevTextLength = getPrevTextLength;
7
8
  exports.moveCursorToEnd = moveCursorToEnd;
8
9
  exports.removeSelection = removeSelection;
9
10
  exports.scrollCursorIntoView = scrollCursorIntoView;
@@ -13,6 +14,9 @@ var BrowserUtils = _interopRequireWildcard(require("./browserUtils"));
13
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
16
  let prevTextLength;
17
+ function getPrevTextLength() {
18
+ return prevTextLength;
19
+ }
16
20
  function findTextNodes(textNodes, node) {
17
21
  if (node.nodeType === Node.TEXT_NODE) {
18
22
  textNodes.push(node);
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","prevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BrowserUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
@@ -171,19 +171,25 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
171
171
  }, disabled && styles.disabledInputStyles, createReactDOMStyle(preprocessStyle(flattenedStyle))]), [flattenedStyle, disabled]);
172
172
  const undo = useCallback(target => {
173
173
  if (!history.current) {
174
- return '';
174
+ return {
175
+ text: '',
176
+ cursorPosition: 0
177
+ };
175
178
  }
176
179
  const item = history.current.undo();
177
180
  const undoValue = item ? denormalizeValue(item.text) : null;
178
- return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
181
+ return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
179
182
  }, [parseText, processedMarkdownStyle]);
180
183
  const redo = useCallback(target => {
181
184
  if (!history.current) {
182
- return '';
185
+ return {
186
+ text: '',
187
+ cursorPosition: 0
188
+ };
183
189
  }
184
190
  const item = history.current.redo();
185
191
  const redoValue = item ? denormalizeValue(item.text) : null;
186
- return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
192
+ return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
187
193
  }, [parseText, processedMarkdownStyle]);
188
194
 
189
195
  // We have to process value property since contentEditable div adds one additional '\n' at the end of the text if we are entering new line
@@ -254,32 +260,43 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
254
260
  if (!divRef.current || !(e.target instanceof HTMLElement)) {
255
261
  return;
256
262
  }
263
+ const prevSelection = contentSelection.current ?? {
264
+ start: 0,
265
+ end: 0
266
+ };
267
+ const prevTextLength = CursorUtils.getPrevTextLength() ?? 0;
257
268
  const changedText = e.target.innerText;
258
269
  if (compositionRef.current && !BrowserUtils.isMobile) {
259
270
  updateTextColor(divRef.current, changedText);
260
271
  compositionRef.current = false;
261
272
  return;
262
273
  }
263
- let text = '';
274
+ let newInputUpdate;
264
275
  const nativeEvent = e.nativeEvent;
265
- switch (nativeEvent.inputType) {
276
+ const inputType = nativeEvent.inputType;
277
+ switch (inputType) {
266
278
  case 'historyUndo':
267
- text = undo(divRef.current);
279
+ newInputUpdate = undo(divRef.current);
268
280
  break;
269
281
  case 'historyRedo':
270
- text = redo(divRef.current);
282
+ newInputUpdate = redo(divRef.current);
271
283
  break;
272
284
  case 'insertFromPaste':
273
285
  // if there is no newline at the end of the copied text, contentEditable adds invisible <br> tag at the end of the text, so we need to normalize it
274
286
  if (changedText.length > 2 && changedText[changedText.length - 2] !== '\n' && changedText[changedText.length - 1] === '\n') {
275
- text = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle).text;
287
+ newInputUpdate = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle);
276
288
  break;
277
289
  }
278
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
290
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
279
291
  break;
280
292
  default:
281
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
293
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
282
294
  }
295
+ const {
296
+ text,
297
+ cursorPosition
298
+ } = newInputUpdate;
299
+ const normalizedText = normalizeValue(text);
283
300
  if (pasteRef !== null && pasteRef !== void 0 && pasteRef.current) {
284
301
  pasteRef.current = false;
285
302
  updateSelection(e);
@@ -288,10 +305,33 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
288
305
  if (onChange) {
289
306
  const event = e;
290
307
  setEventProps(event);
308
+
309
+ // The new text is between the prev start selection and the new end selection, can be empty
310
+ const addedText = normalizedText.slice(prevSelection.start, cursorPosition ?? 0);
311
+ // The length of the text that replaced the before text
312
+ const count = addedText.length;
313
+ // The start index of the replacement operation
314
+ let start = prevSelection.start;
315
+ const prevSelectionRange = prevSelection.end - prevSelection.start;
316
+ // The length the deleted text had before
317
+ let before = prevSelectionRange;
318
+ if (prevSelectionRange === 0 && (inputType === 'deleteContentBackward' || inputType === 'deleteContentForward')) {
319
+ // its possible the user pressed a delete key without a selection range, so we need to adjust the before value to have the length of the deleted text
320
+ before = prevTextLength - normalizedText.length;
321
+ }
322
+ if (inputType === 'deleteContentBackward') {
323
+ // When the user does a backspace delete he expects the content before the cursor to be removed.
324
+ // For this the start value needs to be adjusted (its as if the selection was before the text that we want to delete)
325
+ start -= before;
326
+ }
327
+ event.nativeEvent.count = count;
328
+ event.nativeEvent.before = before;
329
+ event.nativeEvent.start = start;
330
+
331
+ // @ts-expect-error TODO: Remove once react native PR merged https://github.com/facebook/react-native/pull/45248
291
332
  onChange(event);
292
333
  }
293
334
  if (onChangeText) {
294
- const normalizedText = normalizeValue(text);
295
335
  onChangeText(normalizedText);
296
336
  }
297
337
  handleContentSizeChange();
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","useLayoutEffect","StyleSheet","ParseUtils","CursorUtils","StyleUtils","BrowserUtils","InputHistory","require","useClientEffect","window","createReactDOMStyle","default","e","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","denormalizeValue","endsWith","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","onContentSizeChange","id","ref","compositionRef","pasteRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","current","flattenedStyle","flatten","heightSafePlaceholder","setEventProps","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","processedValue","updateTextColor","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","getCurrentCursorPosition","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","width","contentSize","handleOnChangeText","HTMLElement","changedText","isMobile","inputType","normalizedText","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","scrollCursorIntoView","setTimeout","blur","handleFocus","setCursorPosition","valueLength","clearTimeout","handleBlur","removeSelection","handleClick","handlePaste","clipboardData","getData","startComposition","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onPaste","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","BrowserUtils","InputHistory","require","useClientEffect","window","createReactDOMStyle","default","e","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","denormalizeValue","endsWith","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","onContentSizeChange","id","ref","compositionRef","pasteRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","current","flattenedStyle","flatten","heightSafePlaceholder","setEventProps","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","processedValue","updateTextColor","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","getCurrentCursorPosition","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","width","contentSize","handleOnChangeText","HTMLElement","prevSelection","prevTextLength","getPrevTextLength","changedText","isMobile","newInputUpdate","inputType","normalizedText","addedText","slice","count","prevSelectionRange","before","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","scrollCursorIntoView","setTimeout","blur","handleFocus","setCursorPosition","valueLength","clearTimeout","handleBlur","removeSelection","handleClick","handlePaste","clipboardData","getData","startComposition","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onPaste","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import * as BrowserUtils from './browserUtils';
2
2
  let prevTextLength;
3
+ function getPrevTextLength() {
4
+ return prevTextLength;
5
+ }
3
6
  function findTextNodes(textNodes, node) {
4
7
  if (node.nodeType === Node.TEXT_NODE) {
5
8
  textNodes.push(node);
@@ -136,5 +139,5 @@ function scrollCursorIntoView(target) {
136
139
  target.scrollTo(0, topToCaret + target.scrollTop + inputOffset);
137
140
  }
138
141
  }
139
- export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView };
142
+ export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView, getPrevTextLength };
140
143
  //# sourceMappingURL=cursorUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserUtils","prevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","e","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","n","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BrowserUtils","prevTextLength","getPrevTextLength","findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setPrevText","target","_textNodes$map","text","map","e","nodeValue","join","split","setCursorPosition","start","end","_textNodes$map2","document","activeElement","range","createRange","selectNodeContents","textCharacters","prevChar","nextChar","charCount","startNode","endNode","n","textNode","nextCharCount","undefined","setStart","setEnd","collapse","selection","window","getSelection","setBaseAndExtent","startContainer","startOffset","endContainer","endOffset","scrollCursorIntoView","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","toString","removeSelection","removeAllRanges","selectionStart","value","isFirefox","caretRect","getClientRects","editableRect","getBoundingClientRect","paddingTop","parseFloat","getComputedStyle","borderTop","borderTopWidth","top","bottom","topToCaret","inputHeight","height","inputOffset","isChromium","scrollTo","scrollTop"],"sourceRoot":"../../../src","sources":["web/cursorUtils.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,EAIf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAgC,MAAM,OAAO,CAAC;AAM5I,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;AA2ED,QAAA,MAAM,iBAAiB,0FAkgBtB,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,EAIf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,KAAK,EAAwE,UAAU,EAAgC,MAAM,OAAO,CAAC;AAM5I,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;AAgFD,QAAA,MAAM,iBAAiB,0FA4iBtB,CAAC;AAqBF,eAAe,iBAAiB,CAAC;AAEjC,YAAY,EAAC,sBAAsB,EAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ declare function getPrevTextLength(): number | undefined;
1
2
  declare function setPrevText(target: HTMLElement): void;
2
3
  declare function setCursorPosition(target: HTMLElement, start: number, end?: number | null): void;
3
4
  declare function moveCursorToEnd(target: HTMLElement): void;
@@ -7,5 +8,5 @@ declare function getCurrentCursorPosition(target: HTMLElement): {
7
8
  } | null;
8
9
  declare function removeSelection(): void;
9
10
  declare function scrollCursorIntoView(target: HTMLInputElement): void;
10
- export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView };
11
+ export { getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView, getPrevTextLength };
11
12
  //# sourceMappingURL=cursorUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAiBA,iBAAS,WAAW,CAAC,MAAM,EAAE,WAAW,QAUvC;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,QAuEvF;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAQ3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;SAYpD;AAED,iBAAS,eAAe,SAKvB;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,QAyBrD;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAC,CAAC"}
1
+ {"version":3,"file":"cursorUtils.d.ts","sourceRoot":"","sources":["../../../../src/web/cursorUtils.ts"],"names":[],"mappings":"AAIA,iBAAS,iBAAiB,uBAEzB;AAeD,iBAAS,WAAW,CAAC,MAAM,EAAE,WAAW,QAUvC;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,QAuEvF;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,QAQ3C;AAED,iBAAS,wBAAwB,CAAC,MAAM,EAAE,WAAW;;;SAYpD;AAED,iBAAS,eAAe,SAKvB;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,QAyBrD;AAED,OAAO,EAAC,wBAAwB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expensify/react-native-live-markdown",
3
- "version": "0.1.102",
3
+ "version": "0.1.103",
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",
@@ -75,6 +75,11 @@ type Dimensions = {
75
75
  height: number;
76
76
  };
77
77
 
78
+ type ParseTextResult = {
79
+ text: string;
80
+ cursorPosition: number | null;
81
+ };
82
+
78
83
  let focusTimeout: NodeJS.Timeout | null = null;
79
84
 
80
85
  // Removes one '\n' from the end of the string that were added by contentEditable div
@@ -203,7 +208,7 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
203
208
  }, []);
204
209
 
205
210
  const parseText = useCallback(
206
- (target: HTMLDivElement, text: string | null, customMarkdownStyles: MarkdownStyle, cursorPosition: number | null = null, shouldAddToHistory = true) => {
211
+ (target: HTMLDivElement, text: string | null, customMarkdownStyles: MarkdownStyle, cursorPosition: number | null = null, shouldAddToHistory = true): ParseTextResult => {
207
212
  if (text === null) {
208
213
  return {text: target.innerText, cursorPosition: null};
209
214
  }
@@ -240,25 +245,31 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
240
245
  );
241
246
 
242
247
  const undo = useCallback(
243
- (target: HTMLDivElement) => {
248
+ (target: HTMLDivElement): ParseTextResult => {
244
249
  if (!history.current) {
245
- return '';
250
+ return {
251
+ text: '',
252
+ cursorPosition: 0,
253
+ };
246
254
  }
247
255
  const item = history.current.undo();
248
256
  const undoValue = item ? denormalizeValue(item.text) : null;
249
- return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
257
+ return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
250
258
  },
251
259
  [parseText, processedMarkdownStyle],
252
260
  );
253
261
 
254
262
  const redo = useCallback(
255
- (target: HTMLDivElement) => {
263
+ (target: HTMLDivElement): ParseTextResult => {
256
264
  if (!history.current) {
257
- return '';
265
+ return {
266
+ text: '',
267
+ cursorPosition: 0,
268
+ };
258
269
  }
259
270
  const item = history.current.redo();
260
271
  const redoValue = item ? denormalizeValue(item.text) : null;
261
- return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false).text;
272
+ return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
262
273
  },
263
274
  [parseText, processedMarkdownStyle],
264
275
  );
@@ -341,6 +352,8 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
341
352
  if (!divRef.current || !(e.target instanceof HTMLElement)) {
342
353
  return;
343
354
  }
355
+ const prevSelection = contentSelection.current ?? {start: 0, end: 0};
356
+ const prevTextLength = CursorUtils.getPrevTextLength() ?? 0;
344
357
  const changedText = e.target.innerText;
345
358
  if (compositionRef.current && !BrowserUtils.isMobile) {
346
359
  updateTextColor(divRef.current, changedText);
@@ -348,27 +361,31 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
348
361
  return;
349
362
  }
350
363
 
351
- let text = '';
364
+ let newInputUpdate: ParseTextResult;
352
365
  const nativeEvent = e.nativeEvent as MarkdownNativeEvent;
353
- switch (nativeEvent.inputType) {
366
+ const inputType = nativeEvent.inputType;
367
+ switch (inputType) {
354
368
  case 'historyUndo':
355
- text = undo(divRef.current);
369
+ newInputUpdate = undo(divRef.current);
356
370
  break;
357
371
  case 'historyRedo':
358
- text = redo(divRef.current);
372
+ newInputUpdate = redo(divRef.current);
359
373
  break;
360
374
  case 'insertFromPaste':
361
375
  // if there is no newline at the end of the copied text, contentEditable adds invisible <br> tag at the end of the text, so we need to normalize it
362
376
  if (changedText.length > 2 && changedText[changedText.length - 2] !== '\n' && changedText[changedText.length - 1] === '\n') {
363
- text = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle).text;
377
+ newInputUpdate = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle);
364
378
  break;
365
379
  }
366
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
380
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
367
381
  break;
368
382
  default:
369
- text = parseText(divRef.current, changedText, processedMarkdownStyle).text;
383
+ newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
370
384
  }
371
385
 
386
+ const {text, cursorPosition} = newInputUpdate;
387
+ const normalizedText = normalizeValue(text);
388
+
372
389
  if (pasteRef?.current) {
373
390
  pasteRef.current = false;
374
391
  updateSelection(e);
@@ -376,13 +393,43 @@ const MarkdownTextInput = React.forwardRef<TextInput, MarkdownTextInputProps>(
376
393
  updateTextColor(divRef.current, text);
377
394
 
378
395
  if (onChange) {
379
- const event = e as unknown as NativeSyntheticEvent<any>;
396
+ const event = e as unknown as NativeSyntheticEvent<{
397
+ count: number;
398
+ before: number;
399
+ start: number;
400
+ }>;
380
401
  setEventProps(event);
402
+
403
+ // The new text is between the prev start selection and the new end selection, can be empty
404
+ const addedText = normalizedText.slice(prevSelection.start, cursorPosition ?? 0);
405
+ // The length of the text that replaced the before text
406
+ const count = addedText.length;
407
+ // The start index of the replacement operation
408
+ let start = prevSelection.start;
409
+
410
+ const prevSelectionRange = prevSelection.end - prevSelection.start;
411
+ // The length the deleted text had before
412
+ let before = prevSelectionRange;
413
+ if (prevSelectionRange === 0 && (inputType === 'deleteContentBackward' || inputType === 'deleteContentForward')) {
414
+ // its possible the user pressed a delete key without a selection range, so we need to adjust the before value to have the length of the deleted text
415
+ before = prevTextLength - normalizedText.length;
416
+ }
417
+
418
+ if (inputType === 'deleteContentBackward') {
419
+ // When the user does a backspace delete he expects the content before the cursor to be removed.
420
+ // For this the start value needs to be adjusted (its as if the selection was before the text that we want to delete)
421
+ start -= before;
422
+ }
423
+
424
+ event.nativeEvent.count = count;
425
+ event.nativeEvent.before = before;
426
+ event.nativeEvent.start = start;
427
+
428
+ // @ts-expect-error TODO: Remove once react native PR merged https://github.com/facebook/react-native/pull/45248
381
429
  onChange(event);
382
430
  }
383
431
 
384
432
  if (onChangeText) {
385
- const normalizedText = normalizeValue(text);
386
433
  onChangeText(normalizedText);
387
434
  }
388
435
 
@@ -2,6 +2,10 @@ import * as BrowserUtils from './browserUtils';
2
2
 
3
3
  let prevTextLength: number | undefined;
4
4
 
5
+ function getPrevTextLength() {
6
+ return prevTextLength;
7
+ }
8
+
5
9
  function findTextNodes(textNodes: Text[], node: ChildNode) {
6
10
  if (node.nodeType === Node.TEXT_NODE) {
7
11
  textNodes.push(node as Text);
@@ -158,4 +162,4 @@ function scrollCursorIntoView(target: HTMLInputElement) {
158
162
  }
159
163
  }
160
164
 
161
- export {getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView};
165
+ export {getCurrentCursorPosition, moveCursorToEnd, setCursorPosition, setPrevText, removeSelection, scrollCursorIntoView, getPrevTextLength};