react-native-enriched 0.0.0 → 0.1.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/LICENSE +20 -0
- package/README.md +875 -0
- package/ReactNativeEnriched.podspec +27 -0
- package/android/build.gradle +101 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +146 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +55 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/ComponentDescriptors.cpp +22 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/ComponentDescriptors.h +24 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.cpp +118 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.h +95 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/Props.cpp +128 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/Props.h +577 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/ShadowNodes.cpp +17 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/ShadowNodes.h +23 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/States.cpp +16 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/States.h +20 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/swmansion/enriched/EnrichedTextInputView.kt +535 -0
- package/android/src/main/java/com/swmansion/enriched/EnrichedTextInputViewLayoutManager.kt +64 -0
- package/android/src/main/java/com/swmansion/enriched/EnrichedTextInputViewManager.kt +292 -0
- package/android/src/main/java/com/swmansion/enriched/EnrichedTextInputViewPackage.kt +19 -0
- package/android/src/main/java/com/swmansion/enriched/events/MentionHandler.kt +40 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeHtmlEvent.kt +28 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeSelectionEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeTextEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnInputBlurEvent.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnInputFocusEvent.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnLinkDetectedEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnMentionDetectedEvent.kt +29 -0
- package/android/src/main/java/com/swmansion/enriched/events/OnMentionEvent.kt +33 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBlockQuoteSpan.kt +34 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedCodeBlockSpan.kt +38 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedImageSpan.kt +41 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedInlineCodeSpan.kt +16 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedLinkSpan.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedMentionSpan.kt +36 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedOrderedListSpan.kt +71 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedSpans.kt +111 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +9 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +9 -0
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnorderedListSpan.kt +49 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedBlockSpan.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedHeadingSpan.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedParagraphSpan.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedZeroWidthSpaceSpan.kt +5 -0
- package/android/src/main/java/com/swmansion/enriched/styles/HtmlStyle.kt +227 -0
- package/android/src/main/java/com/swmansion/enriched/styles/InlineStyles.kt +146 -0
- package/android/src/main/java/com/swmansion/enriched/styles/ListStyles.kt +173 -0
- package/android/src/main/java/com/swmansion/enriched/styles/ParagraphStyles.kt +186 -0
- package/android/src/main/java/com/swmansion/enriched/styles/ParametrizedStyles.kt +223 -0
- package/android/src/main/java/com/swmansion/enriched/utils/EnrichedParser.java +857 -0
- package/android/src/main/java/com/swmansion/enriched/utils/EnrichedSelection.kt +285 -0
- package/android/src/main/java/com/swmansion/enriched/utils/EnrichedSpanState.kt +204 -0
- package/android/src/main/java/com/swmansion/enriched/utils/Utils.kt +91 -0
- package/android/src/main/java/com/swmansion/enriched/watchers/EnrichedSpanWatcher.kt +73 -0
- package/android/src/main/java/com/swmansion/enriched/watchers/EnrichedTextWatcher.kt +51 -0
- package/android/src/main/new_arch/CMakeLists.txt +56 -0
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +22 -0
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +26 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputComponentDescriptor.h +35 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputMeasurementManager.cpp +51 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputMeasurementManager.h +26 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputShadowNode.cpp +34 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputShadowNode.h +54 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputState.cpp +9 -0
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/EnrichedTextInputState.h +25 -0
- package/ios/EnrichedTextInputView.h +33 -0
- package/ios/EnrichedTextInputView.mm +1190 -0
- package/ios/EnrichedTextInputViewManager.mm +13 -0
- package/ios/config/InputConfig.h +67 -0
- package/ios/config/InputConfig.mm +382 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/ComponentDescriptors.cpp +22 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/ComponentDescriptors.h +24 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.cpp +118 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.h +95 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/Props.cpp +128 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/Props.h +577 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/RCTComponentViewHelpers.h +384 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/ShadowNodes.cpp +17 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/ShadowNodes.h +23 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/States.cpp +16 -0
- package/ios/generated/RNEnrichedTextInputViewSpec/States.h +20 -0
- package/ios/inputParser/InputParser.h +11 -0
- package/ios/inputParser/InputParser.mm +659 -0
- package/ios/inputTextView/InputTextView.h +6 -0
- package/ios/inputTextView/InputTextView.mm +115 -0
- package/ios/internals/EnrichedTextInputViewComponentDescriptor.h +17 -0
- package/ios/internals/EnrichedTextInputViewShadowNode.h +40 -0
- package/ios/internals/EnrichedTextInputViewShadowNode.mm +83 -0
- package/ios/internals/EnrichedTextInputViewState.cpp +10 -0
- package/ios/internals/EnrichedTextInputViewState.h +20 -0
- package/ios/styles/BlockQuoteStyle.mm +248 -0
- package/ios/styles/BoldStyle.mm +122 -0
- package/ios/styles/H1Style.mm +10 -0
- package/ios/styles/H2Style.mm +10 -0
- package/ios/styles/H3Style.mm +10 -0
- package/ios/styles/HeadingStyleBase.mm +144 -0
- package/ios/styles/InlineCodeStyle.mm +163 -0
- package/ios/styles/ItalicStyle.mm +110 -0
- package/ios/styles/LinkStyle.mm +463 -0
- package/ios/styles/MentionStyle.mm +476 -0
- package/ios/styles/OrderedListStyle.mm +225 -0
- package/ios/styles/StrikethroughStyle.mm +80 -0
- package/ios/styles/UnderlineStyle.mm +112 -0
- package/ios/styles/UnorderedListStyle.mm +225 -0
- package/ios/utils/BaseStyleProtocol.h +16 -0
- package/ios/utils/ColorExtension.h +6 -0
- package/ios/utils/ColorExtension.mm +27 -0
- package/ios/utils/FontExtension.h +13 -0
- package/ios/utils/FontExtension.mm +91 -0
- package/ios/utils/LayoutManagerExtension.h +6 -0
- package/ios/utils/LayoutManagerExtension.mm +171 -0
- package/ios/utils/LinkData.h +9 -0
- package/ios/utils/LinkData.mm +4 -0
- package/ios/utils/MentionParams.h +9 -0
- package/ios/utils/MentionParams.mm +4 -0
- package/ios/utils/MentionStyleProps.h +13 -0
- package/ios/utils/MentionStyleProps.mm +56 -0
- package/ios/utils/OccurenceUtils.h +37 -0
- package/ios/utils/OccurenceUtils.mm +124 -0
- package/ios/utils/ParagraphsUtils.h +7 -0
- package/ios/utils/ParagraphsUtils.mm +54 -0
- package/ios/utils/StringExtension.h +15 -0
- package/ios/utils/StringExtension.mm +57 -0
- package/ios/utils/StyleHeaders.h +74 -0
- package/ios/utils/StylePair.h +9 -0
- package/ios/utils/StylePair.mm +4 -0
- package/ios/utils/StyleTypeEnum.h +22 -0
- package/ios/utils/TextDecorationLineEnum.h +6 -0
- package/ios/utils/TextDecorationLineEnum.mm +4 -0
- package/ios/utils/TextInsertionUtils.h +6 -0
- package/ios/utils/TextInsertionUtils.mm +48 -0
- package/ios/utils/WordsUtils.h +6 -0
- package/ios/utils/WordsUtils.mm +88 -0
- package/ios/utils/ZeroWidthSpaceUtils.h +7 -0
- package/ios/utils/ZeroWidthSpaceUtils.mm +164 -0
- package/lib/module/EnrichedTextInput.js +191 -0
- package/lib/module/EnrichedTextInput.js.map +1 -0
- package/lib/module/EnrichedTextInputNativeComponent.ts +235 -0
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/normalizeHtmlStyle.js +141 -0
- package/lib/module/normalizeHtmlStyle.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/EnrichedTextInput.d.ts +113 -0
- package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -0
- package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts +160 -0
- package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/normalizeHtmlStyle.d.ts +4 -0
- package/lib/typescript/src/normalizeHtmlStyle.d.ts.map +1 -0
- package/package.json +172 -1
- package/react-native.config.js +13 -0
- package/src/EnrichedTextInput.tsx +358 -0
- package/src/EnrichedTextInputNativeComponent.ts +235 -0
- package/src/index.tsx +9 -0
- package/src/normalizeHtmlStyle.ts +188 -0
|
@@ -0,0 +1,577 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GeneratePropsH.js
|
|
9
|
+
*/
|
|
10
|
+
#pragma once
|
|
11
|
+
|
|
12
|
+
#include <folly/dynamic.h>
|
|
13
|
+
#include <react/renderer/components/view/ViewProps.h>
|
|
14
|
+
#include <react/renderer/core/PropsParserContext.h>
|
|
15
|
+
#include <react/renderer/core/propsConversions.h>
|
|
16
|
+
#include <react/renderer/graphics/Color.h>
|
|
17
|
+
#include <vector>
|
|
18
|
+
|
|
19
|
+
namespace facebook::react {
|
|
20
|
+
|
|
21
|
+
struct EnrichedTextInputViewHtmlStyleH1Struct {
|
|
22
|
+
Float fontSize{0.0};
|
|
23
|
+
bool bold{false};
|
|
24
|
+
|
|
25
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
26
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleH1Struct&) const = default;
|
|
27
|
+
|
|
28
|
+
folly::dynamic toDynamic() const {
|
|
29
|
+
folly::dynamic result = folly::dynamic::object();
|
|
30
|
+
result["fontSize"] = fontSize;
|
|
31
|
+
result["bold"] = bold;
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
#endif
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH1Struct &result) {
|
|
38
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
39
|
+
|
|
40
|
+
auto tmp_fontSize = map.find("fontSize");
|
|
41
|
+
if (tmp_fontSize != map.end()) {
|
|
42
|
+
fromRawValue(context, tmp_fontSize->second, result.fontSize);
|
|
43
|
+
}
|
|
44
|
+
auto tmp_bold = map.find("bold");
|
|
45
|
+
if (tmp_bold != map.end()) {
|
|
46
|
+
fromRawValue(context, tmp_bold->second, result.bold);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleH1Struct &value) {
|
|
51
|
+
return "[Object EnrichedTextInputViewHtmlStyleH1Struct]";
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
55
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH1Struct &value) {
|
|
56
|
+
return value.toDynamic();
|
|
57
|
+
}
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
struct EnrichedTextInputViewHtmlStyleH2Struct {
|
|
61
|
+
Float fontSize{0.0};
|
|
62
|
+
bool bold{false};
|
|
63
|
+
|
|
64
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
65
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleH2Struct&) const = default;
|
|
66
|
+
|
|
67
|
+
folly::dynamic toDynamic() const {
|
|
68
|
+
folly::dynamic result = folly::dynamic::object();
|
|
69
|
+
result["fontSize"] = fontSize;
|
|
70
|
+
result["bold"] = bold;
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
#endif
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH2Struct &result) {
|
|
77
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
78
|
+
|
|
79
|
+
auto tmp_fontSize = map.find("fontSize");
|
|
80
|
+
if (tmp_fontSize != map.end()) {
|
|
81
|
+
fromRawValue(context, tmp_fontSize->second, result.fontSize);
|
|
82
|
+
}
|
|
83
|
+
auto tmp_bold = map.find("bold");
|
|
84
|
+
if (tmp_bold != map.end()) {
|
|
85
|
+
fromRawValue(context, tmp_bold->second, result.bold);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleH2Struct &value) {
|
|
90
|
+
return "[Object EnrichedTextInputViewHtmlStyleH2Struct]";
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
94
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH2Struct &value) {
|
|
95
|
+
return value.toDynamic();
|
|
96
|
+
}
|
|
97
|
+
#endif
|
|
98
|
+
|
|
99
|
+
struct EnrichedTextInputViewHtmlStyleH3Struct {
|
|
100
|
+
Float fontSize{0.0};
|
|
101
|
+
bool bold{false};
|
|
102
|
+
|
|
103
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
104
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleH3Struct&) const = default;
|
|
105
|
+
|
|
106
|
+
folly::dynamic toDynamic() const {
|
|
107
|
+
folly::dynamic result = folly::dynamic::object();
|
|
108
|
+
result["fontSize"] = fontSize;
|
|
109
|
+
result["bold"] = bold;
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
#endif
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleH3Struct &result) {
|
|
116
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
117
|
+
|
|
118
|
+
auto tmp_fontSize = map.find("fontSize");
|
|
119
|
+
if (tmp_fontSize != map.end()) {
|
|
120
|
+
fromRawValue(context, tmp_fontSize->second, result.fontSize);
|
|
121
|
+
}
|
|
122
|
+
auto tmp_bold = map.find("bold");
|
|
123
|
+
if (tmp_bold != map.end()) {
|
|
124
|
+
fromRawValue(context, tmp_bold->second, result.bold);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleH3Struct &value) {
|
|
129
|
+
return "[Object EnrichedTextInputViewHtmlStyleH3Struct]";
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
133
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleH3Struct &value) {
|
|
134
|
+
return value.toDynamic();
|
|
135
|
+
}
|
|
136
|
+
#endif
|
|
137
|
+
|
|
138
|
+
struct EnrichedTextInputViewHtmlStyleBlockquoteStruct {
|
|
139
|
+
SharedColor borderColor{};
|
|
140
|
+
Float borderWidth{0.0};
|
|
141
|
+
Float gapWidth{0.0};
|
|
142
|
+
SharedColor color{};
|
|
143
|
+
|
|
144
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
145
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleBlockquoteStruct&) const = default;
|
|
146
|
+
|
|
147
|
+
folly::dynamic toDynamic() const {
|
|
148
|
+
folly::dynamic result = folly::dynamic::object();
|
|
149
|
+
result["borderColor"] = ::facebook::react::toDynamic(borderColor);
|
|
150
|
+
result["borderWidth"] = borderWidth;
|
|
151
|
+
result["gapWidth"] = gapWidth;
|
|
152
|
+
result["color"] = ::facebook::react::toDynamic(color);
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
#endif
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleBlockquoteStruct &result) {
|
|
159
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
160
|
+
|
|
161
|
+
auto tmp_borderColor = map.find("borderColor");
|
|
162
|
+
if (tmp_borderColor != map.end()) {
|
|
163
|
+
fromRawValue(context, tmp_borderColor->second, result.borderColor);
|
|
164
|
+
}
|
|
165
|
+
auto tmp_borderWidth = map.find("borderWidth");
|
|
166
|
+
if (tmp_borderWidth != map.end()) {
|
|
167
|
+
fromRawValue(context, tmp_borderWidth->second, result.borderWidth);
|
|
168
|
+
}
|
|
169
|
+
auto tmp_gapWidth = map.find("gapWidth");
|
|
170
|
+
if (tmp_gapWidth != map.end()) {
|
|
171
|
+
fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
|
|
172
|
+
}
|
|
173
|
+
auto tmp_color = map.find("color");
|
|
174
|
+
if (tmp_color != map.end()) {
|
|
175
|
+
fromRawValue(context, tmp_color->second, result.color);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleBlockquoteStruct &value) {
|
|
180
|
+
return "[Object EnrichedTextInputViewHtmlStyleBlockquoteStruct]";
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
184
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleBlockquoteStruct &value) {
|
|
185
|
+
return value.toDynamic();
|
|
186
|
+
}
|
|
187
|
+
#endif
|
|
188
|
+
|
|
189
|
+
struct EnrichedTextInputViewHtmlStyleCodeblockStruct {
|
|
190
|
+
SharedColor color{};
|
|
191
|
+
Float borderRadius{0.0};
|
|
192
|
+
SharedColor backgroundColor{};
|
|
193
|
+
|
|
194
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
195
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleCodeblockStruct&) const = default;
|
|
196
|
+
|
|
197
|
+
folly::dynamic toDynamic() const {
|
|
198
|
+
folly::dynamic result = folly::dynamic::object();
|
|
199
|
+
result["color"] = ::facebook::react::toDynamic(color);
|
|
200
|
+
result["borderRadius"] = borderRadius;
|
|
201
|
+
result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
#endif
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleCodeblockStruct &result) {
|
|
208
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
209
|
+
|
|
210
|
+
auto tmp_color = map.find("color");
|
|
211
|
+
if (tmp_color != map.end()) {
|
|
212
|
+
fromRawValue(context, tmp_color->second, result.color);
|
|
213
|
+
}
|
|
214
|
+
auto tmp_borderRadius = map.find("borderRadius");
|
|
215
|
+
if (tmp_borderRadius != map.end()) {
|
|
216
|
+
fromRawValue(context, tmp_borderRadius->second, result.borderRadius);
|
|
217
|
+
}
|
|
218
|
+
auto tmp_backgroundColor = map.find("backgroundColor");
|
|
219
|
+
if (tmp_backgroundColor != map.end()) {
|
|
220
|
+
fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleCodeblockStruct &value) {
|
|
225
|
+
return "[Object EnrichedTextInputViewHtmlStyleCodeblockStruct]";
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
229
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleCodeblockStruct &value) {
|
|
230
|
+
return value.toDynamic();
|
|
231
|
+
}
|
|
232
|
+
#endif
|
|
233
|
+
|
|
234
|
+
struct EnrichedTextInputViewHtmlStyleCodeStruct {
|
|
235
|
+
SharedColor color{};
|
|
236
|
+
SharedColor backgroundColor{};
|
|
237
|
+
|
|
238
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
239
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleCodeStruct&) const = default;
|
|
240
|
+
|
|
241
|
+
folly::dynamic toDynamic() const {
|
|
242
|
+
folly::dynamic result = folly::dynamic::object();
|
|
243
|
+
result["color"] = ::facebook::react::toDynamic(color);
|
|
244
|
+
result["backgroundColor"] = ::facebook::react::toDynamic(backgroundColor);
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
#endif
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleCodeStruct &result) {
|
|
251
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
252
|
+
|
|
253
|
+
auto tmp_color = map.find("color");
|
|
254
|
+
if (tmp_color != map.end()) {
|
|
255
|
+
fromRawValue(context, tmp_color->second, result.color);
|
|
256
|
+
}
|
|
257
|
+
auto tmp_backgroundColor = map.find("backgroundColor");
|
|
258
|
+
if (tmp_backgroundColor != map.end()) {
|
|
259
|
+
fromRawValue(context, tmp_backgroundColor->second, result.backgroundColor);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleCodeStruct &value) {
|
|
264
|
+
return "[Object EnrichedTextInputViewHtmlStyleCodeStruct]";
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
268
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleCodeStruct &value) {
|
|
269
|
+
return value.toDynamic();
|
|
270
|
+
}
|
|
271
|
+
#endif
|
|
272
|
+
|
|
273
|
+
struct EnrichedTextInputViewHtmlStyleAStruct {
|
|
274
|
+
SharedColor color{};
|
|
275
|
+
std::string textDecorationLine{};
|
|
276
|
+
|
|
277
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
278
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleAStruct&) const = default;
|
|
279
|
+
|
|
280
|
+
folly::dynamic toDynamic() const {
|
|
281
|
+
folly::dynamic result = folly::dynamic::object();
|
|
282
|
+
result["color"] = ::facebook::react::toDynamic(color);
|
|
283
|
+
result["textDecorationLine"] = textDecorationLine;
|
|
284
|
+
return result;
|
|
285
|
+
}
|
|
286
|
+
#endif
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleAStruct &result) {
|
|
290
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
291
|
+
|
|
292
|
+
auto tmp_color = map.find("color");
|
|
293
|
+
if (tmp_color != map.end()) {
|
|
294
|
+
fromRawValue(context, tmp_color->second, result.color);
|
|
295
|
+
}
|
|
296
|
+
auto tmp_textDecorationLine = map.find("textDecorationLine");
|
|
297
|
+
if (tmp_textDecorationLine != map.end()) {
|
|
298
|
+
fromRawValue(context, tmp_textDecorationLine->second, result.textDecorationLine);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleAStruct &value) {
|
|
303
|
+
return "[Object EnrichedTextInputViewHtmlStyleAStruct]";
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
307
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleAStruct &value) {
|
|
308
|
+
return value.toDynamic();
|
|
309
|
+
}
|
|
310
|
+
#endif
|
|
311
|
+
|
|
312
|
+
struct EnrichedTextInputViewHtmlStyleImgStruct {
|
|
313
|
+
Float width{0.0};
|
|
314
|
+
Float height{0.0};
|
|
315
|
+
|
|
316
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
317
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleImgStruct&) const = default;
|
|
318
|
+
|
|
319
|
+
folly::dynamic toDynamic() const {
|
|
320
|
+
folly::dynamic result = folly::dynamic::object();
|
|
321
|
+
result["width"] = width;
|
|
322
|
+
result["height"] = height;
|
|
323
|
+
return result;
|
|
324
|
+
}
|
|
325
|
+
#endif
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleImgStruct &result) {
|
|
329
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
330
|
+
|
|
331
|
+
auto tmp_width = map.find("width");
|
|
332
|
+
if (tmp_width != map.end()) {
|
|
333
|
+
fromRawValue(context, tmp_width->second, result.width);
|
|
334
|
+
}
|
|
335
|
+
auto tmp_height = map.find("height");
|
|
336
|
+
if (tmp_height != map.end()) {
|
|
337
|
+
fromRawValue(context, tmp_height->second, result.height);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleImgStruct &value) {
|
|
342
|
+
return "[Object EnrichedTextInputViewHtmlStyleImgStruct]";
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
346
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleImgStruct &value) {
|
|
347
|
+
return value.toDynamic();
|
|
348
|
+
}
|
|
349
|
+
#endif
|
|
350
|
+
|
|
351
|
+
struct EnrichedTextInputViewHtmlStyleOlStruct {
|
|
352
|
+
Float gapWidth{0.0};
|
|
353
|
+
Float marginLeft{0.0};
|
|
354
|
+
std::string markerFontWeight{};
|
|
355
|
+
SharedColor markerColor{};
|
|
356
|
+
|
|
357
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
358
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleOlStruct&) const = default;
|
|
359
|
+
|
|
360
|
+
folly::dynamic toDynamic() const {
|
|
361
|
+
folly::dynamic result = folly::dynamic::object();
|
|
362
|
+
result["gapWidth"] = gapWidth;
|
|
363
|
+
result["marginLeft"] = marginLeft;
|
|
364
|
+
result["markerFontWeight"] = markerFontWeight;
|
|
365
|
+
result["markerColor"] = ::facebook::react::toDynamic(markerColor);
|
|
366
|
+
return result;
|
|
367
|
+
}
|
|
368
|
+
#endif
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleOlStruct &result) {
|
|
372
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
373
|
+
|
|
374
|
+
auto tmp_gapWidth = map.find("gapWidth");
|
|
375
|
+
if (tmp_gapWidth != map.end()) {
|
|
376
|
+
fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
|
|
377
|
+
}
|
|
378
|
+
auto tmp_marginLeft = map.find("marginLeft");
|
|
379
|
+
if (tmp_marginLeft != map.end()) {
|
|
380
|
+
fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
|
|
381
|
+
}
|
|
382
|
+
auto tmp_markerFontWeight = map.find("markerFontWeight");
|
|
383
|
+
if (tmp_markerFontWeight != map.end()) {
|
|
384
|
+
fromRawValue(context, tmp_markerFontWeight->second, result.markerFontWeight);
|
|
385
|
+
}
|
|
386
|
+
auto tmp_markerColor = map.find("markerColor");
|
|
387
|
+
if (tmp_markerColor != map.end()) {
|
|
388
|
+
fromRawValue(context, tmp_markerColor->second, result.markerColor);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleOlStruct &value) {
|
|
393
|
+
return "[Object EnrichedTextInputViewHtmlStyleOlStruct]";
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
397
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleOlStruct &value) {
|
|
398
|
+
return value.toDynamic();
|
|
399
|
+
}
|
|
400
|
+
#endif
|
|
401
|
+
|
|
402
|
+
struct EnrichedTextInputViewHtmlStyleUlStruct {
|
|
403
|
+
SharedColor bulletColor{};
|
|
404
|
+
Float bulletSize{0.0};
|
|
405
|
+
Float marginLeft{0.0};
|
|
406
|
+
Float gapWidth{0.0};
|
|
407
|
+
|
|
408
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
409
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleUlStruct&) const = default;
|
|
410
|
+
|
|
411
|
+
folly::dynamic toDynamic() const {
|
|
412
|
+
folly::dynamic result = folly::dynamic::object();
|
|
413
|
+
result["bulletColor"] = ::facebook::react::toDynamic(bulletColor);
|
|
414
|
+
result["bulletSize"] = bulletSize;
|
|
415
|
+
result["marginLeft"] = marginLeft;
|
|
416
|
+
result["gapWidth"] = gapWidth;
|
|
417
|
+
return result;
|
|
418
|
+
}
|
|
419
|
+
#endif
|
|
420
|
+
};
|
|
421
|
+
|
|
422
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleUlStruct &result) {
|
|
423
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
424
|
+
|
|
425
|
+
auto tmp_bulletColor = map.find("bulletColor");
|
|
426
|
+
if (tmp_bulletColor != map.end()) {
|
|
427
|
+
fromRawValue(context, tmp_bulletColor->second, result.bulletColor);
|
|
428
|
+
}
|
|
429
|
+
auto tmp_bulletSize = map.find("bulletSize");
|
|
430
|
+
if (tmp_bulletSize != map.end()) {
|
|
431
|
+
fromRawValue(context, tmp_bulletSize->second, result.bulletSize);
|
|
432
|
+
}
|
|
433
|
+
auto tmp_marginLeft = map.find("marginLeft");
|
|
434
|
+
if (tmp_marginLeft != map.end()) {
|
|
435
|
+
fromRawValue(context, tmp_marginLeft->second, result.marginLeft);
|
|
436
|
+
}
|
|
437
|
+
auto tmp_gapWidth = map.find("gapWidth");
|
|
438
|
+
if (tmp_gapWidth != map.end()) {
|
|
439
|
+
fromRawValue(context, tmp_gapWidth->second, result.gapWidth);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleUlStruct &value) {
|
|
444
|
+
return "[Object EnrichedTextInputViewHtmlStyleUlStruct]";
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
448
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleUlStruct &value) {
|
|
449
|
+
return value.toDynamic();
|
|
450
|
+
}
|
|
451
|
+
#endif
|
|
452
|
+
|
|
453
|
+
struct EnrichedTextInputViewHtmlStyleStruct {
|
|
454
|
+
EnrichedTextInputViewHtmlStyleH1Struct h1{};
|
|
455
|
+
EnrichedTextInputViewHtmlStyleH2Struct h2{};
|
|
456
|
+
EnrichedTextInputViewHtmlStyleH3Struct h3{};
|
|
457
|
+
EnrichedTextInputViewHtmlStyleBlockquoteStruct blockquote{};
|
|
458
|
+
EnrichedTextInputViewHtmlStyleCodeblockStruct codeblock{};
|
|
459
|
+
EnrichedTextInputViewHtmlStyleCodeStruct code{};
|
|
460
|
+
EnrichedTextInputViewHtmlStyleAStruct a{};
|
|
461
|
+
folly::dynamic mention{};
|
|
462
|
+
EnrichedTextInputViewHtmlStyleImgStruct img{};
|
|
463
|
+
EnrichedTextInputViewHtmlStyleOlStruct ol{};
|
|
464
|
+
EnrichedTextInputViewHtmlStyleUlStruct ul{};
|
|
465
|
+
|
|
466
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
467
|
+
bool operator==(const EnrichedTextInputViewHtmlStyleStruct&) const = default;
|
|
468
|
+
|
|
469
|
+
folly::dynamic toDynamic() const {
|
|
470
|
+
folly::dynamic result = folly::dynamic::object();
|
|
471
|
+
result["h1"] = ::facebook::react::toDynamic(h1);
|
|
472
|
+
result["h2"] = ::facebook::react::toDynamic(h2);
|
|
473
|
+
result["h3"] = ::facebook::react::toDynamic(h3);
|
|
474
|
+
result["blockquote"] = ::facebook::react::toDynamic(blockquote);
|
|
475
|
+
result["codeblock"] = ::facebook::react::toDynamic(codeblock);
|
|
476
|
+
result["code"] = ::facebook::react::toDynamic(code);
|
|
477
|
+
result["a"] = ::facebook::react::toDynamic(a);
|
|
478
|
+
result["mention"] = mention;
|
|
479
|
+
result["img"] = ::facebook::react::toDynamic(img);
|
|
480
|
+
result["ol"] = ::facebook::react::toDynamic(ol);
|
|
481
|
+
result["ul"] = ::facebook::react::toDynamic(ul);
|
|
482
|
+
return result;
|
|
483
|
+
}
|
|
484
|
+
#endif
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, EnrichedTextInputViewHtmlStyleStruct &result) {
|
|
488
|
+
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
489
|
+
|
|
490
|
+
auto tmp_h1 = map.find("h1");
|
|
491
|
+
if (tmp_h1 != map.end()) {
|
|
492
|
+
fromRawValue(context, tmp_h1->second, result.h1);
|
|
493
|
+
}
|
|
494
|
+
auto tmp_h2 = map.find("h2");
|
|
495
|
+
if (tmp_h2 != map.end()) {
|
|
496
|
+
fromRawValue(context, tmp_h2->second, result.h2);
|
|
497
|
+
}
|
|
498
|
+
auto tmp_h3 = map.find("h3");
|
|
499
|
+
if (tmp_h3 != map.end()) {
|
|
500
|
+
fromRawValue(context, tmp_h3->second, result.h3);
|
|
501
|
+
}
|
|
502
|
+
auto tmp_blockquote = map.find("blockquote");
|
|
503
|
+
if (tmp_blockquote != map.end()) {
|
|
504
|
+
fromRawValue(context, tmp_blockquote->second, result.blockquote);
|
|
505
|
+
}
|
|
506
|
+
auto tmp_codeblock = map.find("codeblock");
|
|
507
|
+
if (tmp_codeblock != map.end()) {
|
|
508
|
+
fromRawValue(context, tmp_codeblock->second, result.codeblock);
|
|
509
|
+
}
|
|
510
|
+
auto tmp_code = map.find("code");
|
|
511
|
+
if (tmp_code != map.end()) {
|
|
512
|
+
fromRawValue(context, tmp_code->second, result.code);
|
|
513
|
+
}
|
|
514
|
+
auto tmp_a = map.find("a");
|
|
515
|
+
if (tmp_a != map.end()) {
|
|
516
|
+
fromRawValue(context, tmp_a->second, result.a);
|
|
517
|
+
}
|
|
518
|
+
auto tmp_mention = map.find("mention");
|
|
519
|
+
if (tmp_mention != map.end()) {
|
|
520
|
+
fromRawValue(context, tmp_mention->second, result.mention);
|
|
521
|
+
}
|
|
522
|
+
auto tmp_img = map.find("img");
|
|
523
|
+
if (tmp_img != map.end()) {
|
|
524
|
+
fromRawValue(context, tmp_img->second, result.img);
|
|
525
|
+
}
|
|
526
|
+
auto tmp_ol = map.find("ol");
|
|
527
|
+
if (tmp_ol != map.end()) {
|
|
528
|
+
fromRawValue(context, tmp_ol->second, result.ol);
|
|
529
|
+
}
|
|
530
|
+
auto tmp_ul = map.find("ul");
|
|
531
|
+
if (tmp_ul != map.end()) {
|
|
532
|
+
fromRawValue(context, tmp_ul->second, result.ul);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
static inline std::string toString(const EnrichedTextInputViewHtmlStyleStruct &value) {
|
|
537
|
+
return "[Object EnrichedTextInputViewHtmlStyleStruct]";
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
541
|
+
static inline folly::dynamic toDynamic(const EnrichedTextInputViewHtmlStyleStruct &value) {
|
|
542
|
+
return value.toDynamic();
|
|
543
|
+
}
|
|
544
|
+
#endif
|
|
545
|
+
class EnrichedTextInputViewProps final : public ViewProps {
|
|
546
|
+
public:
|
|
547
|
+
EnrichedTextInputViewProps() = default;
|
|
548
|
+
EnrichedTextInputViewProps(const PropsParserContext& context, const EnrichedTextInputViewProps &sourceProps, const RawProps &rawProps);
|
|
549
|
+
|
|
550
|
+
#pragma mark - Props
|
|
551
|
+
|
|
552
|
+
bool autoFocus{false};
|
|
553
|
+
bool editable{false};
|
|
554
|
+
std::string defaultValue{};
|
|
555
|
+
std::string placeholder{};
|
|
556
|
+
SharedColor placeholderTextColor{};
|
|
557
|
+
std::vector<std::string> mentionIndicators{};
|
|
558
|
+
SharedColor cursorColor{};
|
|
559
|
+
SharedColor selectionColor{};
|
|
560
|
+
std::string autoCapitalize{};
|
|
561
|
+
EnrichedTextInputViewHtmlStyleStruct htmlStyle{};
|
|
562
|
+
SharedColor color{};
|
|
563
|
+
Float fontSize{0.0};
|
|
564
|
+
std::string fontFamily{};
|
|
565
|
+
std::string fontWeight{};
|
|
566
|
+
std::string fontStyle{};
|
|
567
|
+
bool isOnChangeHtmlSet{false};
|
|
568
|
+
bool androidExperimentalSynchronousEvents{false};
|
|
569
|
+
|
|
570
|
+
#ifdef RN_SERIALIZABLE_STATE
|
|
571
|
+
ComponentName getDiffPropsImplementationTarget() const override;
|
|
572
|
+
|
|
573
|
+
folly::dynamic getDiffProps(const Props* prevProps) const override;
|
|
574
|
+
#endif
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
} // namespace facebook::react
|