react-native-enriched 0.4.1 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -2
- package/ReactNativeEnriched.podspec +5 -1
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +12 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +4 -0
- package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.cpp +149 -0
- package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.h +146 -0
- package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/Props.cpp +16 -1
- package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/Props.h +46 -0
- package/android/src/main/java/com/swmansion/enriched/common/GumboNormalizer.kt +5 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +3 -2
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnorderedListSpan.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputView.kt +166 -20
- package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputViewManager.kt +32 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/MeasurementStore.kt +19 -2
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnContextMenuItemPressEvent.kt +35 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedLineHeightSpan.kt +44 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/styles/ParametrizedStyles.kt +16 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpanState.kt +18 -12
- package/android/src/main/new_arch/CMakeLists.txt +9 -13
- package/android/src/main/new_arch/GumboNormalizerJni.cpp +14 -0
- package/android/src/main/new_arch/react/renderer/components/ReactNativeEnrichedSpec/conversions.h +2 -21
- package/cpp/CMakeLists.txt +50 -0
- package/cpp/GumboParser/GumboParser.h +34043 -0
- package/cpp/README.md +59 -0
- package/cpp/parser/GumboNormalizer.c +915 -0
- package/cpp/parser/GumboParser.cpp +16 -0
- package/cpp/parser/GumboParser.hpp +23 -0
- package/cpp/tests/GumboParserTest.cpp +457 -0
- package/ios/EnrichedTextInputView.h +2 -0
- package/ios/EnrichedTextInputView.mm +152 -2
- package/ios/config/InputConfig.h +3 -0
- package/ios/config/InputConfig.mm +15 -0
- package/ios/extensions/LayoutManagerExtension.mm +34 -11
- package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.cpp +149 -0
- package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.h +146 -0
- package/ios/generated/ReactNativeEnrichedSpec/Props.cpp +16 -1
- package/ios/generated/ReactNativeEnrichedSpec/Props.h +46 -0
- package/ios/generated/ReactNativeEnrichedSpec/RCTComponentViewHelpers.h +29 -0
- package/ios/inputParser/InputParser.mm +27 -0
- package/ios/inputTextView/InputTextView.mm +3 -3
- package/lib/module/EnrichedTextInput.js +43 -30
- package/lib/module/EnrichedTextInput.js.map +1 -1
- package/lib/module/spec/EnrichedTextInputNativeComponent.ts +118 -22
- package/lib/typescript/src/EnrichedTextInput.d.ts +24 -6
- package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts +111 -21
- package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/EnrichedTextInput.tsx +79 -40
- package/src/index.tsx +0 -1
- 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
|
|
@@ -74,12 +74,12 @@
|
|
|
74
74
|
NSString *type = item.allKeys[j];
|
|
75
75
|
if ([type isEqual:UTTypeJPEG.identifier] ||
|
|
76
76
|
[type isEqual:UTTypePNG.identifier] ||
|
|
77
|
-
[type isEqual:UTTypeWebP.identifier] ||
|
|
78
77
|
[type isEqual:UTTypeHEIC.identifier] ||
|
|
79
78
|
[type isEqual:UTTypeTIFF.identifier]) {
|
|
80
79
|
imageData = [self getDataForImageItem:item[type] type:type];
|
|
81
|
-
} else if ([type isEqual:
|
|
82
|
-
|
|
80
|
+
} else if ([type isEqual:UTTypeWebP.identifier] ||
|
|
81
|
+
[type isEqual:UTTypeGIF.identifier]) {
|
|
82
|
+
// webp and gifs: read raw bytes directly — no re-encoding needed
|
|
83
83
|
imageData = [pasteboard dataForPasteboardType:type];
|
|
84
84
|
}
|
|
85
85
|
if (!imageData) {
|
|
@@ -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:
|
|
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',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RefObject } from 'react';
|
|
2
|
-
import { type OnChangeHtmlEvent, type OnChangeSelectionEvent, type OnChangeStateEvent, type OnChangeTextEvent, type OnLinkDetected, type OnMentionDetected, type
|
|
2
|
+
import { type OnChangeHtmlEvent, type OnChangeSelectionEvent, type OnChangeStateEvent, type OnChangeTextEvent, type OnLinkDetected, type OnMentionDetected, type OnKeyPressEvent, type OnPasteImagesEvent } from './spec/EnrichedTextInputNativeComponent';
|
|
3
3
|
import type { ColorValue, NativeMethods, NativeSyntheticEvent, TargetedEvent, TextStyle, ViewProps, ViewStyle } from 'react-native';
|
|
4
4
|
import type { HtmlStyle } from './types';
|
|
5
5
|
export type FocusEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
@@ -27,10 +27,23 @@ export interface EnrichedTextInputInstance extends NativeMethods {
|
|
|
27
27
|
toggleUnorderedList: () => void;
|
|
28
28
|
toggleCheckboxList: (checked: boolean) => void;
|
|
29
29
|
setLink: (start: number, end: number, text: string, url: string) => void;
|
|
30
|
+
removeLink: (start: number, end: number) => void;
|
|
30
31
|
setImage: (src: string, width: number, height: number) => void;
|
|
31
32
|
startMention: (indicator: string) => void;
|
|
32
33
|
setMention: (indicator: string, text: string, attributes?: Record<string, string>) => void;
|
|
33
34
|
}
|
|
35
|
+
export interface ContextMenuItem {
|
|
36
|
+
text: string;
|
|
37
|
+
onPress: ({ text, selection, styleState, }: {
|
|
38
|
+
text: string;
|
|
39
|
+
selection: {
|
|
40
|
+
start: number;
|
|
41
|
+
end: number;
|
|
42
|
+
};
|
|
43
|
+
styleState: OnChangeStateEvent;
|
|
44
|
+
}) => void;
|
|
45
|
+
visible?: boolean;
|
|
46
|
+
}
|
|
34
47
|
export interface OnChangeMentionEvent {
|
|
35
48
|
indicator: string;
|
|
36
49
|
text: string;
|
|
@@ -55,10 +68,6 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
55
68
|
onChangeText?: (e: NativeSyntheticEvent<OnChangeTextEvent>) => void;
|
|
56
69
|
onChangeHtml?: (e: NativeSyntheticEvent<OnChangeHtmlEvent>) => void;
|
|
57
70
|
onChangeState?: (e: NativeSyntheticEvent<OnChangeStateEvent>) => void;
|
|
58
|
-
/**
|
|
59
|
-
* @deprecated Use onChangeState prop instead.
|
|
60
|
-
*/
|
|
61
|
-
onChangeStateDeprecated?: (e: NativeSyntheticEvent<OnChangeStateDeprecatedEvent>) => void;
|
|
62
71
|
onLinkDetected?: (e: OnLinkDetected) => void;
|
|
63
72
|
onMentionDetected?: (e: OnMentionDetected) => void;
|
|
64
73
|
onStartMention?: (indicator: string) => void;
|
|
@@ -67,6 +76,7 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
67
76
|
onChangeSelection?: (e: NativeSyntheticEvent<OnChangeSelectionEvent>) => void;
|
|
68
77
|
onKeyPress?: (e: NativeSyntheticEvent<OnKeyPressEvent>) => void;
|
|
69
78
|
onPasteImages?: (e: NativeSyntheticEvent<OnPasteImagesEvent>) => void;
|
|
79
|
+
contextMenuItems?: ContextMenuItem[];
|
|
70
80
|
/**
|
|
71
81
|
* If true, Android will use experimental synchronous events.
|
|
72
82
|
* This will prevent from input flickering when updating component size.
|
|
@@ -75,6 +85,14 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
75
85
|
* Disabled by default.
|
|
76
86
|
*/
|
|
77
87
|
androidExperimentalSynchronousEvents?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* If true, external HTML (e.g. from Google Docs, Word, web pages) will be
|
|
90
|
+
* normalized through the HTML normalizer before being applied.
|
|
91
|
+
* This converts arbitrary HTML into the canonical tag subset that the enriched
|
|
92
|
+
* parser understands.
|
|
93
|
+
* Disabled by default.
|
|
94
|
+
*/
|
|
95
|
+
useHtmlNormalizer?: boolean;
|
|
78
96
|
}
|
|
79
|
-
export declare const EnrichedTextInput: ({ ref, autoFocus, editable, mentionIndicators, defaultValue, placeholder, placeholderTextColor, cursorColor, selectionColor, style, autoCapitalize, htmlStyle, linkRegex: _linkRegex, onFocus, onBlur, onChangeText, onChangeHtml, onChangeState,
|
|
97
|
+
export declare const 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 }: EnrichedTextInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
80
98
|
//# sourceMappingURL=EnrichedTextInput.d.ts.map
|