react-native-enriched 0.3.0 → 0.4.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.
- package/README.md +6 -4
- package/android/build.gradle +3 -3
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +1 -0
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
- package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
- package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
- package/android/gradle.properties +5 -5
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +3 -2
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +40 -8
- package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/EnrichedConstants.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/EnrichedStyle.kt +57 -0
- package/android/src/main/java/com/swmansion/enriched/{spans/utils → common}/ForceRedrawSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/MentionStyle.kt +7 -0
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/ResourceManager.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{utils → common/parser}/EnrichedParser.java +126 -99
- package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedBlockQuoteSpan.kt +9 -13
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBoldSpan.kt +12 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +91 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedCodeBlockSpan.kt +8 -12
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH1Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH2Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH3Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH4Span.kt +21 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH5Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH6Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedImageSpan.kt +43 -38
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedInlineCodeSpan.kt +7 -11
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedLinkSpan.kt +7 -11
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedMentionSpan.kt +6 -10
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +12 -21
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedStrikeThroughSpan.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnderlineSpan.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedUnorderedListSpan.kt +9 -13
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedBlockSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedHeadingSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedParagraphSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedZeroWidthSpaceSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputConnectionWrapper.kt → textinput/EnrichedTextInputConnectionWrapper.kt} +2 -2
- package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputSpannableFactory.kt +83 -0
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputView.kt → textinput/EnrichedTextInputView.kt} +87 -51
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +1 -1
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +24 -17
- package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +5 -4
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeHtmlEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeStateEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeTextEvent.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputBlurEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputFocusEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputKeyPressEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnLinkDetectedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnPasteImagesEvent.kt +47 -0
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnRequestHtmlResultEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBoldSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCheckboxListSpan.kt +15 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH1Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH2Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH3Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH4Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH5Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH6Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt +36 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputLinkSpan.kt +15 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt +18 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt +21 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputStrikeThroughSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnorderedListSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → textinput/spans}/EnrichedSpans.kt +39 -30
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/HtmlStyle.kt +58 -43
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +4 -4
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ListStyles.kt +77 -26
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +11 -11
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +19 -19
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedEditableFactory.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +15 -14
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpanState.kt +15 -50
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannable.kt +3 -3
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannableStringBuilder.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/RichContentReceiver.kt +127 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/Utils.kt +106 -0
- package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedSpanWatcher.kt +10 -10
- package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +3 -3
- package/android/src/main/new_arch/CMakeLists.txt +1 -1
- package/android/src/main/new_arch/ReactNativeEnrichedSpec.cpp +11 -0
- package/android/src/main/new_arch/ReactNativeEnrichedSpec.h +15 -0
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.h +1 -1
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.h +2 -2
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/conversions.h +1 -1
- package/ios/EnrichedTextInputView.h +1 -0
- package/ios/EnrichedTextInputView.mm +266 -55
- package/ios/config/InputConfig.h +10 -0
- package/ios/config/InputConfig.mm +119 -0
- package/ios/extensions/ImageExtension.h +35 -0
- package/ios/extensions/ImageExtension.mm +156 -0
- package/ios/extensions/LayoutManagerExtension.mm +115 -95
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
- package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
- package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +21 -0
- package/ios/inputParser/InputParser.mm +135 -8
- package/ios/inputTextView/InputTextView.mm +118 -0
- package/ios/interfaces/ImageAttachment.h +1 -0
- package/ios/interfaces/ImageAttachment.mm +14 -4
- package/ios/interfaces/StyleHeaders.h +13 -2
- package/ios/interfaces/StyleTypeEnum.h +1 -0
- package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
- package/ios/styles/CheckboxListStyle.mm +321 -0
- package/ios/styles/H1Style.mm +3 -0
- package/ios/styles/H2Style.mm +3 -0
- package/ios/styles/H3Style.mm +3 -0
- package/ios/styles/H4Style.mm +3 -0
- package/ios/styles/H5Style.mm +3 -0
- package/ios/styles/H6Style.mm +3 -0
- package/ios/styles/HeadingStyleBase.mm +150 -78
- package/ios/utils/CheckboxHitTestUtils.h +10 -0
- package/ios/utils/CheckboxHitTestUtils.mm +123 -0
- package/ios/utils/ParagraphAttributesUtils.mm +83 -53
- package/ios/utils/TextBlockTapGestureRecognizer.h +17 -0
- package/ios/utils/TextBlockTapGestureRecognizer.mm +56 -0
- package/ios/utils/ZeroWidthSpaceUtils.mm +14 -3
- package/lib/module/EnrichedTextInput.js +36 -11
- package/lib/module/EnrichedTextInput.js.map +1 -1
- package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/normalizeHtmlStyle.js +6 -0
- package/lib/module/utils/normalizeHtmlStyle.js.map +1 -1
- package/lib/module/utils/nullthrows.js +9 -0
- package/lib/module/utils/nullthrows.js.map +1 -0
- package/lib/typescript/src/EnrichedTextInput.d.ts +9 -49
- package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/{EnrichedTextInputNativeComponent.d.ts → spec/EnrichedTextInputNativeComponent.d.ts} +33 -8
- package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +58 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts +2 -2
- package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -1
- package/lib/typescript/src/utils/nullthrows.d.ts +2 -0
- package/lib/typescript/src/utils/nullthrows.d.ts.map +1 -0
- package/lib/typescript/src/utils/regexParser.d.ts +1 -1
- package/lib/typescript/src/utils/regexParser.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/EnrichedTextInput.tsx +49 -62
- package/src/index.tsx +3 -1
- package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
- package/src/types.ts +59 -0
- package/src/utils/normalizeHtmlStyle.ts +8 -5
- package/src/utils/nullthrows.ts +7 -0
- package/src/utils/regexParser.ts +1 -1
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateDeprecatedEvent.kt +0 -21
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -17
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH4Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH5Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH6Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -16
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -15
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -15
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -3
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -9
- package/android/src/main/java/com/swmansion/enriched/utils/Utils.kt +0 -21
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
- package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputComponentDescriptor.h +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.h +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
|
@@ -105,6 +105,11 @@ export interface OnChangeStateEvent {
|
|
|
105
105
|
isConflicting: boolean;
|
|
106
106
|
isBlocking: boolean;
|
|
107
107
|
};
|
|
108
|
+
checkboxList: {
|
|
109
|
+
isActive: boolean;
|
|
110
|
+
isConflicting: boolean;
|
|
111
|
+
isBlocking: boolean;
|
|
112
|
+
};
|
|
108
113
|
}
|
|
109
114
|
export interface OnChangeStateDeprecatedEvent {
|
|
110
115
|
isBold: boolean;
|
|
@@ -122,6 +127,7 @@ export interface OnChangeStateDeprecatedEvent {
|
|
|
122
127
|
isBlockQuote: boolean;
|
|
123
128
|
isOrderedList: boolean;
|
|
124
129
|
isUnorderedList: boolean;
|
|
130
|
+
isCheckboxList: boolean;
|
|
125
131
|
isLink: boolean;
|
|
126
132
|
isImage: boolean;
|
|
127
133
|
isMention: boolean;
|
|
@@ -155,14 +161,26 @@ export interface OnRequestHtmlResultEvent {
|
|
|
155
161
|
requestId: Int32;
|
|
156
162
|
html: UnsafeMixed;
|
|
157
163
|
}
|
|
158
|
-
export interface MentionStyleProperties {
|
|
159
|
-
color?: ColorValue;
|
|
160
|
-
backgroundColor?: ColorValue;
|
|
161
|
-
textDecorationLine?: 'underline' | 'none';
|
|
162
|
-
}
|
|
163
164
|
export interface OnKeyPressEvent {
|
|
164
165
|
key: string;
|
|
165
166
|
}
|
|
167
|
+
interface TargetedEvent {
|
|
168
|
+
target: Int32;
|
|
169
|
+
}
|
|
170
|
+
export interface PastedImage {
|
|
171
|
+
uri: string;
|
|
172
|
+
type: string;
|
|
173
|
+
width: Float;
|
|
174
|
+
height: Float;
|
|
175
|
+
}
|
|
176
|
+
export interface OnPasteImagesEvent {
|
|
177
|
+
images: {
|
|
178
|
+
uri: string;
|
|
179
|
+
type: string;
|
|
180
|
+
width: Float;
|
|
181
|
+
height: Float;
|
|
182
|
+
}[];
|
|
183
|
+
}
|
|
166
184
|
type Heading = {
|
|
167
185
|
fontSize?: Float;
|
|
168
186
|
bold?: boolean;
|
|
@@ -206,6 +224,12 @@ export interface HtmlStyleInternal {
|
|
|
206
224
|
marginLeft?: Float;
|
|
207
225
|
gapWidth?: Float;
|
|
208
226
|
};
|
|
227
|
+
ulCheckbox?: {
|
|
228
|
+
gapWidth?: Float;
|
|
229
|
+
boxSize?: Float;
|
|
230
|
+
marginLeft?: Float;
|
|
231
|
+
boxColor?: ColorValue;
|
|
232
|
+
};
|
|
209
233
|
}
|
|
210
234
|
export interface NativeProps extends ViewProps {
|
|
211
235
|
autoFocus?: boolean;
|
|
@@ -220,18 +244,18 @@ export interface NativeProps extends ViewProps {
|
|
|
220
244
|
htmlStyle?: HtmlStyleInternal;
|
|
221
245
|
scrollEnabled?: boolean;
|
|
222
246
|
linkRegex?: LinkNativeRegex;
|
|
223
|
-
onInputFocus?: DirectEventHandler<
|
|
224
|
-
onInputBlur?: DirectEventHandler<
|
|
247
|
+
onInputFocus?: DirectEventHandler<TargetedEvent>;
|
|
248
|
+
onInputBlur?: DirectEventHandler<TargetedEvent>;
|
|
225
249
|
onChangeText?: DirectEventHandler<OnChangeTextEvent>;
|
|
226
250
|
onChangeHtml?: DirectEventHandler<OnChangeHtmlEvent>;
|
|
227
251
|
onChangeState?: DirectEventHandler<OnChangeStateEvent>;
|
|
228
|
-
onChangeStateDeprecated?: DirectEventHandler<OnChangeStateDeprecatedEvent>;
|
|
229
252
|
onLinkDetected?: DirectEventHandler<OnLinkDetected>;
|
|
230
253
|
onMentionDetected?: DirectEventHandler<OnMentionDetectedInternal>;
|
|
231
254
|
onMention?: DirectEventHandler<OnMentionEvent>;
|
|
232
255
|
onChangeSelection?: DirectEventHandler<OnChangeSelectionEvent>;
|
|
233
256
|
onRequestHtmlResult?: DirectEventHandler<OnRequestHtmlResultEvent>;
|
|
234
257
|
onInputKeyPress?: DirectEventHandler<OnKeyPressEvent>;
|
|
258
|
+
onPasteImages?: DirectEventHandler<OnPasteImagesEvent>;
|
|
235
259
|
color?: ColorValue;
|
|
236
260
|
fontSize?: Float;
|
|
237
261
|
fontFamily?: string;
|
|
@@ -262,6 +286,7 @@ interface NativeCommands {
|
|
|
262
286
|
toggleBlockQuote: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
263
287
|
toggleOrderedList: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
264
288
|
toggleUnorderedList: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
289
|
+
toggleCheckboxList: (viewRef: React.ElementRef<ComponentType>, checked: boolean) => void;
|
|
265
290
|
addLink: (viewRef: React.ElementRef<ComponentType>, start: Int32, end: Int32, text: string, url: string) => void;
|
|
266
291
|
addImage: (viewRef: React.ElementRef<ComponentType>, uri: string, width: Float, height: Float) => void;
|
|
267
292
|
startMention: (viewRef: React.ElementRef<ComponentType>, indicator: string) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnrichedTextInputNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/spec/EnrichedTextInputNativeComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ColorValue, TextStyle } from 'react-native';
|
|
2
|
+
interface HeadingStyle {
|
|
3
|
+
fontSize?: number;
|
|
4
|
+
bold?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface MentionStyleProperties {
|
|
7
|
+
color?: ColorValue;
|
|
8
|
+
backgroundColor?: ColorValue;
|
|
9
|
+
textDecorationLine?: 'underline' | 'none';
|
|
10
|
+
}
|
|
11
|
+
export interface HtmlStyle {
|
|
12
|
+
h1?: HeadingStyle;
|
|
13
|
+
h2?: HeadingStyle;
|
|
14
|
+
h3?: HeadingStyle;
|
|
15
|
+
h4?: HeadingStyle;
|
|
16
|
+
h5?: HeadingStyle;
|
|
17
|
+
h6?: HeadingStyle;
|
|
18
|
+
blockquote?: {
|
|
19
|
+
borderColor?: ColorValue;
|
|
20
|
+
borderWidth?: number;
|
|
21
|
+
gapWidth?: number;
|
|
22
|
+
color?: ColorValue;
|
|
23
|
+
};
|
|
24
|
+
codeblock?: {
|
|
25
|
+
color?: ColorValue;
|
|
26
|
+
borderRadius?: number;
|
|
27
|
+
backgroundColor?: ColorValue;
|
|
28
|
+
};
|
|
29
|
+
code?: {
|
|
30
|
+
color?: ColorValue;
|
|
31
|
+
backgroundColor?: ColorValue;
|
|
32
|
+
};
|
|
33
|
+
a?: {
|
|
34
|
+
color?: ColorValue;
|
|
35
|
+
textDecorationLine?: 'underline' | 'none';
|
|
36
|
+
};
|
|
37
|
+
mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
|
|
38
|
+
ol?: {
|
|
39
|
+
gapWidth?: number;
|
|
40
|
+
marginLeft?: number;
|
|
41
|
+
markerFontWeight?: TextStyle['fontWeight'];
|
|
42
|
+
markerColor?: ColorValue;
|
|
43
|
+
};
|
|
44
|
+
ul?: {
|
|
45
|
+
bulletColor?: ColorValue;
|
|
46
|
+
bulletSize?: number;
|
|
47
|
+
marginLeft?: number;
|
|
48
|
+
gapWidth?: number;
|
|
49
|
+
};
|
|
50
|
+
ulCheckbox?: {
|
|
51
|
+
boxSize?: number;
|
|
52
|
+
gapWidth?: number;
|
|
53
|
+
marginLeft?: number;
|
|
54
|
+
boxColor?: ColorValue;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,kBAAkB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,CAAC,CAAC,EAAE;QACF,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,kBAAkB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KAC3C,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC1E,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3C,WAAW,CAAC,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,EAAE,CAAC,EAAE;QACH,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,CAAC;CACH"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { HtmlStyleInternal } from '../spec/EnrichedTextInputNativeComponent';
|
|
2
|
+
import type { HtmlStyle } from '../types';
|
|
3
3
|
export declare const normalizeHtmlStyle: (style: HtmlStyle, mentionIndicators: string[]) => HtmlStyleInternal;
|
|
4
4
|
//# sourceMappingURL=normalizeHtmlStyle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeHtmlStyle.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeHtmlStyle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalizeHtmlStyle.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeHtmlStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,UAAU,CAAC;AA6LlE,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,EAChB,mBAAmB,MAAM,EAAE,KAC1B,iBAIF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullthrows.d.ts","sourceRoot":"","sources":["../../../../src/utils/nullthrows.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,CAM3D,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { LinkNativeRegex } from '../EnrichedTextInputNativeComponent';
|
|
1
|
+
import type { LinkNativeRegex } from '../spec/EnrichedTextInputNativeComponent';
|
|
2
2
|
export declare const toNativeRegexConfig: (regex: RegExp | undefined | null) => LinkNativeRegex;
|
|
3
3
|
//# sourceMappingURL=regexParser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regexParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/regexParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"regexParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/regexParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAkBhF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,KAC/B,eAmCF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-enriched",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Rich Text Editor component for React Native",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"prettier": "^3.0.3",
|
|
91
91
|
"react": "19.1.0",
|
|
92
92
|
"react-native": "0.81.0",
|
|
93
|
-
"react-native-builder-bob": "^0.40.
|
|
93
|
+
"react-native-builder-bob": "^0.40.18",
|
|
94
94
|
"release-it": "^17.10.0",
|
|
95
95
|
"turbo": "^1.10.7",
|
|
96
96
|
"typescript": "^5.8.3"
|
|
@@ -162,9 +162,9 @@
|
|
|
162
162
|
]
|
|
163
163
|
},
|
|
164
164
|
"codegenConfig": {
|
|
165
|
-
"name": "
|
|
165
|
+
"name": "ReactNativeEnrichedSpec",
|
|
166
166
|
"type": "components",
|
|
167
|
-
"jsSrcsDir": "src",
|
|
167
|
+
"jsSrcsDir": "src/spec",
|
|
168
168
|
"outputDir": {
|
|
169
169
|
"ios": "ios/generated",
|
|
170
170
|
"android": "android/generated"
|
|
@@ -18,10 +18,10 @@ import EnrichedTextInputNativeComponent, {
|
|
|
18
18
|
type OnMentionDetected,
|
|
19
19
|
type OnMentionDetectedInternal,
|
|
20
20
|
type OnRequestHtmlResultEvent,
|
|
21
|
-
type MentionStyleProperties,
|
|
22
21
|
type OnChangeStateDeprecatedEvent,
|
|
23
22
|
type OnKeyPressEvent,
|
|
24
|
-
|
|
23
|
+
type OnPasteImagesEvent,
|
|
24
|
+
} from './spec/EnrichedTextInputNativeComponent';
|
|
25
25
|
import type {
|
|
26
26
|
ColorValue,
|
|
27
27
|
HostInstance,
|
|
@@ -30,12 +30,18 @@ import type {
|
|
|
30
30
|
MeasureOnSuccessCallback,
|
|
31
31
|
NativeMethods,
|
|
32
32
|
NativeSyntheticEvent,
|
|
33
|
+
TargetedEvent,
|
|
33
34
|
TextStyle,
|
|
34
35
|
ViewProps,
|
|
35
36
|
ViewStyle,
|
|
36
37
|
} from 'react-native';
|
|
37
38
|
import { normalizeHtmlStyle } from './utils/normalizeHtmlStyle';
|
|
38
39
|
import { toNativeRegexConfig } from './utils/regexParser';
|
|
40
|
+
import { nullthrows } from './utils/nullthrows';
|
|
41
|
+
import type { HtmlStyle } from './types';
|
|
42
|
+
|
|
43
|
+
export type FocusEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
44
|
+
export type BlurEvent = NativeSyntheticEvent<TargetedEvent>;
|
|
39
45
|
|
|
40
46
|
export interface EnrichedTextInputInstance extends NativeMethods {
|
|
41
47
|
// General commands
|
|
@@ -61,6 +67,7 @@ export interface EnrichedTextInputInstance extends NativeMethods {
|
|
|
61
67
|
toggleBlockQuote: () => void;
|
|
62
68
|
toggleOrderedList: () => void;
|
|
63
69
|
toggleUnorderedList: () => void;
|
|
70
|
+
toggleCheckboxList: (checked: boolean) => void;
|
|
64
71
|
setLink: (start: number, end: number, text: string, url: string) => void;
|
|
65
72
|
setImage: (src: string, width: number, height: number) => void;
|
|
66
73
|
startMention: (indicator: string) => void;
|
|
@@ -76,52 +83,6 @@ export interface OnChangeMentionEvent {
|
|
|
76
83
|
text: string;
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
type HeadingStyle = {
|
|
80
|
-
fontSize?: number;
|
|
81
|
-
bold?: boolean;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
export interface HtmlStyle {
|
|
85
|
-
h1?: HeadingStyle;
|
|
86
|
-
h2?: HeadingStyle;
|
|
87
|
-
h3?: HeadingStyle;
|
|
88
|
-
h4?: HeadingStyle;
|
|
89
|
-
h5?: HeadingStyle;
|
|
90
|
-
h6?: HeadingStyle;
|
|
91
|
-
blockquote?: {
|
|
92
|
-
borderColor?: ColorValue;
|
|
93
|
-
borderWidth?: number;
|
|
94
|
-
gapWidth?: number;
|
|
95
|
-
color?: ColorValue;
|
|
96
|
-
};
|
|
97
|
-
codeblock?: {
|
|
98
|
-
color?: ColorValue;
|
|
99
|
-
borderRadius?: number;
|
|
100
|
-
backgroundColor?: ColorValue;
|
|
101
|
-
};
|
|
102
|
-
code?: {
|
|
103
|
-
color?: ColorValue;
|
|
104
|
-
backgroundColor?: ColorValue;
|
|
105
|
-
};
|
|
106
|
-
a?: {
|
|
107
|
-
color?: ColorValue;
|
|
108
|
-
textDecorationLine?: 'underline' | 'none';
|
|
109
|
-
};
|
|
110
|
-
mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
|
|
111
|
-
ol?: {
|
|
112
|
-
gapWidth?: number;
|
|
113
|
-
marginLeft?: number;
|
|
114
|
-
markerFontWeight?: TextStyle['fontWeight'];
|
|
115
|
-
markerColor?: ColorValue;
|
|
116
|
-
};
|
|
117
|
-
ul?: {
|
|
118
|
-
bulletColor?: ColorValue;
|
|
119
|
-
bulletSize?: number;
|
|
120
|
-
marginLeft?: number;
|
|
121
|
-
gapWidth?: number;
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
86
|
export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
126
87
|
ref?: RefObject<EnrichedTextInputInstance | null>;
|
|
127
88
|
autoFocus?: boolean;
|
|
@@ -137,8 +98,8 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
137
98
|
style?: ViewStyle | TextStyle;
|
|
138
99
|
scrollEnabled?: boolean;
|
|
139
100
|
linkRegex?: RegExp | null;
|
|
140
|
-
onFocus?: () => void;
|
|
141
|
-
onBlur?: () => void;
|
|
101
|
+
onFocus?: (e: FocusEvent) => void;
|
|
102
|
+
onBlur?: (e: BlurEvent) => void;
|
|
142
103
|
onChangeText?: (e: NativeSyntheticEvent<OnChangeTextEvent>) => void;
|
|
143
104
|
onChangeHtml?: (e: NativeSyntheticEvent<OnChangeHtmlEvent>) => void;
|
|
144
105
|
onChangeState?: (e: NativeSyntheticEvent<OnChangeStateEvent>) => void;
|
|
@@ -155,6 +116,7 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
155
116
|
onEndMention?: (indicator: string) => void;
|
|
156
117
|
onChangeSelection?: (e: NativeSyntheticEvent<OnChangeSelectionEvent>) => void;
|
|
157
118
|
onKeyPress?: (e: NativeSyntheticEvent<OnKeyPressEvent>) => void;
|
|
119
|
+
onPasteImages?: (e: NativeSyntheticEvent<OnPasteImagesEvent>) => void;
|
|
158
120
|
/**
|
|
159
121
|
* If true, Android will use experimental synchronous events.
|
|
160
122
|
* This will prevent from input flickering when updating component size.
|
|
@@ -165,15 +127,7 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
|
|
|
165
127
|
androidExperimentalSynchronousEvents?: boolean;
|
|
166
128
|
}
|
|
167
129
|
|
|
168
|
-
const
|
|
169
|
-
if (value == null) {
|
|
170
|
-
throw new Error('Unexpected null or undefined value');
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return value;
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
const warnAboutMissconfiguredMentions = (indicator: string) => {
|
|
130
|
+
const warnMentionIndicators = (indicator: string) => {
|
|
177
131
|
console.warn(
|
|
178
132
|
`Looks like you are trying to set a "${indicator}" but it's not in the mentionIndicators prop`
|
|
179
133
|
);
|
|
@@ -324,6 +278,9 @@ export const EnrichedTextInput = ({
|
|
|
324
278
|
toggleUnorderedList: () => {
|
|
325
279
|
Commands.toggleUnorderedList(nullthrows(nativeRef.current));
|
|
326
280
|
},
|
|
281
|
+
toggleCheckboxList: (checked: boolean) => {
|
|
282
|
+
Commands.toggleCheckboxList(nullthrows(nativeRef.current), checked);
|
|
283
|
+
},
|
|
327
284
|
setLink: (start: number, end: number, text: string, url: string) => {
|
|
328
285
|
Commands.addLink(nullthrows(nativeRef.current), start, end, text, url);
|
|
329
286
|
},
|
|
@@ -347,7 +304,7 @@ export const EnrichedTextInput = ({
|
|
|
347
304
|
},
|
|
348
305
|
startMention: (indicator: string) => {
|
|
349
306
|
if (!mentionIndicators?.includes(indicator)) {
|
|
350
|
-
|
|
307
|
+
warnMentionIndicators(indicator);
|
|
351
308
|
}
|
|
352
309
|
|
|
353
310
|
Commands.startMention(nullthrows(nativeRef.current), indicator);
|
|
@@ -401,6 +358,37 @@ export const EnrichedTextInput = ({
|
|
|
401
358
|
pendingHtmlRequests.current.delete(requestId);
|
|
402
359
|
};
|
|
403
360
|
|
|
361
|
+
const onChangeStateWithDeprecated = (
|
|
362
|
+
e: NativeSyntheticEvent<OnChangeStateEvent>
|
|
363
|
+
) => {
|
|
364
|
+
onChangeState?.(e);
|
|
365
|
+
// TODO: remove in 0.5.0 release
|
|
366
|
+
onChangeStateDeprecated?.({
|
|
367
|
+
...e,
|
|
368
|
+
nativeEvent: {
|
|
369
|
+
isBold: e.nativeEvent.bold.isActive,
|
|
370
|
+
isItalic: e.nativeEvent.italic.isActive,
|
|
371
|
+
isUnderline: e.nativeEvent.underline.isActive,
|
|
372
|
+
isStrikeThrough: e.nativeEvent.strikeThrough.isActive,
|
|
373
|
+
isInlineCode: e.nativeEvent.inlineCode.isActive,
|
|
374
|
+
isH1: e.nativeEvent.h1.isActive,
|
|
375
|
+
isH2: e.nativeEvent.h2.isActive,
|
|
376
|
+
isH3: e.nativeEvent.h3.isActive,
|
|
377
|
+
isH4: e.nativeEvent.h4.isActive,
|
|
378
|
+
isH5: e.nativeEvent.h5.isActive,
|
|
379
|
+
isH6: e.nativeEvent.h6.isActive,
|
|
380
|
+
isCodeBlock: e.nativeEvent.codeBlock.isActive,
|
|
381
|
+
isBlockQuote: e.nativeEvent.blockQuote.isActive,
|
|
382
|
+
isOrderedList: e.nativeEvent.orderedList.isActive,
|
|
383
|
+
isUnorderedList: e.nativeEvent.unorderedList.isActive,
|
|
384
|
+
isCheckboxList: e.nativeEvent.checkboxList.isActive,
|
|
385
|
+
isLink: e.nativeEvent.link.isActive,
|
|
386
|
+
isImage: e.nativeEvent.image.isActive,
|
|
387
|
+
isMention: e.nativeEvent.mention.isActive,
|
|
388
|
+
},
|
|
389
|
+
});
|
|
390
|
+
};
|
|
391
|
+
|
|
404
392
|
return (
|
|
405
393
|
<EnrichedTextInputNativeComponent
|
|
406
394
|
ref={nativeRef}
|
|
@@ -422,8 +410,7 @@ export const EnrichedTextInput = ({
|
|
|
422
410
|
onChangeHtml={onChangeHtml}
|
|
423
411
|
isOnChangeHtmlSet={onChangeHtml !== undefined}
|
|
424
412
|
isOnChangeTextSet={onChangeText !== undefined}
|
|
425
|
-
onChangeState={
|
|
426
|
-
onChangeStateDeprecated={onChangeStateDeprecated}
|
|
413
|
+
onChangeState={onChangeStateWithDeprecated}
|
|
427
414
|
onLinkDetected={handleLinkDetected}
|
|
428
415
|
onMentionDetected={handleMentionDetected}
|
|
429
416
|
onMention={handleMentionEvent}
|
package/src/index.tsx
CHANGED
|
@@ -8,4 +8,6 @@ export type {
|
|
|
8
8
|
OnMentionDetected,
|
|
9
9
|
OnChangeSelectionEvent,
|
|
10
10
|
OnKeyPressEvent,
|
|
11
|
-
|
|
11
|
+
OnPasteImagesEvent,
|
|
12
|
+
} from './spec/EnrichedTextInputNativeComponent';
|
|
13
|
+
export type { HtmlStyle, MentionStyleProperties } from './types';
|
package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts}
RENAMED
|
@@ -117,6 +117,11 @@ export interface OnChangeStateEvent {
|
|
|
117
117
|
isConflicting: boolean;
|
|
118
118
|
isBlocking: boolean;
|
|
119
119
|
};
|
|
120
|
+
checkboxList: {
|
|
121
|
+
isActive: boolean;
|
|
122
|
+
isConflicting: boolean;
|
|
123
|
+
isBlocking: boolean;
|
|
124
|
+
};
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
export interface OnChangeStateDeprecatedEvent {
|
|
@@ -135,6 +140,7 @@ export interface OnChangeStateDeprecatedEvent {
|
|
|
135
140
|
isBlockQuote: boolean;
|
|
136
141
|
isOrderedList: boolean;
|
|
137
142
|
isUnorderedList: boolean;
|
|
143
|
+
isCheckboxList: boolean;
|
|
138
144
|
isLink: boolean;
|
|
139
145
|
isImage: boolean;
|
|
140
146
|
isMention: boolean;
|
|
@@ -175,16 +181,30 @@ export interface OnRequestHtmlResultEvent {
|
|
|
175
181
|
html: UnsafeMixed;
|
|
176
182
|
}
|
|
177
183
|
|
|
178
|
-
export interface MentionStyleProperties {
|
|
179
|
-
color?: ColorValue;
|
|
180
|
-
backgroundColor?: ColorValue;
|
|
181
|
-
textDecorationLine?: 'underline' | 'none';
|
|
182
|
-
}
|
|
183
|
-
|
|
184
184
|
export interface OnKeyPressEvent {
|
|
185
185
|
key: string;
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
interface TargetedEvent {
|
|
189
|
+
target: Int32;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export interface PastedImage {
|
|
193
|
+
uri: string;
|
|
194
|
+
type: string;
|
|
195
|
+
width: Float;
|
|
196
|
+
height: Float;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export interface OnPasteImagesEvent {
|
|
200
|
+
images: {
|
|
201
|
+
uri: string;
|
|
202
|
+
type: string;
|
|
203
|
+
width: Float;
|
|
204
|
+
height: Float;
|
|
205
|
+
}[];
|
|
206
|
+
}
|
|
207
|
+
|
|
188
208
|
type Heading = {
|
|
189
209
|
fontSize?: Float;
|
|
190
210
|
bold?: boolean;
|
|
@@ -231,6 +251,12 @@ export interface HtmlStyleInternal {
|
|
|
231
251
|
marginLeft?: Float;
|
|
232
252
|
gapWidth?: Float;
|
|
233
253
|
};
|
|
254
|
+
ulCheckbox?: {
|
|
255
|
+
gapWidth?: Float;
|
|
256
|
+
boxSize?: Float;
|
|
257
|
+
marginLeft?: Float;
|
|
258
|
+
boxColor?: ColorValue;
|
|
259
|
+
};
|
|
234
260
|
}
|
|
235
261
|
|
|
236
262
|
export interface NativeProps extends ViewProps {
|
|
@@ -249,18 +275,18 @@ export interface NativeProps extends ViewProps {
|
|
|
249
275
|
linkRegex?: LinkNativeRegex;
|
|
250
276
|
|
|
251
277
|
// event callbacks
|
|
252
|
-
onInputFocus?: DirectEventHandler<
|
|
253
|
-
onInputBlur?: DirectEventHandler<
|
|
278
|
+
onInputFocus?: DirectEventHandler<TargetedEvent>;
|
|
279
|
+
onInputBlur?: DirectEventHandler<TargetedEvent>;
|
|
254
280
|
onChangeText?: DirectEventHandler<OnChangeTextEvent>;
|
|
255
281
|
onChangeHtml?: DirectEventHandler<OnChangeHtmlEvent>;
|
|
256
282
|
onChangeState?: DirectEventHandler<OnChangeStateEvent>;
|
|
257
|
-
onChangeStateDeprecated?: DirectEventHandler<OnChangeStateDeprecatedEvent>;
|
|
258
283
|
onLinkDetected?: DirectEventHandler<OnLinkDetected>;
|
|
259
284
|
onMentionDetected?: DirectEventHandler<OnMentionDetectedInternal>;
|
|
260
285
|
onMention?: DirectEventHandler<OnMentionEvent>;
|
|
261
286
|
onChangeSelection?: DirectEventHandler<OnChangeSelectionEvent>;
|
|
262
287
|
onRequestHtmlResult?: DirectEventHandler<OnRequestHtmlResultEvent>;
|
|
263
288
|
onInputKeyPress?: DirectEventHandler<OnKeyPressEvent>;
|
|
289
|
+
onPasteImages?: DirectEventHandler<OnPasteImagesEvent>;
|
|
264
290
|
|
|
265
291
|
// Style related props - used for generating proper setters in component's manager
|
|
266
292
|
// These should not be passed as regular props
|
|
@@ -308,6 +334,10 @@ interface NativeCommands {
|
|
|
308
334
|
toggleBlockQuote: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
309
335
|
toggleOrderedList: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
310
336
|
toggleUnorderedList: (viewRef: React.ElementRef<ComponentType>) => void;
|
|
337
|
+
toggleCheckboxList: (
|
|
338
|
+
viewRef: React.ElementRef<ComponentType>,
|
|
339
|
+
checked: boolean
|
|
340
|
+
) => void;
|
|
311
341
|
addLink: (
|
|
312
342
|
viewRef: React.ElementRef<ComponentType>,
|
|
313
343
|
start: Int32,
|
|
@@ -361,6 +391,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
|
|
361
391
|
'toggleBlockQuote',
|
|
362
392
|
'toggleOrderedList',
|
|
363
393
|
'toggleUnorderedList',
|
|
394
|
+
'toggleCheckboxList',
|
|
364
395
|
'addLink',
|
|
365
396
|
'addImage',
|
|
366
397
|
'startMention',
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ColorValue, TextStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
interface HeadingStyle {
|
|
4
|
+
fontSize?: number;
|
|
5
|
+
bold?: boolean;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface MentionStyleProperties {
|
|
9
|
+
color?: ColorValue;
|
|
10
|
+
backgroundColor?: ColorValue;
|
|
11
|
+
textDecorationLine?: 'underline' | 'none';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface HtmlStyle {
|
|
15
|
+
h1?: HeadingStyle;
|
|
16
|
+
h2?: HeadingStyle;
|
|
17
|
+
h3?: HeadingStyle;
|
|
18
|
+
h4?: HeadingStyle;
|
|
19
|
+
h5?: HeadingStyle;
|
|
20
|
+
h6?: HeadingStyle;
|
|
21
|
+
blockquote?: {
|
|
22
|
+
borderColor?: ColorValue;
|
|
23
|
+
borderWidth?: number;
|
|
24
|
+
gapWidth?: number;
|
|
25
|
+
color?: ColorValue;
|
|
26
|
+
};
|
|
27
|
+
codeblock?: {
|
|
28
|
+
color?: ColorValue;
|
|
29
|
+
borderRadius?: number;
|
|
30
|
+
backgroundColor?: ColorValue;
|
|
31
|
+
};
|
|
32
|
+
code?: {
|
|
33
|
+
color?: ColorValue;
|
|
34
|
+
backgroundColor?: ColorValue;
|
|
35
|
+
};
|
|
36
|
+
a?: {
|
|
37
|
+
color?: ColorValue;
|
|
38
|
+
textDecorationLine?: 'underline' | 'none';
|
|
39
|
+
};
|
|
40
|
+
mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
|
|
41
|
+
ol?: {
|
|
42
|
+
gapWidth?: number;
|
|
43
|
+
marginLeft?: number;
|
|
44
|
+
markerFontWeight?: TextStyle['fontWeight'];
|
|
45
|
+
markerColor?: ColorValue;
|
|
46
|
+
};
|
|
47
|
+
ul?: {
|
|
48
|
+
bulletColor?: ColorValue;
|
|
49
|
+
bulletSize?: number;
|
|
50
|
+
marginLeft?: number;
|
|
51
|
+
gapWidth?: number;
|
|
52
|
+
};
|
|
53
|
+
ulCheckbox?: {
|
|
54
|
+
boxSize?: number;
|
|
55
|
+
gapWidth?: number;
|
|
56
|
+
marginLeft?: number;
|
|
57
|
+
boxColor?: ColorValue;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type { HtmlStyle } from '../EnrichedTextInput';
|
|
2
1
|
import { type ColorValue, processColor } from 'react-native';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
HtmlStyleInternal,
|
|
6
|
-
} from '../EnrichedTextInputNativeComponent';
|
|
2
|
+
import type { HtmlStyleInternal } from '../spec/EnrichedTextInputNativeComponent';
|
|
3
|
+
import type { HtmlStyle, MentionStyleProperties } from '../types';
|
|
7
4
|
|
|
8
5
|
const defaultStyle: Required<HtmlStyle> = {
|
|
9
6
|
h1: {
|
|
@@ -66,6 +63,12 @@ const defaultStyle: Required<HtmlStyle> = {
|
|
|
66
63
|
marginLeft: 16,
|
|
67
64
|
gapWidth: 16,
|
|
68
65
|
},
|
|
66
|
+
ulCheckbox: {
|
|
67
|
+
boxSize: 24,
|
|
68
|
+
gapWidth: 16,
|
|
69
|
+
marginLeft: 16,
|
|
70
|
+
boxColor: 'blue',
|
|
71
|
+
},
|
|
69
72
|
};
|
|
70
73
|
|
|
71
74
|
const isMentionStyleRecord = (
|
package/src/utils/regexParser.ts
CHANGED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
package com.swmansion.enriched.events
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.WritableMap
|
|
4
|
-
import com.facebook.react.uimanager.events.Event
|
|
5
|
-
|
|
6
|
-
class OnChangeStateDeprecatedEvent(
|
|
7
|
-
surfaceId: Int,
|
|
8
|
-
viewId: Int,
|
|
9
|
-
private val state: WritableMap,
|
|
10
|
-
private val experimentalSynchronousEvents: Boolean,
|
|
11
|
-
) : Event<OnChangeStateDeprecatedEvent>(surfaceId, viewId) {
|
|
12
|
-
override fun getEventName(): String = EVENT_NAME
|
|
13
|
-
|
|
14
|
-
override fun getEventData(): WritableMap = state
|
|
15
|
-
|
|
16
|
-
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
17
|
-
|
|
18
|
-
companion object {
|
|
19
|
-
const val EVENT_NAME: String = "onChangeStateDeprecated"
|
|
20
|
-
}
|
|
21
|
-
}
|