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

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.
@@ -114,6 +114,7 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
114
114
  placeholderTextColor = `rgba(0,0,0,0.2)`,
115
115
  selectTextOnFocus,
116
116
  spellCheck,
117
+ selection,
117
118
  style = {},
118
119
  value,
119
120
  autoFocus = false
@@ -121,7 +122,11 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
121
122
  const compositionRef = (0, _react.useRef)(false);
122
123
  const divRef = (0, _react.useRef)(null);
123
124
  const currentlyFocusedField = (0, _react.useRef)(null);
124
- const contentSelection = (0, _react.useRef)(null);
125
+ const valueLength = value ? value.length : 0;
126
+ const contentSelection = (0, _react.useRef)({
127
+ start: valueLength,
128
+ end: valueLength
129
+ });
125
130
  const className = `react-native-live-markdown-input-${multiline ? 'multiline' : 'singleline'}`;
126
131
  const history = (0, _react.useRef)();
127
132
  if (!history.current) {
@@ -131,15 +136,18 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
131
136
 
132
137
  // Empty placeholder would collapse the div, so we need to use zero-width space to prevent it
133
138
  const heightSafePlaceholder = (0, _react.useMemo)(() => getPlaceholderValue(placeholder), [placeholder]);
134
- const updateSelection = (0, _react.useCallback)(() => {
135
- if (!divRef.current) {
136
- return;
139
+ const setEventProps = (0, _react.useCallback)(e => {
140
+ if (divRef.current) {
141
+ const text = normalizeValue(divRef.current.innerText || '');
142
+ if (e.target) {
143
+ // TODO: change the logic here so every event have value property
144
+ e.target.value = text;
145
+ }
146
+ if (e.nativeEvent && e.nativeEvent.text) {
147
+ e.nativeEvent.text = text;
148
+ }
137
149
  }
138
- const selection = CursorUtils.getCurrentCursorPosition(divRef.current);
139
- const markdownHTMLInput = divRef.current;
140
- markdownHTMLInput.selectionStart = selection.start;
141
- markdownHTMLInput.selectionEnd = selection.end;
142
- contentSelection.current = selection;
150
+ return e;
143
151
  }, []);
144
152
  const parseText = (0, _react.useCallback)((target, text, customMarkdownStyles, cursorPosition = null, shouldAddToHistory = true) => {
145
153
  if (text === null) {
@@ -152,7 +160,6 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
152
160
  if (history.current && shouldAddToHistory) {
153
161
  history.current.debouncedAdd(parsedText.text, parsedText.cursorPosition);
154
162
  }
155
- updateSelection();
156
163
  return parsedText;
157
164
  }, [multiline]);
158
165
  const processedMarkdownStyle = (0, _react.useMemo)(() => {
@@ -183,17 +190,6 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
183
190
  }
184
191
  return value;
185
192
  }, [value]);
186
- const setEventProps = (0, _react.useCallback)(e => {
187
- if (divRef.current) {
188
- const text = normalizeValue(divRef.current.innerText || '');
189
- if (typeof e.target !== 'number') {
190
- // TODO: change the logic here so every event have value property
191
- e.target.value = text;
192
- }
193
- e.nativeEvent.text = text;
194
- }
195
- return e;
196
- }, []);
197
193
 
198
194
  // Placeholder text color logic
199
195
  const updateTextColor = (0, _react.useCallback)((node, text) => {
@@ -232,6 +228,36 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
232
228
  onChangeText(normalizedText);
233
229
  }
234
230
  }, [multiline, onChange, onChangeText, setEventProps, processedMarkdownStyle]);
231
+ const handleSelectionChange = (0, _react.useCallback)(event => {
232
+ const e = event;
233
+ setEventProps(e);
234
+ if (onSelectionChange && contentSelection.current) {
235
+ e.nativeEvent.selection = contentSelection.current;
236
+ onSelectionChange(e);
237
+ }
238
+ }, [onSelectionChange, setEventProps]);
239
+ const updateRefSelectionVariables = (0, _react.useCallback)(newSelection => {
240
+ const {
241
+ start,
242
+ end
243
+ } = newSelection;
244
+ const markdownHTMLInput = divRef.current;
245
+ markdownHTMLInput.selectionStart = start;
246
+ markdownHTMLInput.selectionEnd = end;
247
+ }, []);
248
+ const updateSelection = (0, _react.useCallback)((e = null) => {
249
+ if (!divRef.current) {
250
+ return;
251
+ }
252
+ const newSelection = CursorUtils.getCurrentCursorPosition(divRef.current);
253
+ if (newSelection && (contentSelection.current.start !== newSelection.start || contentSelection.current.end !== newSelection.end)) {
254
+ updateRefSelectionVariables(newSelection);
255
+ contentSelection.current = newSelection;
256
+ if (e) {
257
+ handleSelectionChange(e);
258
+ }
259
+ }
260
+ }, []);
235
261
  const handleKeyPress = (0, _react.useCallback)(e => {
236
262
  if (!divRef.current) {
237
263
  return;
@@ -258,6 +284,7 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
258
284
  if (onKeyPress) {
259
285
  onKeyPress(event);
260
286
  }
287
+ updateSelection(event);
261
288
  if (e.key === 'Enter' && !e.shiftKey &&
262
289
  // Do not call submit if composition is occuring.
263
290
  !isComposing && !e.isDefaultPrevented()) {
@@ -278,22 +305,13 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
278
305
  }
279
306
  }
280
307
  }, [onKeyPress]);
281
- const handleSelectionChange = (0, _react.useCallback)(event => {
282
- const e = event;
283
- setEventProps(e);
284
- updateSelection();
285
- if (onSelectionChange && contentSelection.current) {
286
- e.nativeEvent.selection = contentSelection.current;
287
- onSelectionChange(e);
288
- }
289
- }, [onSelectionChange, setEventProps]);
290
308
  const handleFocus = (0, _react.useCallback)(event => {
291
309
  const e = event;
292
310
  const hostNode = e.target;
293
311
  currentlyFocusedField.current = hostNode;
294
312
  setEventProps(e);
295
313
  if (divRef.current && contentSelection.current) {
296
- CursorUtils.setCursorPosition(divRef.current, contentSelection.current.start || divRef.current.innerText.length, !multiline);
314
+ CursorUtils.setCursorPosition(divRef.current, contentSelection.current.end || contentSelection.current.start);
297
315
  }
298
316
  if (onFocus) {
299
317
  setEventProps(e);
@@ -319,6 +337,7 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
319
337
  }, [clearTextOnFocus, multiline, onFocus, selectTextOnFocus, setEventProps]);
320
338
  const handleBlur = (0, _react.useCallback)(event => {
321
339
  const e = event;
340
+ CursorUtils.removeSelection();
322
341
  currentlyFocusedField.current = null;
323
342
  if (onBlur) {
324
343
  setEventProps(e);
@@ -326,13 +345,16 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
326
345
  }
327
346
  }, [onBlur, setEventProps]);
328
347
  const handleClick = (0, _react.useCallback)(e => {
329
- updateSelection();
348
+ updateSelection(e);
330
349
  if (!onClick || !divRef.current) {
331
350
  return;
332
351
  }
333
352
  e.target.value = normalizeValue(divRef.current.innerText || '');
334
353
  onClick(e);
335
354
  }, [onClick]);
355
+ const startComposition = (0, _react.useCallback)(() => {
356
+ compositionRef.current = true;
357
+ }, []);
336
358
  const setRef = currentRef => {
337
359
  const r = currentRef;
338
360
  if (r) {
@@ -397,15 +419,22 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
397
419
  };
398
420
  }, []);
399
421
  (0, _react.useEffect)(() => {
400
- // focus the input on mount if autoFocus is set
401
- if (!(divRef.current && autoFocus)) {
422
+ if (!divRef.current) {
402
423
  return;
403
424
  }
404
- divRef.current.focus();
405
- }, []);
406
- const startComposition = (0, _react.useCallback)(() => {
407
- compositionRef.current = true;
425
+ // focus the input on mount if autoFocus is set
426
+ if (autoFocus) {
427
+ divRef.current.focus();
428
+ }
429
+ updateRefSelectionVariables(contentSelection.current);
408
430
  }, []);
431
+ (0, _react.useEffect)(() => {
432
+ if (!divRef.current || !selection || selection.start === contentSelection.current.start && selection.end === contentSelection.current.end) {
433
+ return;
434
+ }
435
+ CursorUtils.setCursorPosition(divRef.current, selection.start, selection.end);
436
+ updateSelection();
437
+ }, [selection]);
409
438
  return (
410
439
  /*#__PURE__*/
411
440
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
@@ -425,7 +454,6 @@ const MarkdownTextInput = /*#__PURE__*/_react.default.forwardRef(({
425
454
  onCompositionStart: startComposition,
426
455
  onKeyUp: updateSelection,
427
456
  onInput: handleOnChangeText,
428
- onSelect: handleSelectionChange,
429
457
  onClick: handleClick,
430
458
  onFocus: handleFocus,
431
459
  onBlur: handleBlur,
@@ -444,8 +472,8 @@ const styles = _reactNative.StyleSheet.create({
444
472
  // @ts-expect-error it works on web
445
473
  boxSizing: 'border-box',
446
474
  whiteSpace: 'pre-wrap',
447
- overflowY: 'scroll',
448
- overflowX: 'scroll',
475
+ overflowY: 'auto',
476
+ overflowX: 'auto',
449
477
  overflowWrap: 'break-word'
450
478
  },
451
479
  disabledInputStyles: {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","ParseUtils","CursorUtils","StyleUtils","_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","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","autoFocus","ref","compositionRef","useRef","divRef","currentlyFocusedField","contentSelection","className","history","current","InputHistory","flattenedStyle","useMemo","StyleSheet","flatten","heightSafePlaceholder","updateSelection","useCallback","selection","getCurrentCursorPosition","markdownHTMLInput","selectionStart","start","selectionEnd","end","parseText","target","text","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","debouncedAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","redo","processedValue","setEventProps","updateTextColor","String","handleOnChangeText","HTMLElement","inputType","event","normalizedText","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","setTimeout","blur","handleSelectionChange","handleFocus","setCursorPosition","clearTimeout","handleBlur","handleClick","setRef","currentRef","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","originalAddEventListener","EventTarget","addEventListener","eventName","callback","contains","writable","focus","startComposition","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","onSelect","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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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","ParseUtils","CursorUtils","StyleUtils","_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","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","ref","compositionRef","useRef","divRef","currentlyFocusedField","valueLength","contentSelection","start","end","className","history","current","InputHistory","flattenedStyle","useMemo","StyleSheet","flatten","heightSafePlaceholder","setEventProps","useCallback","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","debouncedAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","redo","processedValue","updateTextColor","String","handleOnChangeText","HTMLElement","inputType","event","normalizedText","handleSelectionChange","updateRefSelectionVariables","newSelection","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","getCurrentCursorPosition","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","setTimeout","blur","handleFocus","setCursorPosition","clearTimeout","handleBlur","removeSelection","handleClick","startComposition","setRef","currentRef","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","originalAddEventListener","EventTarget","addEventListener","eventName","callback","contains","writable","focus","contentEditable","role","onKeyDown","onCompositionStart","onKeyUp","onInput","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor","_default","exports"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":";;;;;;AAWA,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;AAEAA,OAAA;AACA,IAAAK,aAAA,GAAAC,sBAAA,CAAAN,OAAA;AAA8C,SAAAM,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,SAAAZ,wBAAAY,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;AAnB9C;;AAqBAjB,OAAO,CAAC,gDAAgD,CAAC;AAEzD,MAAM6B,eAAe,GAAG,OAAOC,MAAM,KAAK,WAAW,GAAGC,gBAAS,GAAGC,sBAAe;AAEnF,IAAIC,mBAAwC;AAC5C,IAAI;EACFA,mBAAmB;EACjB;EACAjC,OAAO,CAAC,uEAAuE,CAAC,CAACS,OAAO;AAC5F,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,kKAAkK,CAAC;AACrL;AAEA,IAAIC,eAAoC;AACxC,IAAI;EACFA,eAAe;EACb;EACAnC,OAAO,CAAC,qDAAqD,CAAC,CAACS,OAAO;AAC1E,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,0FAA0F,CAAC;AAC7G;AAEA,IAAIE,mBAAiF;AACrF,IAAI;EACFA,mBAAmB;EACjB;EACApC,OAAO,CAAC,qEAAqE,CAAC,CAACS,OAAO;AAC1F,CAAC,CAAC,OAAOE,CAAC,EAAE;EACV,MAAM,IAAIuB,KAAK,CAAC,8FAA8F,CAAC;AACjH;AAoBA,IAAIG,YAAmC,GAAG,IAAI;;AAE9C;AACA,SAASC,cAAcA,CAACC,KAAa,EAAE;EACrC,OAAOA,KAAK,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACjC;;AAEA;AACA;AACA,SAASC,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;EAEhD9B,MAAM,CAACmC,IAAI,CAACJ,MAAM,CAAC,CAACK,OAAO,CAAEC,GAAG,IAAK;IACnC,MAAMlD,GAAG,GAAG4C,MAAM,CAACM,GAAG,CAAC;IACvBrC,MAAM,CAACmC,IAAI,CAAChD,GAAG,CAAC,CAACiD,OAAO,CAAEE,IAAI,IAAK;MACjCnD,GAAG,CAACmD,IAAI,CAAC,GAAGtB,mBAAmB,CAACsB,IAAI,EAAEnD,GAAG,CAACmD,IAAI,CAAC,EAAE,KAAK,CAAC;IACzD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,OAAOP,MAAM;AACf;AAEA,SAASQ,oBAAoBA,CAACT,KAAgC,EAAiB;EAC7E,OAAOD,2BAA2B,CAAC7C,UAAU,CAACwD,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;IACnDhD,MAAM,CAACiD,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,OAAQ,GAAEY,MAAO,IAAG;IACtB;EACF;EACA,OAAQ,GAAEd,MAAM,CAACc,MAAO,IAAG,IAAI,MAAM;AACvC;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;EACV/B,KAAK;EACLmE,SAAS,GAAG;AACd,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAU,KAAK,CAAC;EAC7C,MAAMC,MAAM,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EAClD,MAAME,qBAAqB,GAAG,IAAAF,aAAM,EAAwB,IAAI,CAAC;EACjE,MAAMG,WAAW,GAAGzE,KAAK,GAAGA,KAAK,CAACS,MAAM,GAAG,CAAC;EAC5C,MAAMiE,gBAAgB,GAAG,IAAAJ,aAAM,EAAY;IAACK,KAAK,EAAEF,WAAW;IAAEG,GAAG,EAAEH;EAAW,CAAC,CAAC;EAClF,MAAMI,SAAS,GAAI,oCAAmCxB,SAAS,GAAG,WAAW,GAAG,YAAa,EAAC;EAC9F,MAAMyB,OAAO,GAAG,IAAAR,aAAM,EAAe,CAAC;EACtC,IAAI,CAACQ,OAAO,CAACC,OAAO,EAAE;IACpBD,OAAO,CAACC,OAAO,GAAG,IAAIC,qBAAY,CAAC,GAAG,CAAC;EACzC;EAEA,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAAC,MAAMC,uBAAU,CAACC,OAAO,CAACrD,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAExE;EACA,MAAMsD,qBAAqB,GAAG,IAAAH,cAAO,EAAC,MAAM3E,mBAAmB,CAACC,WAAW,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAE5F,MAAM8E,aAAa,GAAG,IAAAC,kBAAW,EAAEnH,CAA4B,IAAK;IAClE,IAAImG,MAAM,CAACQ,OAAO,EAAE;MAClB,MAAMS,IAAI,GAAGzF,cAAc,CAACwE,MAAM,CAACQ,OAAO,CAAC/C,SAAS,IAAI,EAAE,CAAC;MAC3D,IAAI5D,CAAC,CAACqH,MAAM,EAAE;QACZ;QACCrH,CAAC,CAACqH,MAAM,CAAiCzF,KAAK,GAAGwF,IAAI;MACxD;MACA,IAAIpH,CAAC,CAAC+B,WAAW,IAAI/B,CAAC,CAAC+B,WAAW,CAACqF,IAAI,EAAE;QACvCpH,CAAC,CAAC+B,WAAW,CAACqF,IAAI,GAAGA,IAAI;MAC3B;IACF;IACA,OAAOpH,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsH,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,CAACzD,SAAS;QAAE4D,cAAc,EAAE;MAAI,CAAC;IACvD;IACA,MAAME,UAAU,GAAGnI,UAAU,CAAC+H,SAAS,CAACD,MAAM,EAAED,IAAI,EAAEI,cAAc,EAAED,oBAAoB,EAAE,CAACtC,SAAS,CAAC;IACvG,IAAIyB,OAAO,CAACC,OAAO,IAAIc,kBAAkB,EAAE;MACzCf,OAAO,CAACC,OAAO,CAACgB,YAAY,CAACD,UAAU,CAACN,IAAI,EAAEM,UAAU,CAACF,cAAc,CAAC;IAC1E;IAEA,OAAOE,UAAU;EACnB,CAAC,EACD,CAACzC,SAAS,CACZ,CAAC;EAED,MAAM2C,sBAAsB,GAAG,IAAAd,cAAO,EAAC,MAAM;IAC3C,MAAMe,gBAAgB,GAAG7E,oBAAoB,CAACkC,aAAa,CAAC;IAC5D,IAAIiB,MAAM,CAACQ,OAAO,EAAE;MAClBW,SAAS,CAACnB,MAAM,CAACQ,OAAO,EAAER,MAAM,CAACQ,OAAO,CAAC/C,SAAS,EAAEiE,gBAAgB,CAAC;IACvE;IACA,OAAOA,gBAAgB;EACzB,CAAC,EAAE,CAAC3C,aAAa,CAAC,CAAC;EAEnB,MAAM4C,WAAW,GAAG,IAAAhB,cAAO,EACzB,MACEC,uBAAU,CAACC,OAAO,CAAC,CACjB5D,MAAM,CAAC2E,kBAAkB,EACzBlB,cAAc,IAAI;IAChBmB,UAAU,EAAGnB,cAAc,CAAeoB,KAAK,IAAI;EACrD,CAAC,EACDjD,QAAQ,IAAI5B,MAAM,CAAC8E,mBAAmB,EACtC5G,mBAAmB,CAACE,eAAe,CAACqF,cAAc,CAAC,CAAC,CACrD,CAAkB,EACrB,CAACA,cAAc,EAAE7B,QAAQ,CAC3B,CAAC;EAED,MAAMmD,IAAI,GAAG,IAAAhB,kBAAW,EACrBE,MAAsB,IAAK;IAC1B,IAAI,CAACX,OAAO,CAACC,OAAO,EAAE,OAAO,EAAE;IAC/B,MAAMyB,IAAI,GAAG1B,OAAO,CAACC,OAAO,CAACwB,IAAI,CAAC,CAAC;IACnC,OAAOb,SAAS,CAACD,MAAM,EAAEe,IAAI,GAAGA,IAAI,CAAChB,IAAI,GAAG,IAAI,EAAEQ,sBAAsB,EAAEQ,IAAI,GAAGA,IAAI,CAACZ,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC,CAACJ,IAAI;EAC1H,CAAC,EACD,CAACQ,sBAAsB,CACzB,CAAC;EAED,MAAMS,IAAI,GAAG,IAAAlB,kBAAW,EACrBE,MAAsB,IAAK;IAC1B,IAAI,CAACX,OAAO,CAACC,OAAO,EAAE,OAAO,EAAE;IAC/B,MAAMyB,IAAI,GAAG1B,OAAO,CAACC,OAAO,CAAC0B,IAAI,CAAC,CAAC;IACnC,OAAOf,SAAS,CAACD,MAAM,EAAEe,IAAI,GAAGA,IAAI,CAAChB,IAAI,GAAG,IAAI,EAAEQ,sBAAsB,EAAEQ,IAAI,GAAGA,IAAI,CAACZ,cAAc,GAAG,IAAI,EAAE,KAAK,CAAC,CAACJ,IAAI;EAC1H,CAAC,EACD,CAACQ,sBAAsB,CACzB,CAAC;;EAED;EACA,MAAMU,cAAc,GAAG,IAAAxB,cAAO,EAAC,MAAM;IACnC,IAAIlF,KAAK,IAAIA,KAAK,CAACA,KAAK,CAACS,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;MAC7C,OAAQ,GAAET,KAAM,IAAG;IACrB;IACA,OAAOA,KAAK;EACd,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;;EAEX;EACA,MAAM2G,eAAe,GAAG,IAAApB,kBAAW,EAAC,CAAChE,IAAoB,EAAEiE,IAAY,KAAK;IAC1E;IACAjE,IAAI,CAACQ,KAAK,CAACsE,KAAK,GAAGO,MAAM,CAACpG,WAAW,KAAKgF,IAAI,KAAK,EAAE,IAAIA,IAAI,KAAK,IAAI,CAAC,GAAGzB,oBAAoB,GAAGkB,cAAc,CAACoB,KAAK,IAAI,OAAO,CAAC;EACnI,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,kBAAkB,GAAG,IAAAtB,kBAAW,EACnCnH,CAAiC,IAAK;IACrC,IAAI,CAACmG,MAAM,CAACQ,OAAO,IAAI,EAAE3G,CAAC,CAACqH,MAAM,YAAYqB,WAAW,CAAC,EAAE;MACzD;IACF;IAEA,IAAIzC,cAAc,CAACU,OAAO,EAAE;MAC1B4B,eAAe,CAACpC,MAAM,CAACQ,OAAO,EAAE3G,CAAC,CAACqH,MAAM,CAACzD,SAAS,CAAC;MACnDqC,cAAc,CAACU,OAAO,GAAG,KAAK;MAC9B;IACF;IAEA,IAAIS,IAAI,GAAG,EAAE;IACb,MAAMrF,WAAW,GAAG/B,CAAC,CAAC+B,WAAkC;IACxD,QAAQA,WAAW,CAAC4G,SAAS;MAC3B,KAAK,aAAa;QAChBvB,IAAI,GAAGe,IAAI,CAAChC,MAAM,CAACQ,OAAO,CAAC;QAC3B;MACF,KAAK,aAAa;QAChBS,IAAI,GAAGiB,IAAI,CAAClC,MAAM,CAACQ,OAAO,CAAC;QAC3B;MACF;QACES,IAAI,GAAGE,SAAS,CAACnB,MAAM,CAACQ,OAAO,EAAE3G,CAAC,CAACqH,MAAM,CAACzD,SAAS,EAAEgE,sBAAsB,CAAC,CAACR,IAAI;IACrF;IACAmB,eAAe,CAACpC,MAAM,CAACQ,OAAO,EAAE3G,CAAC,CAACqH,MAAM,CAACzD,SAAS,CAAC;IAEnD,IAAIwB,QAAQ,EAAE;MACZ,MAAMwD,KAAK,GAAG5I,CAAyC;MACvDkH,aAAa,CAAC0B,KAAK,CAAC;MACpBxD,QAAQ,CAACwD,KAAK,CAAC;IACjB;IAEA,IAAIvD,YAAY,EAAE;MAChB,MAAMwD,cAAc,GAAGlH,cAAc,CAACyF,IAAI,CAAC;MAC3C/B,YAAY,CAACwD,cAAc,CAAC;IAC9B;EACF,CAAC,EACD,CAAC5D,SAAS,EAAEG,QAAQ,EAAEC,YAAY,EAAE6B,aAAa,EAAEU,sBAAsB,CAC3E,CAAC;EAED,MAAMkB,qBAAwD,GAAG,IAAA3B,kBAAW,EACzEyB,KAAK,IAAK;IACT,MAAM5I,CAAC,GAAG4I,KAA2E;IACrF1B,aAAa,CAAClH,CAAC,CAAC;IAChB,IAAIyF,iBAAiB,IAAIa,gBAAgB,CAACK,OAAO,EAAE;MACjD3G,CAAC,CAAC+B,WAAW,CAAC+D,SAAS,GAAGQ,gBAAgB,CAACK,OAAO;MAClDlB,iBAAiB,CAACzF,CAAC,CAAC;IACtB;EACF,CAAC,EACD,CAACyF,iBAAiB,EAAEyB,aAAa,CACnC,CAAC;EAED,MAAM6B,2BAA2B,GAAG,IAAA5B,kBAAW,EAAE6B,YAAuB,IAAK;IAC3E,MAAM;MAACzC,KAAK;MAAEC;IAAG,CAAC,GAAGwC,YAAY;IACjC,MAAMC,iBAAiB,GAAG9C,MAAM,CAACQ,OAA2B;IAC5DsC,iBAAiB,CAACC,cAAc,GAAG3C,KAAK;IACxC0C,iBAAiB,CAACE,YAAY,GAAG3C,GAAG;EACtC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM4C,eAAe,GAAG,IAAAjC,kBAAW,EAAC,CAACnH,CAAwC,GAAG,IAAI,KAAK;IACvF,IAAI,CAACmG,MAAM,CAACQ,OAAO,EAAE;MACnB;IACF;IACA,MAAMqC,YAAY,GAAGxJ,WAAW,CAAC6J,wBAAwB,CAAClD,MAAM,CAACQ,OAAO,CAAC;IAEzE,IAAIqC,YAAY,KAAK1C,gBAAgB,CAACK,OAAO,CAACJ,KAAK,KAAKyC,YAAY,CAACzC,KAAK,IAAID,gBAAgB,CAACK,OAAO,CAACH,GAAG,KAAKwC,YAAY,CAACxC,GAAG,CAAC,EAAE;MAChIuC,2BAA2B,CAACC,YAAY,CAAC;MACzC1C,gBAAgB,CAACK,OAAO,GAAGqC,YAAY;MAEvC,IAAIhJ,CAAC,EAAE;QACL8I,qBAAqB,CAAC9I,CAAC,CAAC;MAC1B;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsJ,cAAc,GAAG,IAAAnC,kBAAW,EAC/BnH,CAAgC,IAAK;IACpC,IAAI,CAACmG,MAAM,CAACQ,OAAO,EAAE;MACnB;IACF;IAEA,MAAM4C,QAAQ,GAAGvJ,CAAC,CAACqH,MAAM;IACzBrH,CAAC,CAACwJ,eAAe,CAAC,CAAC;IAEnB,IAAIxJ,CAAC,CAAC8C,GAAG,KAAK,GAAG,IAAI9C,CAAC,CAACyJ,OAAO,EAAE;MAC9BzJ,CAAC,CAAC0J,cAAc,CAAC,CAAC;MAClB,MAAM3H,WAAW,GAAG/B,CAAC,CAAC+B,WAA6C;MACnE,IAAI/B,CAAC,CAAC2J,QAAQ,EAAE;QACd5H,WAAW,CAAC4G,SAAS,GAAG,aAAa;MACvC,CAAC,MAAM;QACL5G,WAAW,CAAC4G,SAAS,GAAG,aAAa;MACvC;MAEAF,kBAAkB,CAACzI,CAAC,CAAC;MACrB;IACF;IAEA,MAAM4J,mBAAmB,GAAG,CAAC3E,SAAS;IACtC,MAAM4E,kBAAkB,GAAGhF,YAAY,KAAK,IAAI,GAAG+E,mBAAmB,GAAG/E,YAAY;IAErF,MAAM9C,WAAW,GAAG/B,CAAC,CAAC+B,WAAW;IACjC,MAAMC,WAAW,GAAGF,gBAAgB,CAACC,WAAW,CAAC;IAEjD,MAAM6G,KAAK,GAAG5I,CAAgE;IAC9EkH,aAAa,CAAC0B,KAAK,CAAC;IACpB,IAAIpD,UAAU,EAAE;MACdA,UAAU,CAACoD,KAAK,CAAC;IACnB;IAEAQ,eAAe,CAACR,KAAyD,CAAC;IAE1E,IACE5I,CAAC,CAAC8C,GAAG,KAAK,OAAO,IACjB,CAAC9C,CAAC,CAAC2J,QAAQ;IACX;IACA,CAAC3H,WAAW,IACZ,CAAChC,CAAC,CAAC8J,kBAAkB,CAAC,CAAC,EACvB;MACA;MACA9J,CAAC,CAAC0J,cAAc,CAAC,CAAC;MAClB,IAAI,CAAC7E,YAAY,IAAI,CAACI,SAAS,KAAKS,eAAe,EAAE;QACnDA,eAAe,CAACkD,KAAyE,CAAC;MAC5F,CAAC,MAAM;QACL5I,CAAC,CAAC0J,cAAc,CAAC,CAAC;QAClB;QACA;QACA,IAAIzE,SAAS,EAAE;UACb1B,QAAQ,CAACwG,WAAW,CAAC,iBAAiB,CAAC;QACzC;MACF;MAEA,IAAKF,kBAAkB,IAAIN,QAAQ,KAAK,IAAI,IAAK,CAACtE,SAAS,EAAE;QAC3D+E,UAAU,CAAC,MAAM7D,MAAM,CAACQ,OAAO,IAAIR,MAAM,CAACQ,OAAO,CAACsD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MAC9D;IACF;EACF,CAAC,EACD,CAACzE,UAAU,CACb,CAAC;EAED,MAAM0E,WAA8C,GAAG,IAAA/C,kBAAW,EAC/DyB,KAAK,IAAK;IACT,MAAM5I,CAAC,GAAG4I,KAAiE;IAC3E,MAAMW,QAAQ,GAAGvJ,CAAC,CAACqH,MAAmC;IACtDjB,qBAAqB,CAACO,OAAO,GAAG4C,QAAQ;IACxCrC,aAAa,CAAClH,CAAC,CAAC;IAChB,IAAImG,MAAM,CAACQ,OAAO,IAAIL,gBAAgB,CAACK,OAAO,EAAE;MAC9CnH,WAAW,CAAC2K,iBAAiB,CAAChE,MAAM,CAACQ,OAAO,EAAEL,gBAAgB,CAACK,OAAO,CAACH,GAAG,IAAIF,gBAAgB,CAACK,OAAO,CAACJ,KAAK,CAAC;IAC/G;IAEA,IAAIhB,OAAO,EAAE;MACX2B,aAAa,CAAClH,CAAC,CAAC;MAChBuF,OAAO,CAACvF,CAAC,CAAC;IACZ;IAEA,IAAIuJ,QAAQ,KAAK,IAAI,EAAE;MACrB,IAAIzE,gBAAgB,IAAIqB,MAAM,CAACQ,OAAO,EAAE;QACtCR,MAAM,CAACQ,OAAO,CAAC/C,SAAS,GAAG,EAAE;MAC/B;MACA,IAAIgC,iBAAiB,EAAE;QACrB;QACA,IAAIlE,YAAY,KAAK,IAAI,EAAE;UACzB0I,YAAY,CAAC1I,YAAY,CAAC;QAC5B;QACAA,YAAY,GAAGsI,UAAU,CAAC,MAAM;UAC9B,IAAIT,QAAQ,KAAK,IAAI,EAAE;YACrB;UACF;UACAhG,QAAQ,CAACwG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,CAAC,EAAE,CAAC,CAAC;MACP;IACF;EACF,CAAC,EACD,CAACjF,gBAAgB,EAAEG,SAAS,EAAEM,OAAO,EAAEK,iBAAiB,EAAEsB,aAAa,CACzE,CAAC;EAED,MAAMmD,UAA6C,GAAG,IAAAlD,kBAAW,EAC9DyB,KAAK,IAAK;IACT,MAAM5I,CAAC,GAAG4I,KAAiE;IAC3EpJ,WAAW,CAAC8K,eAAe,CAAC,CAAC;IAC7BlE,qBAAqB,CAACO,OAAO,GAAG,IAAI;IACpC,IAAIxB,MAAM,EAAE;MACV+B,aAAa,CAAClH,CAAC,CAAC;MAChBmF,MAAM,CAACnF,CAAC,CAAC;IACX;EACF,CAAC,EACD,CAACmF,MAAM,EAAE+B,aAAa,CACxB,CAAC;EAED,MAAMqD,WAAW,GAAG,IAAApD,kBAAW,EAC5BnH,CAAoD,IAAK;IACxDoJ,eAAe,CAACpJ,CAAC,CAAC;IAClB,IAAI,CAACsF,OAAO,IAAI,CAACa,MAAM,CAACQ,OAAO,EAAE;MAC/B;IACF;IACC3G,CAAC,CAACqH,MAAM,CAAsBzF,KAAK,GAAGD,cAAc,CAACwE,MAAM,CAACQ,OAAO,CAAC/C,SAAS,IAAI,EAAE,CAAC;IACrF0B,OAAO,CAACtF,CAAC,CAAC;EACZ,CAAC,EACD,CAACsF,OAAO,CACV,CAAC;EAED,MAAMkF,gBAAgB,GAAG,IAAArD,kBAAW,EAAC,MAAM;IACzClB,cAAc,CAACU,OAAO,GAAG,IAAI;EAC/B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM8D,MAAM,GAAIC,UAAiC,IAAK;IACpD,MAAMxK,CAAC,GAAGwK,UAAU;IACpB,IAAIxK,CAAC,EAAE;MACJA,CAAC,CAA0ByK,SAAS,GAAG,MAAMpH,QAAQ,CAACqH,aAAa,KAAK1K,CAAC;MACzEA,CAAC,CAA0B2K,KAAK,GAAG,MAAM;QACxC3K,CAAC,CAAC0D,SAAS,GAAG,EAAE;QAChB2E,eAAe,CAACrI,CAAC,EAAE,EAAE,CAAC;MACxB,CAAC;MAED,IAAI0B,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKkJ,SAAS,EAAE;QACvC;QACAvC,eAAe,CAACrI,CAAC,EAAEA,CAAC,CAAC0D,SAAS,CAAC;MACjC;IACF;IAEA,IAAIoC,GAAG,EAAE;MACP,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;QAC3B;QACCA,GAAG,CAA6CW,OAAO,GAAGzG,CAAC;MAC9D,CAAC,MAAM,IAAI,OAAO8F,GAAG,KAAK,UAAU,EAAE;QACnCA,GAAG,CAAiD9F,CAAC,CAAC;MACzD;IACF;IACAiG,MAAM,CAACQ,OAAO,GAAGzG,CAAC;EACpB,CAAC;EAEDgB,eAAe,CACb,SAAS6J,kBAAkBA,CAAA,EAAG;IAC5B,IAAI,CAAC5E,MAAM,CAACQ,OAAO,IAAI2B,cAAc,KAAKnC,MAAM,CAACQ,OAAO,CAAC/C,SAAS,EAAE;MAClE;IACF;IAEA,IAAIhC,KAAK,KAAKkJ,SAAS,EAAE;MACvBxD,SAAS,CAACnB,MAAM,CAACQ,OAAO,EAAER,MAAM,CAACQ,OAAO,CAAC/C,SAAS,EAAEgE,sBAAsB,CAAC;MAC3E;IACF;IAEA,MAAMR,IAAI,GAAGkB,cAAc,KAAKwC,SAAS,GAAGxC,cAAc,GAAG,EAAE;IAC/DhB,SAAS,CAACnB,MAAM,CAACQ,OAAO,EAAES,IAAI,EAAEQ,sBAAsB,EAAER,IAAI,CAAC/E,MAAM,CAAC;IACpEkG,eAAe,CAACpC,MAAM,CAACQ,OAAO,EAAE/E,KAAK,CAAC;EACxC,CAAC,EACD,CAACqD,SAAS,EAAE2C,sBAAsB,EAAEU,cAAc,CACpD,CAAC;EAEDpH,eAAe,CACb,SAAS8J,YAAYA,CAAA,EAAG;IACtB,IAAI,CAAC7E,MAAM,CAACQ,OAAO,IAAI,CAAC1B,SAAS,EAAE;MACjC;IACF;IACA,MAAMgG,aAAa,GAAG/H,gBAAgB,CAACiD,MAAM,CAACQ,OAAO,EAAEmB,WAAW,EAAEzE,aAAa,CAAC;IAClF8C,MAAM,CAACQ,OAAO,CAAChD,KAAK,CAACO,MAAM,GAAG+G,aAAa;IAC3C9E,MAAM,CAACQ,OAAO,CAAChD,KAAK,CAACuH,SAAS,GAAGD,aAAa;EAChD,CAAC,EACD,CAAC5H,aAAa,CAChB,CAAC;EAED,IAAAjC,gBAAS,EAAC,MAAM;IACd;IACA,MAAM+J,wBAAwB,GAAGC,WAAW,CAACvK,SAAS,CAACwK,gBAAgB;IACvED,WAAW,CAACvK,SAAS,CAACwK,gBAAgB,GAAG,UAAUC,SAAS,EAAEC,QAAQ,EAAE;MACtE,IAAID,SAAS,KAAK,OAAO,IAAI,OAAOC,QAAQ,KAAK,UAAU,EAAE;QAC3DJ,wBAAwB,CAACpK,IAAI,CAAC,IAAI,EAAEuK,SAAS,EAAE,UAAU1C,KAAK,EAAE;UAC9D,IAAIzC,MAAM,CAACQ,OAAO,IAAIR,MAAM,CAACQ,OAAO,CAAC6E,QAAQ,CAAC5C,KAAK,CAACvB,MAAc,CAAC,EAAE;YACnE;YACA5G,MAAM,CAACC,cAAc,CAACkI,KAAK,EAAE,QAAQ,EAAE;cAAC6C,QAAQ,EAAE,KAAK;cAAE7J,KAAK,EAAEuE,MAAM,CAACQ;YAAO,CAAC,CAAC;UAClF;UACA4E,QAAQ,CAAC3C,KAAK,CAAC;QACjB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLuC,wBAAwB,CAACpK,IAAI,CAAC,IAAI,EAAEuK,SAAS,EAAEC,QAAQ,CAAC;MAC1D;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAnK,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC+E,MAAM,CAACQ,OAAO,EAAE;MACnB;IACF;IACA;IACA,IAAIZ,SAAS,EAAE;MACbI,MAAM,CAACQ,OAAO,CAAC+E,KAAK,CAAC,CAAC;IACxB;IACA3C,2BAA2B,CAACzC,gBAAgB,CAACK,OAAO,CAAC;EACvD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAvF,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC+E,MAAM,CAACQ,OAAO,IAAI,CAACb,SAAS,IAAKA,SAAS,CAACS,KAAK,KAAKD,gBAAgB,CAACK,OAAO,CAACJ,KAAK,IAAIT,SAAS,CAACU,GAAG,KAAKF,gBAAgB,CAACK,OAAO,CAACH,GAAI,EAAE;MAC3I;IACF;IACAhH,WAAW,CAAC2K,iBAAiB,CAAChE,MAAM,CAACQ,OAAO,EAAEb,SAAS,CAACS,KAAK,EAAET,SAAS,CAACU,GAAG,CAAC;IAC7E4C,eAAe,CAAC,CAAC;EACnB,CAAC,EAAE,CAACtD,SAAS,CAAC,CAAC;EAEf;IAAA;IACE;IACA3G,MAAA,CAAAW,OAAA,CAAA0D,aAAA;MACEwC,GAAG,EAAEyE,MAAO;MACZkB,eAAe,EAAE,CAAC3G,QAAS;MAC3BrB,KAAK,EAAEmE,WAAY;MACnB8D,IAAI,EAAElH,iBAAiB,IAAI,SAAU;MACrC,cAAYF,kBAAmB;MAC/B,mBAAkB,GAAEC,uBAAwB,EAAE;MAC9C,oBAAkBwC,qBAAsB;MACxC,kBAAgBhC,SAAU;MAC1BL,WAAW,EAAEA,WAAW,GAAG,IAAI,GAAG,KAAM;MACxCD,cAAc,EAAEA,cAAe;MAC/B8B,SAAS,EAAEA,SAAU;MACrBoF,SAAS,EAAEvC,cAAe;MAC1BwC,kBAAkB,EAAEtB,gBAAiB;MACrCuB,OAAO,EAAE3C,eAAgB;MACzB4C,OAAO,EAAEvD,kBAAmB;MAC5BnD,OAAO,EAAEiF,WAAY;MACrBhF,OAAO,EAAE2E,WAAY;MACrB/E,MAAM,EAAEkF,UAAW;MACnBjI,WAAW,EAAE6E,qBAAsB;MACnCpB,UAAU,EAAEA,UAAW;MACvBd,GAAG,EAAEA;IAAI,CACV;EAAC;AAEN,CACF,CAAC;AAED,MAAM3B,MAAM,GAAG2D,uBAAU,CAACkF,MAAM,CAAC;EAC/BlE,kBAAkB,EAAE;IAClBmE,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;EACDxE,mBAAmB,EAAE;IACnByE,OAAO,EAAE,IAAI;IACbC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAhN,OAAA,GAEYuE,iBAAiB"}
@@ -5,47 +5,52 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getCurrentCursorPosition = getCurrentCursorPosition;
7
7
  exports.moveCursorToEnd = moveCursorToEnd;
8
+ exports.removeSelection = removeSelection;
8
9
  exports.setCursorPosition = setCursorPosition;
9
- function createRange(node, targetPosition, ignoreNewLines = false) {
10
- const range = document.createRange();
11
- range.selectNode(node);
12
- let pos = 0;
13
- const stack = [node];
14
- while (stack.length > 0) {
15
- const current = stack.pop();
16
- if (!current) {
17
- break;
10
+ function findTextNodes(textNodes, node) {
11
+ if (node.nodeType === Node.TEXT_NODE) {
12
+ textNodes.push(node);
13
+ } else {
14
+ for (let i = 0, length = node.childNodes.length; i < length; ++i) {
15
+ const childNode = node.childNodes[i];
16
+ if (childNode) {
17
+ findTextNodes(textNodes, childNode);
18
+ }
18
19
  }
19
- if (current.nodeType === Node.TEXT_NODE || current.nodeName === 'BR') {
20
- const textContentLength = current.textContent ? current.textContent.length : 0;
21
- const len = current.nodeName === 'BR' ? 1 : textContentLength;
22
- if (pos + len >= targetPosition) {
23
- if (current.nodeName === 'BR') {
24
- range.setStartAfter(current);
25
- current.scrollIntoView();
26
- } else {
27
- range.setStart(current, targetPosition - pos);
20
+ }
21
+ }
22
+ function setCursorPosition(target, start, end = null) {
23
+ const range = document.createRange();
24
+ range.selectNodeContents(target);
25
+ const textNodes = [];
26
+ findTextNodes(textNodes, target);
27
+ let charCount = 0;
28
+ let startNode = null;
29
+ let endNode = null;
30
+ const n = textNodes.length;
31
+ for (let i = 0; i < n; ++i) {
32
+ const textNode = textNodes[i];
33
+ if (textNode) {
34
+ const nextCharCount = charCount + textNode.length;
35
+ if (!startNode && start >= charCount && (start <= nextCharCount || start === nextCharCount && i < n - 1)) {
36
+ startNode = textNode;
37
+ range.setStart(textNode, start - charCount);
38
+ if (!end) {
39
+ break;
28
40
  }
29
- return range;
30
41
  }
31
- pos += len;
32
- } else if (current.childNodes && current.childNodes.length > 0) {
33
- for (let i = current.childNodes.length - 1; i >= 0; i--) {
34
- const currentNode = current.childNodes[i];
35
- if (currentNode && (!ignoreNewLines || ignoreNewLines && currentNode.nodeName !== 'BR')) {
36
- stack.push(currentNode);
37
- }
42
+ if (end && !endNode && end >= charCount && (end <= nextCharCount || end === nextCharCount && i < n - 1)) {
43
+ endNode = textNode;
44
+ range.setEnd(textNode, end - charCount);
38
45
  }
46
+ charCount = nextCharCount;
39
47
  }
40
48
  }
41
- range.setStart(node, node.childNodes.length);
42
- return range;
43
- }
44
- function setCursorPosition(target, targetPosition, ignoreNewLines = false) {
45
- const range = createRange(target, targetPosition, ignoreNewLines);
49
+ if (!end) {
50
+ range.collapse(true);
51
+ }
46
52
  const selection = window.getSelection();
47
53
  if (selection) {
48
- range.collapse(true);
49
54
  selection.removeAllRanges();
50
55
  selection.addRange(range);
51
56
  }
@@ -60,31 +65,26 @@ function moveCursorToEnd(target) {
60
65
  selection.addRange(range);
61
66
  }
62
67
  }
63
- function getIndexedPosition(target, range, isStart) {
64
- const marker = document.createTextNode('\0');
65
- const rangeClone = range.cloneRange();
66
- rangeClone.collapse(isStart);
67
- rangeClone.insertNode(marker);
68
- const position = target.innerText.indexOf('\0');
69
- if (marker.parentNode) {
70
- marker.parentNode.removeChild(marker);
71
- }
72
- return position;
73
- }
74
68
  function getCurrentCursorPosition(target) {
75
- const selection = document.getSelection();
76
- if (!selection || selection.rangeCount === 0) {
77
- return {
78
- start: target.innerText.length,
79
- end: target.innerText.length
80
- };
69
+ const selection = window.getSelection();
70
+ if (!selection || selection && selection.rangeCount === 0) {
71
+ return null;
81
72
  }
82
73
  const range = selection.getRangeAt(0);
83
- const start = getIndexedPosition(target, range, true);
84
- const end = getIndexedPosition(target, range, false);
74
+ const preSelectionRange = range.cloneRange();
75
+ preSelectionRange.selectNodeContents(target);
76
+ preSelectionRange.setEnd(range.startContainer, range.startOffset);
77
+ const start = preSelectionRange.toString().length;
78
+ const end = start + range.toString().length;
85
79
  return {
86
80
  start,
87
81
  end
88
82
  };
89
83
  }
84
+ function removeSelection() {
85
+ const selection = window.getSelection();
86
+ if (selection) {
87
+ selection.removeAllRanges();
88
+ }
89
+ }
90
90
  //# sourceMappingURL=cursorUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createRange","node","targetPosition","ignoreNewLines","range","document","selectNode","pos","stack","length","current","pop","nodeType","Node","TEXT_NODE","nodeName","textContentLength","textContent","len","setStartAfter","scrollIntoView","setStart","childNodes","i","currentNode","push","setCursorPosition","target","selection","window","getSelection","collapse","removeAllRanges","addRange","moveCursorToEnd","getIndexedPosition","isStart","marker","createTextNode","rangeClone","cloneRange","insertNode","position","innerText","indexOf","parentNode","removeChild","getCurrentCursorPosition","rangeCount","start","end","getRangeAt"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["findTextNodes","textNodes","node","nodeType","Node","TEXT_NODE","push","i","length","childNodes","childNode","setCursorPosition","target","start","end","range","document","createRange","selectNodeContents","charCount","startNode","endNode","n","textNode","nextCharCount","setStart","setEnd","collapse","selection","window","getSelection","removeAllRanges","addRange","moveCursorToEnd","getCurrentCursorPosition","rangeCount","getRangeAt","preSelectionRange","cloneRange","startContainer","startOffset","toString","removeSelection"],"sourceRoot":"../../../src","sources":["web/cursorUtils.ts"],"mappings":"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"}
@@ -151,12 +151,13 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
151
151
  addSubstringAsTextNode(root, text, lastRangeEndIndex, textLength);
152
152
  return root;
153
153
  }
154
- function parseText(target, text, curosrPositionIndex, markdownStyle = {}, disableNewLinesInCursorPositioning = false, alwaysMoveCursorToTheEnd = false) {
154
+ function parseText(target, text, curosrPositionIndex, markdownStyle = {}, alwaysMoveCursorToTheEnd = false) {
155
155
  const targetElement = target;
156
156
  let cursorPosition = curosrPositionIndex;
157
157
  const isFocused = document.activeElement === target;
158
158
  if (isFocused && curosrPositionIndex === null) {
159
- cursorPosition = CursorUtils.getCurrentCursorPosition(target).start;
159
+ const selection = CursorUtils.getCurrentCursorPosition(target);
160
+ cursorPosition = selection ? selection.end : null;
160
161
  }
161
162
  const ranges = global.parseExpensiMarkToRanges(text);
162
163
  const markdownRanges = ranges;
@@ -168,10 +169,12 @@ function parseText(target, text, curosrPositionIndex, markdownStyle = {}, disabl
168
169
  const dom = parseRangesToHTMLNodes(text, markdownRanges, markdownStyle);
169
170
  target.appendChild(dom);
170
171
  }
171
- if (alwaysMoveCursorToTheEnd) {
172
- CursorUtils.moveCursorToEnd(target);
173
- } else if (isFocused && cursorPosition !== null) {
174
- CursorUtils.setCursorPosition(target, cursorPosition, disableNewLinesInCursorPositioning);
172
+ if (isFocused) {
173
+ if (alwaysMoveCursorToTheEnd || cursorPosition === null) {
174
+ CursorUtils.moveCursorToEnd(target);
175
+ } else if (cursorPosition !== null) {
176
+ CursorUtils.setCursorPosition(target, cursorPosition);
177
+ }
175
178
  }
176
179
  return {
177
180
  text: target.innerText,
@@ -1 +1 @@
1
- {"version":3,"names":["CursorUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","addStyling","targetElement","type","markdownStyle","node","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","global","parseExpensiMarkToRanges","markdownRanges","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["CursorUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","addStyling","targetElement","type","markdownStyle","node","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","selection","getCurrentCursorPosition","end","global","parseExpensiMarkToRanges","markdownRanges","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}