react-native-enriched 0.4.0 → 0.5.0

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.
Files changed (54) hide show
  1. package/README.md +27 -2
  2. package/ReactNativeEnriched.podspec +5 -1
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +12 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +4 -0
  5. package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.cpp +149 -0
  6. package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.h +146 -0
  7. package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/Props.cpp +16 -1
  8. package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/Props.h +46 -0
  9. package/android/src/main/java/com/swmansion/enriched/common/GumboNormalizer.kt +5 -0
  10. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +3 -2
  11. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnorderedListSpan.kt +2 -1
  12. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputView.kt +166 -20
  13. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputViewManager.kt +32 -0
  14. package/android/src/main/java/com/swmansion/enriched/textinput/MeasurementStore.kt +19 -2
  15. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnContextMenuItemPressEvent.kt +35 -0
  16. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedLineHeightSpan.kt +44 -0
  17. package/android/src/main/java/com/swmansion/enriched/textinput/styles/ParagraphStyles.kt +19 -14
  18. package/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt +16 -0
  19. package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpanState.kt +18 -12
  20. package/android/src/main/new_arch/CMakeLists.txt +9 -13
  21. package/android/src/main/new_arch/GumboNormalizerJni.cpp +14 -0
  22. package/android/src/main/new_arch/react/renderer/components/ReactNativeEnrichedSpec/conversions.h +2 -21
  23. package/cpp/CMakeLists.txt +50 -0
  24. package/cpp/GumboParser/GumboParser.h +34043 -0
  25. package/cpp/README.md +59 -0
  26. package/cpp/parser/GumboNormalizer.c +915 -0
  27. package/cpp/parser/GumboParser.cpp +16 -0
  28. package/cpp/parser/GumboParser.hpp +23 -0
  29. package/cpp/tests/GumboParserTest.cpp +457 -0
  30. package/ios/EnrichedTextInputView.h +2 -0
  31. package/ios/EnrichedTextInputView.mm +160 -2
  32. package/ios/config/InputConfig.h +3 -0
  33. package/ios/config/InputConfig.mm +15 -0
  34. package/ios/extensions/LayoutManagerExtension.mm +34 -11
  35. package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.cpp +149 -0
  36. package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.h +146 -0
  37. package/ios/generated/ReactNativeEnrichedSpec/Props.cpp +16 -1
  38. package/ios/generated/ReactNativeEnrichedSpec/Props.h +46 -0
  39. package/ios/generated/ReactNativeEnrichedSpec/RCTComponentViewHelpers.h +29 -0
  40. package/ios/inputParser/InputParser.mm +27 -0
  41. package/ios/interfaces/ImageAttachment.mm +29 -0
  42. package/lib/module/EnrichedTextInput.js +43 -30
  43. package/lib/module/EnrichedTextInput.js.map +1 -1
  44. package/lib/module/spec/EnrichedTextInputNativeComponent.ts +118 -22
  45. package/lib/typescript/src/EnrichedTextInput.d.ts +24 -6
  46. package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
  47. package/lib/typescript/src/index.d.ts +1 -1
  48. package/lib/typescript/src/index.d.ts.map +1 -1
  49. package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts +111 -21
  50. package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -1
  51. package/package.json +5 -5
  52. package/src/EnrichedTextInput.tsx +79 -40
  53. package/src/index.tsx +0 -1
  54. package/src/spec/EnrichedTextInputNativeComponent.ts +118 -22
@@ -32,14 +32,17 @@ EnrichedTextInputViewProps::EnrichedTextInputViewProps(
32
32
  htmlStyle(convertRawProp(context, rawProps, "htmlStyle", sourceProps.htmlStyle, {})),
33
33
  scrollEnabled(convertRawProp(context, rawProps, "scrollEnabled", sourceProps.scrollEnabled, {false})),
34
34
  linkRegex(convertRawProp(context, rawProps, "linkRegex", sourceProps.linkRegex, {})),
35
+ contextMenuItems(convertRawProp(context, rawProps, "contextMenuItems", sourceProps.contextMenuItems, {})),
35
36
  color(convertRawProp(context, rawProps, "color", sourceProps.color, {})),
36
37
  fontSize(convertRawProp(context, rawProps, "fontSize", sourceProps.fontSize, {0.0})),
38
+ lineHeight(convertRawProp(context, rawProps, "lineHeight", sourceProps.lineHeight, {0.0})),
37
39
  fontFamily(convertRawProp(context, rawProps, "fontFamily", sourceProps.fontFamily, {})),
38
40
  fontWeight(convertRawProp(context, rawProps, "fontWeight", sourceProps.fontWeight, {})),
39
41
  fontStyle(convertRawProp(context, rawProps, "fontStyle", sourceProps.fontStyle, {})),
40
42
  isOnChangeHtmlSet(convertRawProp(context, rawProps, "isOnChangeHtmlSet", sourceProps.isOnChangeHtmlSet, {false})),
41
43
  isOnChangeTextSet(convertRawProp(context, rawProps, "isOnChangeTextSet", sourceProps.isOnChangeTextSet, {false})),
42
- androidExperimentalSynchronousEvents(convertRawProp(context, rawProps, "androidExperimentalSynchronousEvents", sourceProps.androidExperimentalSynchronousEvents, {false})) {}
44
+ androidExperimentalSynchronousEvents(convertRawProp(context, rawProps, "androidExperimentalSynchronousEvents", sourceProps.androidExperimentalSynchronousEvents, {false})),
45
+ useHtmlNormalizer(convertRawProp(context, rawProps, "useHtmlNormalizer", sourceProps.useHtmlNormalizer, {false})) {}
43
46
 
44
47
  #ifdef RN_SERIALIZABLE_STATE
45
48
  ComponentName EnrichedTextInputViewProps::getDiffPropsImplementationTarget() const {
@@ -105,6 +108,10 @@ folly::dynamic EnrichedTextInputViewProps::getDiffProps(
105
108
  result["linkRegex"] = toDynamic(linkRegex);
106
109
  }
107
110
 
111
+ if (contextMenuItems != oldProps->contextMenuItems) {
112
+ result["contextMenuItems"] = toDynamic(contextMenuItems);
113
+ }
114
+
108
115
  if (color != oldProps->color) {
109
116
  result["color"] = *color;
110
117
  }
@@ -113,6 +120,10 @@ folly::dynamic EnrichedTextInputViewProps::getDiffProps(
113
120
  result["fontSize"] = fontSize;
114
121
  }
115
122
 
123
+ if ((lineHeight != oldProps->lineHeight) && !(std::isnan(lineHeight) && std::isnan(oldProps->lineHeight))) {
124
+ result["lineHeight"] = lineHeight;
125
+ }
126
+
116
127
  if (fontFamily != oldProps->fontFamily) {
117
128
  result["fontFamily"] = fontFamily;
118
129
  }
@@ -136,6 +147,10 @@ folly::dynamic EnrichedTextInputViewProps::getDiffProps(
136
147
  if (androidExperimentalSynchronousEvents != oldProps->androidExperimentalSynchronousEvents) {
137
148
  result["androidExperimentalSynchronousEvents"] = androidExperimentalSynchronousEvents;
138
149
  }
150
+
151
+ if (useHtmlNormalizer != oldProps->useHtmlNormalizer) {
152
+ result["useHtmlNormalizer"] = useHtmlNormalizer;
153
+ }
139
154
  return result;
140
155
  }
141
156
  #endif
@@ -746,6 +746,49 @@ static inline folly::dynamic toDynamic(const EnrichedTextInputViewLinkRegexStruc
746
746
  return value.toDynamic();
747
747
  }
748
748
  #endif
749
+
750
+ struct EnrichedTextInputViewContextMenuItemsStruct {
751
+ std::string text{};
752
+
753
+ #ifdef RN_SERIALIZABLE_STATE
754
+ bool operator==(const EnrichedTextInputViewContextMenuItemsStruct&) const = default;
755
+
756
+ folly::dynamic toDynamic() const {
757
+ folly::dynamic result = folly::dynamic::object();
758
+ result["text"] = text;
759
+ return result;
760
+ }
761
+ #endif
762
+ };
763
+
764
+ static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewContextMenuItemsStruct &result) {
765
+ auto map = (std::unordered_map<std::string, RawValue>)value;
766
+
767
+ auto tmp_text = map.find("text");
768
+ if (tmp_text != map.end()) {
769
+ fromRawValue(context, tmp_text->second, result.text);
770
+ }
771
+ }
772
+
773
+ static inline std::string toString(const EnrichedTextInputViewContextMenuItemsStruct &value) {
774
+ return "[Object EnrichedTextInputViewContextMenuItemsStruct]";
775
+ }
776
+
777
+ #ifdef RN_SERIALIZABLE_STATE
778
+ static inline folly::dynamic toDynamic(const EnrichedTextInputViewContextMenuItemsStruct &value) {
779
+ return value.toDynamic();
780
+ }
781
+ #endif
782
+
783
+ static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, std::vector<EnrichedTextInputViewContextMenuItemsStruct> &result) {
784
+ auto items = (std::vector<RawValue>)value;
785
+ for (const auto &item : items) {
786
+ EnrichedTextInputViewContextMenuItemsStruct newItem;
787
+ fromRawValue(context, item, newItem);
788
+ result.emplace_back(newItem);
789
+ }
790
+ }
791
+
749
792
  class EnrichedTextInputViewProps final : public ViewProps {
750
793
  public:
751
794
  EnrichedTextInputViewProps() = default;
@@ -765,14 +808,17 @@ class EnrichedTextInputViewProps final : public ViewProps {
765
808
  EnrichedTextInputViewHtmlStyleStruct htmlStyle{};
766
809
  bool scrollEnabled{false};
767
810
  EnrichedTextInputViewLinkRegexStruct linkRegex{};
811
+ std::vector<EnrichedTextInputViewContextMenuItemsStruct> contextMenuItems{};
768
812
  SharedColor color{};
769
813
  Float fontSize{0.0};
814
+ Float lineHeight{0.0};
770
815
  std::string fontFamily{};
771
816
  std::string fontWeight{};
772
817
  std::string fontStyle{};
773
818
  bool isOnChangeHtmlSet{false};
774
819
  bool isOnChangeTextSet{false};
775
820
  bool androidExperimentalSynchronousEvents{false};
821
+ bool useHtmlNormalizer{false};
776
822
 
777
823
  #ifdef RN_SERIALIZABLE_STATE
778
824
  ComponentName getDiffPropsImplementationTarget() const override;
@@ -35,6 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
35
35
  - (void)toggleUnorderedList;
36
36
  - (void)toggleCheckboxList:(BOOL)checked;
37
37
  - (void)addLink:(NSInteger)start end:(NSInteger)end text:(NSString *)text url:(NSString *)url;
38
+ - (void)removeLink:(NSInteger)start end:(NSInteger)end;
38
39
  - (void)addImage:(NSString *)uri width:(float)width height:(float)height;
39
40
  - (void)startMention:(NSString *)indicator;
40
41
  - (void)addMention:(NSString *)indicator text:(NSString *)text payload:(NSString *)payload;
@@ -396,6 +397,34 @@ NSObject *arg3 = args[3];
396
397
  return;
397
398
  }
398
399
 
400
+ if ([commandName isEqualToString:@"removeLink"]) {
401
+ #if RCT_DEBUG
402
+ if ([args count] != 2) {
403
+ RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"EnrichedTextInputView", commandName, (int)[args count], 2);
404
+ return;
405
+ }
406
+ #endif
407
+
408
+ NSObject *arg0 = args[0];
409
+ #if RCT_DEBUG
410
+ if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSNumber class], @"number", @"EnrichedTextInputView", commandName, @"1st")) {
411
+ return;
412
+ }
413
+ #endif
414
+ NSInteger start = [(NSNumber *)arg0 intValue];
415
+
416
+ NSObject *arg1 = args[1];
417
+ #if RCT_DEBUG
418
+ if (!RCTValidateTypeOfViewCommandArgument(arg1, [NSNumber class], @"number", @"EnrichedTextInputView", commandName, @"2nd")) {
419
+ return;
420
+ }
421
+ #endif
422
+ NSInteger end = [(NSNumber *)arg1 intValue];
423
+
424
+ [componentView removeLink:start end:end];
425
+ return;
426
+ }
427
+
399
428
  if ([commandName isEqualToString:@"addImage"]) {
400
429
  #if RCT_DEBUG
401
430
  if ([args count] != 3) {
@@ -5,6 +5,8 @@
5
5
  #import "TextInsertionUtils.h"
6
6
  #import "UIView+React.h"
7
7
 
8
+ #include "GumboParser.hpp"
9
+
8
10
  @implementation InputParser {
9
11
  EnrichedTextInputView *_input;
10
12
  NSInteger _precedingImageCount;
@@ -721,6 +723,23 @@
721
723
  [_input anyTextMayHaveBeenModified];
722
724
  }
723
725
 
726
+ #pragma mark - External HTML normalization
727
+
728
+ /**
729
+ * Normalizes external HTML (from Google Docs, Word, web pages, etc.) into our
730
+ * canonical tag subset using the Gumbo-based C++ normalizer.
731
+ *
732
+ * Converts: <strong> → <b>, <em> → <i>, <span style="font-weight:bold"> → <b>,
733
+ * strips unknown tags while preserving text
734
+ */
735
+ - (NSString *_Nullable)normalizeExternalHtml:(NSString *_Nonnull)html {
736
+ std::string result =
737
+ GumboParser::normalizeHtml(std::string([html UTF8String]));
738
+ if (result.empty())
739
+ return nil;
740
+ return [NSString stringWithUTF8String:result.c_str()];
741
+ }
742
+
724
743
  - (NSString *_Nullable)initiallyProcessHtml:(NSString *_Nonnull)html {
725
744
  NSString *htmlWithoutSpaces = [self stripExtraWhiteSpacesAndNewlines:html];
726
745
  NSString *fixedHtml = nullptr;
@@ -745,6 +764,14 @@
745
764
  withString:@""];
746
765
  fixedHtml = [fixedHtml stringByReplacingOccurrencesOfString:@"</html>"
747
766
  withString:@""];
767
+ } else if (_input->useHtmlNormalizer) {
768
+ // External HTML (from Google Docs, Word, web pages, etc.)
769
+ // Run through the Gumbo-based normalizer to convert arbitrary HTML
770
+ // into our canonical tag subset.
771
+ NSString *normalized = [self normalizeExternalHtml:html];
772
+ if (normalized != nil) {
773
+ fixedHtml = normalized;
774
+ }
748
775
  } else {
749
776
  // in other case we are most likely working with some external html - try
750
777
  // getting the styles from between body tags
@@ -19,6 +19,35 @@
19
19
  return self;
20
20
  }
21
21
 
22
+ - (CGRect)attachmentBoundsForTextContainer:(NSTextContainer *)textContainer
23
+ proposedLineFragment:(CGRect)lineFrag
24
+ glyphPosition:(CGPoint)position
25
+ characterIndex:(NSUInteger)charIndex {
26
+ CGRect baseBounds = self.bounds;
27
+
28
+ if (!textContainer.layoutManager.textStorage ||
29
+ charIndex >= textContainer.layoutManager.textStorage.length) {
30
+ return baseBounds;
31
+ }
32
+
33
+ UIFont *font =
34
+ [textContainer.layoutManager.textStorage attribute:NSFontAttributeName
35
+ atIndex:charIndex
36
+ effectiveRange:NULL];
37
+ if (!font) {
38
+ return baseBounds;
39
+ }
40
+
41
+ // Extend the layout bounds below the baseline by the font's descender.
42
+ // Without this, a line containing only the attachment has no descender space
43
+ // below the baseline, but adding a text character introduces it — causing
44
+ // the line height to jump. By reserving descender space upfront the line
45
+ // height stays consistent regardless of whether text is present.
46
+ CGFloat descender = font.descender;
47
+ return CGRectMake(baseBounds.origin.x, descender, baseBounds.size.width,
48
+ baseBounds.size.height - descender);
49
+ }
50
+
22
51
  - (void)loadAsync {
23
52
  NSURL *url = [NSURL URLWithString:self.uri];
24
53
  if (!url) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useEffect, useImperativeHandle, useMemo, useRef } from 'react';
4
+ import { useCallback } from 'react';
4
5
  import EnrichedTextInputNativeComponent, { Commands } from './spec/EnrichedTextInputNativeComponent';
5
6
  import { normalizeHtmlStyle } from "./utils/normalizeHtmlStyle.js";
6
7
  import { toNativeRegexConfig } from "./utils/regexParser.js";
@@ -28,7 +29,6 @@ export const EnrichedTextInput = ({
28
29
  onChangeText,
29
30
  onChangeHtml,
30
31
  onChangeState,
31
- onChangeStateDeprecated,
32
32
  onLinkDetected,
33
33
  onMentionDetected,
34
34
  onStartMention,
@@ -36,13 +36,48 @@ export const EnrichedTextInput = ({
36
36
  onEndMention,
37
37
  onChangeSelection,
38
38
  onKeyPress,
39
+ contextMenuItems,
39
40
  androidExperimentalSynchronousEvents = false,
41
+ useHtmlNormalizer = false,
40
42
  scrollEnabled = true,
41
43
  ...rest
42
44
  }) => {
43
45
  const nativeRef = useRef(null);
44
46
  const nextHtmlRequestId = useRef(1);
45
47
  const pendingHtmlRequests = useRef(new Map());
48
+
49
+ // Store onPress callbacks in a ref so native only receives serializable data
50
+ const contextMenuCallbacksRef = useRef(new Map());
51
+ useEffect(() => {
52
+ const callbacksMap = new Map();
53
+ if (contextMenuItems) {
54
+ for (const item of contextMenuItems) {
55
+ callbacksMap.set(item.text, item.onPress);
56
+ }
57
+ }
58
+ contextMenuCallbacksRef.current = callbacksMap;
59
+ }, [contextMenuItems]);
60
+ const nativeContextMenuItems = useMemo(() => contextMenuItems?.filter(item => item.visible !== false).map(item => ({
61
+ text: item.text
62
+ })), [contextMenuItems]);
63
+ const handleContextMenuItemPress = useCallback(e => {
64
+ const {
65
+ itemText,
66
+ selectedText,
67
+ selectionStart,
68
+ selectionEnd,
69
+ styleState
70
+ } = e.nativeEvent;
71
+ const callback = contextMenuCallbacksRef.current.get(itemText);
72
+ callback?.({
73
+ text: selectedText,
74
+ selection: {
75
+ start: selectionStart,
76
+ end: selectionEnd
77
+ },
78
+ styleState
79
+ });
80
+ }, []);
46
81
  useEffect(() => {
47
82
  const pendingRequests = pendingHtmlRequests.current;
48
83
  return () => {
@@ -139,6 +174,9 @@ export const EnrichedTextInput = ({
139
174
  setLink: (start, end, text, url) => {
140
175
  Commands.addLink(nullthrows(nativeRef.current), start, end, text, url);
141
176
  },
177
+ removeLink: (start, end) => {
178
+ Commands.removeLink(nullthrows(nativeRef.current), start, end);
179
+ },
142
180
  setImage: (uri, width, height) => {
143
181
  Commands.addImage(nullthrows(nativeRef.current), uri, width, height);
144
182
  },
@@ -214,34 +252,6 @@ export const EnrichedTextInput = ({
214
252
  }
215
253
  pendingHtmlRequests.current.delete(requestId);
216
254
  };
217
- const onChangeStateWithDeprecated = e => {
218
- onChangeState?.(e);
219
- // TODO: remove in 0.5.0 release
220
- onChangeStateDeprecated?.({
221
- ...e,
222
- nativeEvent: {
223
- isBold: e.nativeEvent.bold.isActive,
224
- isItalic: e.nativeEvent.italic.isActive,
225
- isUnderline: e.nativeEvent.underline.isActive,
226
- isStrikeThrough: e.nativeEvent.strikeThrough.isActive,
227
- isInlineCode: e.nativeEvent.inlineCode.isActive,
228
- isH1: e.nativeEvent.h1.isActive,
229
- isH2: e.nativeEvent.h2.isActive,
230
- isH3: e.nativeEvent.h3.isActive,
231
- isH4: e.nativeEvent.h4.isActive,
232
- isH5: e.nativeEvent.h5.isActive,
233
- isH6: e.nativeEvent.h6.isActive,
234
- isCodeBlock: e.nativeEvent.codeBlock.isActive,
235
- isBlockQuote: e.nativeEvent.blockQuote.isActive,
236
- isOrderedList: e.nativeEvent.orderedList.isActive,
237
- isUnorderedList: e.nativeEvent.unorderedList.isActive,
238
- isCheckboxList: e.nativeEvent.checkboxList.isActive,
239
- isLink: e.nativeEvent.link.isActive,
240
- isImage: e.nativeEvent.image.isActive,
241
- isMention: e.nativeEvent.mention.isActive
242
- }
243
- });
244
- };
245
255
  return /*#__PURE__*/_jsx(EnrichedTextInputNativeComponent, {
246
256
  ref: nativeRef,
247
257
  mentionIndicators: mentionIndicators,
@@ -262,14 +272,17 @@ export const EnrichedTextInput = ({
262
272
  onChangeHtml: onChangeHtml,
263
273
  isOnChangeHtmlSet: onChangeHtml !== undefined,
264
274
  isOnChangeTextSet: onChangeText !== undefined,
265
- onChangeState: onChangeStateWithDeprecated,
275
+ onChangeState: onChangeState,
266
276
  onLinkDetected: handleLinkDetected,
267
277
  onMentionDetected: handleMentionDetected,
268
278
  onMention: handleMentionEvent,
269
279
  onChangeSelection: onChangeSelection,
270
280
  onRequestHtmlResult: handleRequestHtmlResult,
271
281
  onInputKeyPress: onKeyPress,
282
+ contextMenuItems: nativeContextMenuItems,
283
+ onContextMenuItemPress: handleContextMenuItemPress,
272
284
  androidExperimentalSynchronousEvents: androidExperimentalSynchronousEvents,
285
+ useHtmlNormalizer: useHtmlNormalizer,
273
286
  scrollEnabled: scrollEnabled,
274
287
  ...rest
275
288
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useImperativeHandle","useMemo","useRef","EnrichedTextInputNativeComponent","Commands","normalizeHtmlStyle","toNativeRegexConfig","nullthrows","jsx","_jsx","warnMentionIndicators","indicator","console","warn","EnrichedTextInput","ref","autoFocus","editable","mentionIndicators","defaultValue","placeholder","placeholderTextColor","cursorColor","selectionColor","style","autoCapitalize","htmlStyle","linkRegex","_linkRegex","onFocus","onBlur","onChangeText","onChangeHtml","onChangeState","onChangeStateDeprecated","onLinkDetected","onMentionDetected","onStartMention","onChangeMention","onEndMention","onChangeSelection","onKeyPress","androidExperimentalSynchronousEvents","scrollEnabled","rest","nativeRef","nextHtmlRequestId","pendingHtmlRequests","Map","pendingRequests","current","forEach","reject","Error","clear","normalizedHtmlStyle","measureInWindow","callback","measure","measureLayout","relativeToNativeComponentRef","onSuccess","onFail","setNativeProps","nativeProps","focus","blur","setValue","value","getHTML","Promise","resolve","requestId","set","requestHTML","toggleBold","toggleItalic","toggleUnderline","toggleStrikeThrough","toggleInlineCode","toggleH1","toggleH2","toggleH3","toggleH4","toggleH5","toggleH6","toggleCodeBlock","toggleBlockQuote","toggleOrderedList","toggleUnorderedList","toggleCheckboxList","checked","setLink","start","end","text","url","addLink","setImage","uri","width","height","addImage","setMention","attributes","parsedAttributes","JSON","stringify","addMention","startMention","includes","setSelection","handleMentionEvent","e","mentionText","nativeEvent","mentionIndicator","handleLinkDetected","handleMentionDetected","payload","parse","handleRequestHtmlResult","html","pending","get","delete","onChangeStateWithDeprecated","isBold","bold","isActive","isItalic","italic","isUnderline","underline","isStrikeThrough","strikeThrough","isInlineCode","inlineCode","isH1","h1","isH2","h2","isH3","h3","isH4","h4","isH5","h5","isH6","h6","isCodeBlock","codeBlock","isBlockQuote","blockQuote","isOrderedList","orderedList","isUnorderedList","unorderedList","isCheckboxList","checkboxList","isLink","link","isImage","image","isMention","mention","onInputFocus","onInputBlur","isOnChangeHtmlSet","undefined","isOnChangeTextSet","onMention","onRequestHtmlResult","onInputKeyPress"],"sourceRoot":"../../src","sources":["EnrichedTextInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useImperativeHandle","useMemo","useRef","useCallback","EnrichedTextInputNativeComponent","Commands","normalizeHtmlStyle","toNativeRegexConfig","nullthrows","jsx","_jsx","warnMentionIndicators","indicator","console","warn","EnrichedTextInput","ref","autoFocus","editable","mentionIndicators","defaultValue","placeholder","placeholderTextColor","cursorColor","selectionColor","style","autoCapitalize","htmlStyle","linkRegex","_linkRegex","onFocus","onBlur","onChangeText","onChangeHtml","onChangeState","onLinkDetected","onMentionDetected","onStartMention","onChangeMention","onEndMention","onChangeSelection","onKeyPress","contextMenuItems","androidExperimentalSynchronousEvents","useHtmlNormalizer","scrollEnabled","rest","nativeRef","nextHtmlRequestId","pendingHtmlRequests","Map","contextMenuCallbacksRef","callbacksMap","item","set","text","onPress","current","nativeContextMenuItems","filter","visible","map","handleContextMenuItemPress","e","itemText","selectedText","selectionStart","selectionEnd","styleState","nativeEvent","callback","get","selection","start","end","pendingRequests","forEach","reject","Error","clear","normalizedHtmlStyle","measureInWindow","measure","measureLayout","relativeToNativeComponentRef","onSuccess","onFail","setNativeProps","nativeProps","focus","blur","setValue","value","getHTML","Promise","resolve","requestId","requestHTML","toggleBold","toggleItalic","toggleUnderline","toggleStrikeThrough","toggleInlineCode","toggleH1","toggleH2","toggleH3","toggleH4","toggleH5","toggleH6","toggleCodeBlock","toggleBlockQuote","toggleOrderedList","toggleUnorderedList","toggleCheckboxList","checked","setLink","url","addLink","removeLink","setImage","uri","width","height","addImage","setMention","attributes","parsedAttributes","JSON","stringify","addMention","startMention","includes","setSelection","handleMentionEvent","mentionText","mentionIndicator","handleLinkDetected","handleMentionDetected","payload","parse","handleRequestHtmlResult","html","pending","delete","onInputFocus","onInputBlur","isOnChangeHtmlSet","undefined","isOnChangeTextSet","onMention","onRequestHtmlResult","onInputKeyPress","onContextMenuItemPress"],"sourceRoot":"../../src","sources":["EnrichedTextInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -124,28 +124,6 @@ export interface OnChangeStateEvent {
124
124
  };
125
125
  }
126
126
 
127
- export interface OnChangeStateDeprecatedEvent {
128
- isBold: boolean;
129
- isItalic: boolean;
130
- isUnderline: boolean;
131
- isStrikeThrough: boolean;
132
- isInlineCode: boolean;
133
- isH1: boolean;
134
- isH2: boolean;
135
- isH3: boolean;
136
- isH4: boolean;
137
- isH5: boolean;
138
- isH6: boolean;
139
- isCodeBlock: boolean;
140
- isBlockQuote: boolean;
141
- isOrderedList: boolean;
142
- isUnorderedList: boolean;
143
- isCheckboxList: boolean;
144
- isLink: boolean;
145
- isImage: boolean;
146
- isMention: boolean;
147
- }
148
-
149
127
  export interface OnLinkDetected {
150
128
  text: string;
151
129
  url: string;
@@ -185,6 +163,114 @@ export interface OnKeyPressEvent {
185
163
  key: string;
186
164
  }
187
165
 
166
+ export interface ContextMenuItemConfig {
167
+ text: string;
168
+ }
169
+
170
+ export interface OnContextMenuItemPressEvent {
171
+ itemText: string;
172
+ selectedText: string;
173
+ selectionStart: Int32;
174
+ selectionEnd: Int32;
175
+ styleState: {
176
+ bold: {
177
+ isActive: boolean;
178
+ isConflicting: boolean;
179
+ isBlocking: boolean;
180
+ };
181
+ italic: {
182
+ isActive: boolean;
183
+ isConflicting: boolean;
184
+ isBlocking: boolean;
185
+ };
186
+ underline: {
187
+ isActive: boolean;
188
+ isConflicting: boolean;
189
+ isBlocking: boolean;
190
+ };
191
+ strikeThrough: {
192
+ isActive: boolean;
193
+ isConflicting: boolean;
194
+ isBlocking: boolean;
195
+ };
196
+ inlineCode: {
197
+ isActive: boolean;
198
+ isConflicting: boolean;
199
+ isBlocking: boolean;
200
+ };
201
+ h1: {
202
+ isActive: boolean;
203
+ isConflicting: boolean;
204
+ isBlocking: boolean;
205
+ };
206
+ h2: {
207
+ isActive: boolean;
208
+ isConflicting: boolean;
209
+ isBlocking: boolean;
210
+ };
211
+ h3: {
212
+ isActive: boolean;
213
+ isConflicting: boolean;
214
+ isBlocking: boolean;
215
+ };
216
+ h4: {
217
+ isActive: boolean;
218
+ isConflicting: boolean;
219
+ isBlocking: boolean;
220
+ };
221
+ h5: {
222
+ isActive: boolean;
223
+ isConflicting: boolean;
224
+ isBlocking: boolean;
225
+ };
226
+ h6: {
227
+ isActive: boolean;
228
+ isConflicting: boolean;
229
+ isBlocking: boolean;
230
+ };
231
+ codeBlock: {
232
+ isActive: boolean;
233
+ isConflicting: boolean;
234
+ isBlocking: boolean;
235
+ };
236
+ blockQuote: {
237
+ isActive: boolean;
238
+ isConflicting: boolean;
239
+ isBlocking: boolean;
240
+ };
241
+ orderedList: {
242
+ isActive: boolean;
243
+ isConflicting: boolean;
244
+ isBlocking: boolean;
245
+ };
246
+ unorderedList: {
247
+ isActive: boolean;
248
+ isConflicting: boolean;
249
+ isBlocking: boolean;
250
+ };
251
+ link: {
252
+ isActive: boolean;
253
+ isConflicting: boolean;
254
+ isBlocking: boolean;
255
+ };
256
+ image: {
257
+ isActive: boolean;
258
+ isConflicting: boolean;
259
+ isBlocking: boolean;
260
+ };
261
+ mention: {
262
+ isActive: boolean;
263
+ isConflicting: boolean;
264
+ isBlocking: boolean;
265
+ };
266
+ checkboxList: {
267
+ isActive: boolean;
268
+ isConflicting: boolean;
269
+ isBlocking: boolean;
270
+ };
271
+ };
272
+ }
273
+
188
274
  interface TargetedEvent {
189
275
  target: Int32;
190
276
  }
@@ -273,6 +359,7 @@ export interface NativeProps extends ViewProps {
273
359
  htmlStyle?: HtmlStyleInternal;
274
360
  scrollEnabled?: boolean;
275
361
  linkRegex?: LinkNativeRegex;
362
+ contextMenuItems?: ReadonlyArray<Readonly<ContextMenuItemConfig>>;
276
363
 
277
364
  // event callbacks
278
365
  onInputFocus?: DirectEventHandler<TargetedEvent>;
@@ -287,11 +374,13 @@ export interface NativeProps extends ViewProps {
287
374
  onRequestHtmlResult?: DirectEventHandler<OnRequestHtmlResultEvent>;
288
375
  onInputKeyPress?: DirectEventHandler<OnKeyPressEvent>;
289
376
  onPasteImages?: DirectEventHandler<OnPasteImagesEvent>;
377
+ onContextMenuItemPress?: DirectEventHandler<OnContextMenuItemPressEvent>;
290
378
 
291
379
  // Style related props - used for generating proper setters in component's manager
292
380
  // These should not be passed as regular props
293
381
  color?: ColorValue;
294
382
  fontSize?: Float;
383
+ lineHeight?: Float;
295
384
  fontFamily?: string;
296
385
  fontWeight?: string;
297
386
  fontStyle?: string;
@@ -303,6 +392,7 @@ export interface NativeProps extends ViewProps {
303
392
 
304
393
  // Experimental
305
394
  androidExperimentalSynchronousEvents: boolean;
395
+ useHtmlNormalizer: boolean;
306
396
  }
307
397
 
308
398
  type ComponentType = HostComponent<NativeProps>;
@@ -345,6 +435,11 @@ interface NativeCommands {
345
435
  text: string,
346
436
  url: string
347
437
  ) => void;
438
+ removeLink: (
439
+ viewRef: React.ElementRef<ComponentType>,
440
+ start: Int32,
441
+ end: Int32
442
+ ) => void;
348
443
  addImage: (
349
444
  viewRef: React.ElementRef<ComponentType>,
350
445
  uri: string,
@@ -393,6 +488,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
393
488
  'toggleUnorderedList',
394
489
  'toggleCheckboxList',
395
490
  'addLink',
491
+ 'removeLink',
396
492
  'addImage',
397
493
  'startMention',
398
494
  'addMention',