react-native-enriched 0.2.1 → 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 +21 -16
- package/android/build.gradle +77 -72
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +21 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +7 -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/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.cpp +276 -0
- package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.h +239 -0
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +10 -0
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +251 -0
- package/android/gradle.properties +5 -5
- package/android/lint.gradle +70 -0
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +4 -5
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +50 -15
- package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
- package/android/src/main/java/com/swmansion/enriched/common/EnrichedConstants.kt +11 -0
- 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 +3 -2
- 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 +228 -160
- package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBlockQuoteSpan.kt +53 -0
- 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 +12 -14
- 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 +68 -51
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedInlineCodeSpan.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedLinkSpan.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedMentionSpan.kt +35 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +21 -29
- 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 +13 -17
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedBlockSpan.kt +5 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedHeadingSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedParagraphSpan.kt +5 -0
- 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 +2 -3
- package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputConnectionWrapper.kt +140 -0
- 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} +322 -157
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +4 -2
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +182 -66
- package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +75 -25
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +22 -12
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeHtmlEvent.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +11 -10
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeStateEvent.kt +21 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeTextEvent.kt +30 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputBlurEvent.kt +25 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputFocusEvent.kt +25 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputKeyPressEvent.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnLinkDetectedEvent.kt +32 -0
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +11 -10
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +10 -9
- 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 +2 -3
- 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/textinput/spans/EnrichedSpans.kt +241 -0
- 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 +129 -57
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +30 -13
- package/android/src/main/java/com/swmansion/enriched/textinput/styles/ListStyles.kt +263 -0
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +94 -34
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +143 -67
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedEditableFactory.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +84 -54
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpanState.kt +304 -0
- package/android/src/main/java/com/swmansion/enriched/{utils/Utils.kt → textinput/utils/EnrichedSpannable.kt} +22 -31
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpannableStringBuilder.kt +16 -0
- 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 +56 -24
- package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +37 -14
- package/android/src/main/new_arch/CMakeLists.txt +7 -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/ReactNativeEnrichedSpec/conversions.h +46 -0
- package/ios/EnrichedTextInputView.h +2 -1
- package/ios/EnrichedTextInputView.mm +603 -60
- package/ios/config/InputConfig.h +28 -0
- package/ios/config/InputConfig.mm +237 -8
- package/ios/extensions/ImageExtension.h +35 -0
- package/ios/extensions/ImageExtension.mm +156 -0
- package/ios/{utils → extensions}/LayoutManagerExtension.mm +115 -95
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
- package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.cpp +276 -0
- package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.h +239 -0
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +10 -0
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +251 -0
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +95 -0
- package/ios/inputParser/InputParser.mm +218 -18
- package/ios/inputTextView/InputTextView.mm +118 -0
- package/ios/{attachments → interfaces}/ImageAttachment.h +1 -0
- package/ios/interfaces/ImageAttachment.mm +46 -0
- package/ios/interfaces/LinkRegexConfig.h +19 -0
- package/ios/interfaces/LinkRegexConfig.mm +37 -0
- package/ios/{utils → interfaces}/MentionStyleProps.mm +2 -2
- package/ios/{utils → interfaces}/StyleHeaders.h +22 -1
- package/ios/{utils → interfaces}/StyleTypeEnum.h +4 -0
- package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
- package/ios/styles/BlockQuoteStyle.mm +5 -5
- package/ios/styles/BoldStyle.mm +21 -6
- package/ios/styles/CheckboxListStyle.mm +321 -0
- package/ios/styles/CodeBlockStyle.mm +5 -5
- 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 +20 -0
- package/ios/styles/H5Style.mm +20 -0
- package/ios/styles/H6Style.mm +20 -0
- package/ios/styles/HeadingStyleBase.mm +161 -72
- package/ios/styles/ImageStyle.mm +5 -5
- package/ios/styles/InlineCodeStyle.mm +30 -19
- package/ios/styles/ItalicStyle.mm +5 -5
- package/ios/styles/LinkStyle.mm +98 -40
- package/ios/styles/MentionStyle.mm +4 -4
- package/ios/styles/OrderedListStyle.mm +5 -5
- package/ios/styles/StrikethroughStyle.mm +5 -5
- package/ios/styles/UnderlineStyle.mm +5 -5
- package/ios/styles/UnorderedListStyle.mm +5 -5
- package/ios/utils/CheckboxHitTestUtils.h +10 -0
- package/ios/utils/CheckboxHitTestUtils.mm +123 -0
- package/ios/utils/ParagraphAttributesUtils.h +4 -0
- package/ios/utils/ParagraphAttributesUtils.mm +142 -45
- package/ios/utils/ParagraphsUtils.mm +4 -4
- 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 +57 -11
- package/lib/module/EnrichedTextInput.js.map +1 -1
- package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +175 -18
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/{normalizeHtmlStyle.js → utils/normalizeHtmlStyle.js} +18 -0
- package/lib/module/utils/normalizeHtmlStyle.js.map +1 -0
- package/lib/module/utils/nullthrows.js +9 -0
- package/lib/module/utils/nullthrows.js.map +1 -0
- package/lib/module/utils/regexParser.js +46 -0
- package/lib/module/utils/regexParser.js.map +1 -0
- package/lib/typescript/src/EnrichedTextInput.d.ts +20 -51
- 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} +154 -18
- 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 +4 -0
- package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -0
- 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 +3 -0
- package/lib/typescript/src/utils/regexParser.d.ts.map +1 -0
- package/package.json +13 -9
- package/src/EnrichedTextInput.tsx +88 -63
- package/src/index.tsx +5 -1
- package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +175 -18
- package/src/types.ts +59 -0
- package/src/{normalizeHtmlStyle.ts → utils/normalizeHtmlStyle.ts} +20 -5
- package/src/utils/nullthrows.ts +7 -0
- package/src/utils/regexParser.ts +56 -0
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.cpp +0 -128
- package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.h +0 -102
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeHtmlEvent.kt +0 -28
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateEvent.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeTextEvent.kt +0 -30
- package/android/src/main/java/com/swmansion/enriched/events/OnInputBlurEvent.kt +0 -27
- package/android/src/main/java/com/swmansion/enriched/events/OnInputFocusEvent.kt +0 -27
- package/android/src/main/java/com/swmansion/enriched/events/OnLinkDetectedEvent.kt +0 -30
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBlockQuoteSpan.kt +0 -44
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -16
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -23
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -23
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -23
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedInlineCodeSpan.kt +0 -27
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -15
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedLinkSpan.kt +0 -30
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedMentionSpan.kt +0 -42
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedSpans.kt +0 -136
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -14
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -14
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedBlockSpan.kt +0 -4
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedHeadingSpan.kt +0 -4
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -4
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedParagraphSpan.kt +0 -4
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -8
- package/android/src/main/java/com/swmansion/enriched/styles/ListStyles.kt +0 -172
- package/android/src/main/java/com/swmansion/enriched/utils/EnrichedSpanState.kt +0 -204
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
- package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/conversions.h +0 -26
- package/ios/attachments/ImageAttachment.mm +0 -34
- package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.cpp +0 -128
- package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.h +0 -102
- package/lib/module/normalizeHtmlStyle.js.map +0 -1
- package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/normalizeHtmlStyle.d.ts +0 -4
- package/lib/typescript/src/normalizeHtmlStyle.d.ts.map +0 -1
- /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/{utils → extensions}/ColorExtension.h +0 -0
- /package/ios/{utils → extensions}/ColorExtension.mm +0 -0
- /package/ios/{utils → extensions}/FontExtension.h +0 -0
- /package/ios/{utils → extensions}/FontExtension.mm +0 -0
- /package/ios/{utils → extensions}/LayoutManagerExtension.h +0 -0
- /package/ios/{utils → extensions}/StringExtension.h +0 -0
- /package/ios/{utils → extensions}/StringExtension.mm +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
- /package/ios/{utils → interfaces}/BaseStyleProtocol.h +0 -0
- /package/ios/{utils → interfaces}/ImageData.h +0 -0
- /package/ios/{utils → interfaces}/ImageData.mm +0 -0
- /package/ios/{utils → interfaces}/LinkData.h +0 -0
- /package/ios/{utils → interfaces}/LinkData.mm +0 -0
- /package/ios/{attachments → interfaces}/MediaAttachment.h +0 -0
- /package/ios/{attachments → interfaces}/MediaAttachment.mm +0 -0
- /package/ios/{utils → interfaces}/MentionParams.h +0 -0
- /package/ios/{utils → interfaces}/MentionParams.mm +0 -0
- /package/ios/{utils → interfaces}/MentionStyleProps.h +0 -0
- /package/ios/{utils → interfaces}/StylePair.h +0 -0
- /package/ios/{utils → interfaces}/StylePair.mm +0 -0
- /package/ios/{utils → interfaces}/TextDecorationLineEnum.h +0 -0
- /package/ios/{utils → interfaces}/TextDecorationLineEnum.mm +0 -0
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
typedInput->stylesDict[@([BlockQuoteStyle getStyleType])];
|
|
23
23
|
CodeBlockStyle *cbStyle =
|
|
24
24
|
typedInput->stylesDict[@([CodeBlockStyle getStyleType])];
|
|
25
|
+
CheckboxListStyle *cbLStyle =
|
|
26
|
+
typedInput->stylesDict[@([CheckboxListStyle getStyleType])];
|
|
25
27
|
|
|
26
28
|
if (typedInput == nullptr) {
|
|
27
29
|
return NO;
|
|
@@ -57,17 +59,35 @@
|
|
|
57
59
|
// applied
|
|
58
60
|
// - reapply the paragraph style that was present so that a zero width space
|
|
59
61
|
// appears here
|
|
60
|
-
NSArray *handledStyles = @[ ulStyle, olStyle, bqStyle, cbStyle ];
|
|
62
|
+
NSArray *handledStyles = @[ ulStyle, olStyle, bqStyle, cbStyle, cbLStyle ];
|
|
61
63
|
for (id<BaseStyleProtocol> style in handledStyles) {
|
|
62
64
|
if ([style detectStyle:nonNewlineRange]) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
// For checkbox lists, preserve the current checked state
|
|
66
|
+
if (style == cbLStyle) {
|
|
67
|
+
BOOL isCurrentlyChecked =
|
|
68
|
+
[cbLStyle getCheckboxStateAt:range.location];
|
|
69
|
+
[TextInsertionUtils replaceText:text
|
|
70
|
+
at:range
|
|
71
|
+
additionalAttributes:nullptr
|
|
72
|
+
input:typedInput
|
|
73
|
+
withSelection:YES];
|
|
74
|
+
typedInput->textView.typingAttributes =
|
|
75
|
+
typedInput->defaultTypingAttributes;
|
|
76
|
+
[cbLStyle addAttributesWithCheckedValue:isCurrentlyChecked
|
|
77
|
+
inRange:NSMakeRange(range.location, 0)
|
|
78
|
+
withTypingAttr:YES];
|
|
79
|
+
} else {
|
|
80
|
+
[TextInsertionUtils replaceText:text
|
|
81
|
+
at:range
|
|
82
|
+
additionalAttributes:nullptr
|
|
83
|
+
input:typedInput
|
|
84
|
+
withSelection:YES];
|
|
85
|
+
typedInput->textView.typingAttributes =
|
|
86
|
+
typedInput->defaultTypingAttributes;
|
|
87
|
+
[style addAttributes:NSMakeRange(range.location, 0)
|
|
88
|
+
withTypingAttr:YES];
|
|
89
|
+
}
|
|
90
|
+
|
|
71
91
|
return YES;
|
|
72
92
|
}
|
|
73
93
|
}
|
|
@@ -116,63 +136,140 @@
|
|
|
116
136
|
return NO;
|
|
117
137
|
}
|
|
118
138
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
139
|
+
// Must be a backspace.
|
|
140
|
+
if (text.length > 0) {
|
|
141
|
+
return NO;
|
|
142
|
+
}
|
|
122
143
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
144
|
+
// Backspace must have removed a newline character.
|
|
145
|
+
NSString *removedString =
|
|
146
|
+
[typedInput->textView.textStorage.string substringWithRange:range];
|
|
147
|
+
if ([removedString
|
|
148
|
+
rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]]
|
|
149
|
+
.location == NSNotFound) {
|
|
150
|
+
return NO;
|
|
151
|
+
}
|
|
130
152
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
153
|
+
NSRange leftRange = [typedInput->textView.textStorage.string
|
|
154
|
+
paragraphRangeForRange:NSMakeRange(range.location, 0)];
|
|
134
155
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
156
|
+
id<BaseStyleProtocol> leftParagraphStyle = nullptr;
|
|
157
|
+
for (NSNumber *key in typedInput->stylesDict) {
|
|
158
|
+
id<BaseStyleProtocol> style = typedInput->stylesDict[key];
|
|
159
|
+
if ([[style class] isParagraphStyle] && [style detectStyle:leftRange]) {
|
|
160
|
+
leftParagraphStyle = style;
|
|
139
161
|
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
if (leftParagraphStyle == nullptr) {
|
|
165
|
+
return NO;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// index out of bounds
|
|
169
|
+
NSUInteger rightRangeStart = range.location + range.length;
|
|
170
|
+
if (rightRangeStart >= typedInput->textView.textStorage.string.length) {
|
|
171
|
+
return NO;
|
|
172
|
+
}
|
|
140
173
|
|
|
141
|
-
|
|
142
|
-
|
|
174
|
+
NSRange rightRange = [typedInput->textView.textStorage.string
|
|
175
|
+
paragraphRangeForRange:NSMakeRange(rightRangeStart, 1)];
|
|
143
176
|
|
|
144
|
-
|
|
177
|
+
StyleType type = [[leftParagraphStyle class] getStyleType];
|
|
145
178
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
179
|
+
NSArray *conflictingStyles = [typedInput
|
|
180
|
+
getPresentStyleTypesFrom:typedInput->conflictingStyles[@(type)]
|
|
181
|
+
range:rightRange];
|
|
182
|
+
NSArray *blockingStyles =
|
|
183
|
+
[typedInput getPresentStyleTypesFrom:typedInput->blockingStyles[@(type)]
|
|
184
|
+
range:rightRange];
|
|
185
|
+
NSArray *allToBeRemoved =
|
|
186
|
+
[conflictingStyles arrayByAddingObjectsFromArray:blockingStyles];
|
|
154
187
|
|
|
155
|
-
|
|
156
|
-
|
|
188
|
+
for (NSNumber *style in allToBeRemoved) {
|
|
189
|
+
id<BaseStyleProtocol> styleClass = typedInput->stylesDict[style];
|
|
157
190
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
191
|
+
// for ranges, we need to remove each occurence
|
|
192
|
+
NSArray<StylePair *> *allOccurences =
|
|
193
|
+
[styleClass findAllOccurences:rightRange];
|
|
161
194
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
195
|
+
for (StylePair *pair in allOccurences) {
|
|
196
|
+
[styleClass removeAttributes:[pair.rangeValue rangeValue]];
|
|
165
197
|
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
[TextInsertionUtils replaceText:text
|
|
201
|
+
at:range
|
|
202
|
+
additionalAttributes:nullptr
|
|
203
|
+
input:typedInput
|
|
204
|
+
withSelection:YES];
|
|
205
|
+
return YES;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Resets typing attributes to defaults when the cursor lands on an empty line
|
|
210
|
+
* after a deletion.
|
|
211
|
+
*
|
|
212
|
+
* This override is necessary because `UITextView` automatically inherits
|
|
213
|
+
* attributes from the preceding newline. This prevents scenarios where a
|
|
214
|
+
* restrictive style (like CodeBlock) "leaks" into the next empty paragraph.
|
|
215
|
+
*/
|
|
216
|
+
+ (BOOL)handleResetTypingAttributesOnBackspace:(NSRange)range
|
|
217
|
+
replacementText:(NSString *)text
|
|
218
|
+
input:(id)input {
|
|
219
|
+
EnrichedTextInputView *typedInput = (EnrichedTextInputView *)input;
|
|
220
|
+
if (typedInput == nullptr) {
|
|
221
|
+
return NO;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
NSString *storageString = typedInput->textView.textStorage.string;
|
|
225
|
+
|
|
226
|
+
if (text.length > 0 || range.location >= storageString.length) {
|
|
227
|
+
return NO;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
unichar firstCharToDelete = [storageString characterAtIndex:range.location];
|
|
231
|
+
if (![[NSCharacterSet newlineCharacterSet]
|
|
232
|
+
characterIsMember:firstCharToDelete]) {
|
|
233
|
+
return NO;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
NSRange leftParagraphRange =
|
|
237
|
+
[storageString paragraphRangeForRange:NSMakeRange(range.location, 0)];
|
|
238
|
+
BOOL isLeftLineEmpty = [self isParagraphEmpty:leftParagraphRange
|
|
239
|
+
inString:storageString];
|
|
240
|
+
|
|
241
|
+
BOOL isRightLineEmpty = YES;
|
|
242
|
+
NSUInteger rightRangeStart = range.location + range.length;
|
|
166
243
|
|
|
244
|
+
if (rightRangeStart < storageString.length) {
|
|
245
|
+
NSRange rightParagraphRange =
|
|
246
|
+
[storageString paragraphRangeForRange:NSMakeRange(rightRangeStart, 0)];
|
|
247
|
+
isRightLineEmpty = [self isParagraphEmpty:rightParagraphRange
|
|
248
|
+
inString:storageString];
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (isLeftLineEmpty && isRightLineEmpty) {
|
|
167
252
|
[TextInsertionUtils replaceText:text
|
|
168
253
|
at:range
|
|
169
254
|
additionalAttributes:nullptr
|
|
170
255
|
input:typedInput
|
|
171
256
|
withSelection:YES];
|
|
257
|
+
|
|
258
|
+
typedInput->textView.typingAttributes = typedInput->defaultTypingAttributes;
|
|
172
259
|
return YES;
|
|
173
260
|
}
|
|
174
261
|
|
|
175
262
|
return NO;
|
|
176
263
|
}
|
|
177
264
|
|
|
265
|
+
+ (BOOL)isParagraphEmpty:(NSRange)range inString:(NSString *)string {
|
|
266
|
+
if (range.length == 0)
|
|
267
|
+
return YES;
|
|
268
|
+
|
|
269
|
+
NSString *paragraphText = [string substringWithRange:range];
|
|
270
|
+
NSString *trimmed = [paragraphText
|
|
271
|
+
stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
|
|
272
|
+
return trimmed.length == 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
178
275
|
@end
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
NSMutableArray *results = [[NSMutableArray alloc] init];
|
|
17
17
|
|
|
18
18
|
NSInteger lastStart = fullRange.location;
|
|
19
|
-
for (int i = fullRange.location;
|
|
20
|
-
i++) {
|
|
19
|
+
for (int i = int(fullRange.location);
|
|
20
|
+
i < fullRange.location + fullRange.length; i++) {
|
|
21
21
|
unichar currentChar = [textView.textStorage.string characterAtIndex:i];
|
|
22
22
|
if ([[NSCharacterSet newlineCharacterSet] characterIsMember:currentChar]) {
|
|
23
23
|
NSRange paragraphRange = [textView.textStorage.string
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
|
|
41
41
|
+ (NSArray *)getNonNewlineRangesIn:(UITextView *)textView range:(NSRange)range {
|
|
42
42
|
NSMutableArray *nonNewlineRanges = [[NSMutableArray alloc] init];
|
|
43
|
-
int lastRangeLocation = range.location;
|
|
43
|
+
int lastRangeLocation = int(range.location);
|
|
44
44
|
|
|
45
|
-
for (int i = range.location; i < range.location + range.length; i++) {
|
|
45
|
+
for (int i = int(range.location); i < range.location + range.length; i++) {
|
|
46
46
|
unichar currentChar = [textView.textStorage.string characterAtIndex:i];
|
|
47
47
|
if ([[NSCharacterSet newlineCharacterSet] characterIsMember:currentChar]) {
|
|
48
48
|
if (i - lastRangeLocation > 0) {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
typedef NS_ENUM(NSInteger, TextBlockTapKind) {
|
|
2
|
+
TextBlockTapKindNone = 0,
|
|
3
|
+
TextBlockTapKindCheckbox,
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
@class EnrichedTextInputView;
|
|
7
|
+
|
|
8
|
+
@interface TextBlockTapGestureRecognizer : UITapGestureRecognizer
|
|
9
|
+
- (instancetype _Nonnull)initWithInput:(id _Nonnull)input
|
|
10
|
+
action:(SEL _Nonnull)action;
|
|
11
|
+
|
|
12
|
+
@property(nonatomic, weak) EnrichedTextInputView *input;
|
|
13
|
+
|
|
14
|
+
@property(nonatomic, assign, readonly) TextBlockTapKind tapKind;
|
|
15
|
+
@property(nonatomic, assign, readonly) NSInteger characterIndex;
|
|
16
|
+
|
|
17
|
+
@end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#import "TextBlockTapGestureRecognizer.h"
|
|
2
|
+
#import "CheckboxHitTestUtils.h"
|
|
3
|
+
#import "EnrichedTextInputView.h"
|
|
4
|
+
|
|
5
|
+
@implementation TextBlockTapGestureRecognizer {
|
|
6
|
+
TextBlockTapKind _tapKind;
|
|
7
|
+
NSInteger _characterIndex;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
- (instancetype)initWithInput:(id)input action:(SEL)action {
|
|
11
|
+
self = [super initWithTarget:input action:action];
|
|
12
|
+
_input = input;
|
|
13
|
+
|
|
14
|
+
self.cancelsTouchesInView = YES;
|
|
15
|
+
self.delaysTouchesBegan = YES;
|
|
16
|
+
self.delaysTouchesEnded = YES;
|
|
17
|
+
|
|
18
|
+
for (UIGestureRecognizer *gr in _input->textView.gestureRecognizers) {
|
|
19
|
+
[gr requireGestureRecognizerToFail:self];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return self;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
- (TextBlockTapKind)tapKind {
|
|
26
|
+
return _tapKind;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
- (NSInteger)characterIndex {
|
|
30
|
+
return _characterIndex;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
|
|
34
|
+
_tapKind = TextBlockTapKindNone;
|
|
35
|
+
_characterIndex = NSNotFound;
|
|
36
|
+
|
|
37
|
+
if (!self.input) {
|
|
38
|
+
self.state = UIGestureRecognizerStateFailed;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
UITouch *touch = touches.anyObject;
|
|
43
|
+
CGPoint point = [touch locationInView:self.input->textView];
|
|
44
|
+
NSInteger checkboxIndex =
|
|
45
|
+
[CheckboxHitTestUtils hitTestCheckboxAtPoint:point inInput:self.input];
|
|
46
|
+
|
|
47
|
+
if (checkboxIndex >= 0) {
|
|
48
|
+
_tapKind = TextBlockTapKindCheckbox;
|
|
49
|
+
_characterIndex = checkboxIndex;
|
|
50
|
+
[super touchesBegan:touches withEvent:event];
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
self.state = UIGestureRecognizerStateFailed;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@end
|
|
@@ -51,13 +51,16 @@
|
|
|
51
51
|
input->stylesDict[@([BlockQuoteStyle getStyleType])];
|
|
52
52
|
CodeBlockStyle *cbStyle =
|
|
53
53
|
input->stylesDict[@([CodeBlockStyle getStyleType])];
|
|
54
|
+
CheckboxListStyle *cbLStyle =
|
|
55
|
+
input->stylesDict[@([CheckboxListStyle getStyleType])];
|
|
54
56
|
|
|
55
57
|
// zero width spaces with no lists/blockquotes/codeblocks on them get
|
|
56
58
|
// removed
|
|
57
59
|
if (![ulStyle detectStyle:characterRange] &&
|
|
58
60
|
![olStyle detectStyle:characterRange] &&
|
|
59
61
|
![bqStyle detectStyle:characterRange] &&
|
|
60
|
-
![cbStyle detectStyle:characterRange]
|
|
62
|
+
![cbStyle detectStyle:characterRange] &&
|
|
63
|
+
![cbLStyle detectStyle:characterRange]) {
|
|
61
64
|
[indexesToBeRemoved addObject:@(characterRange.location)];
|
|
62
65
|
}
|
|
63
66
|
}
|
|
@@ -100,6 +103,8 @@
|
|
|
100
103
|
BlockQuoteStyle *bqStyle =
|
|
101
104
|
input->stylesDict[@([BlockQuoteStyle getStyleType])];
|
|
102
105
|
CodeBlockStyle *cbStyle = input->stylesDict[@([CodeBlockStyle getStyleType])];
|
|
106
|
+
CheckboxListStyle *cbLStyle =
|
|
107
|
+
input->stylesDict[@([CheckboxListStyle getStyleType])];
|
|
103
108
|
NSMutableArray *indexesToBeInserted = [[NSMutableArray alloc] init];
|
|
104
109
|
NSRange preAddSelection = input->textView.selectedRange;
|
|
105
110
|
|
|
@@ -115,7 +120,8 @@
|
|
|
115
120
|
if ([ulStyle detectStyle:characterRange] ||
|
|
116
121
|
[olStyle detectStyle:characterRange] ||
|
|
117
122
|
[bqStyle detectStyle:characterRange] ||
|
|
118
|
-
[cbStyle detectStyle:characterRange]
|
|
123
|
+
[cbStyle detectStyle:characterRange] ||
|
|
124
|
+
[cbLStyle detectStyle:characterRange]) {
|
|
119
125
|
// we have an empty list or quote item with no space: add it!
|
|
120
126
|
[indexesToBeInserted addObject:@(paragraphRange.location)];
|
|
121
127
|
}
|
|
@@ -150,7 +156,8 @@
|
|
|
150
156
|
[input->textView.textStorage.string paragraphRangeForRange:lastRange];
|
|
151
157
|
if (lastParagraphRange.length == 0 &&
|
|
152
158
|
([ulStyle detectStyle:lastRange] || [olStyle detectStyle:lastRange] ||
|
|
153
|
-
[bqStyle detectStyle:lastRange] || [cbStyle detectStyle:lastRange]
|
|
159
|
+
[bqStyle detectStyle:lastRange] || [cbStyle detectStyle:lastRange] ||
|
|
160
|
+
[cbLStyle detectStyle:lastRange])) {
|
|
154
161
|
[TextInsertionUtils insertText:@"\u200B"
|
|
155
162
|
at:lastRange.location
|
|
156
163
|
additionalAttributes:nullptr
|
|
@@ -210,6 +217,8 @@
|
|
|
210
217
|
typedInput->stylesDict[@([BlockQuoteStyle getStyleType])];
|
|
211
218
|
CodeBlockStyle *cbStyle =
|
|
212
219
|
typedInput->stylesDict[@([CodeBlockStyle getStyleType])];
|
|
220
|
+
CheckboxListStyle *cbLStyle =
|
|
221
|
+
typedInput->stylesDict[@([CheckboxListStyle getStyleType])];
|
|
213
222
|
|
|
214
223
|
if ([cbStyle detectStyle:removalRange]) {
|
|
215
224
|
// code blocks are being handled differently; we want to remove previous
|
|
@@ -238,6 +247,8 @@
|
|
|
238
247
|
[olStyle removeAttributes:styleRemovalRange];
|
|
239
248
|
} else if ([bqStyle detectStyle:styleRemovalRange]) {
|
|
240
249
|
[bqStyle removeAttributes:styleRemovalRange];
|
|
250
|
+
} else if ([cbLStyle detectStyle:styleRemovalRange]) {
|
|
251
|
+
[cbLStyle removeAttributes:styleRemovalRange];
|
|
241
252
|
}
|
|
242
253
|
|
|
243
254
|
return YES;
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useEffect, useImperativeHandle, useMemo, useRef } from 'react';
|
|
4
|
-
import EnrichedTextInputNativeComponent, { Commands } from './EnrichedTextInputNativeComponent';
|
|
5
|
-
import { normalizeHtmlStyle } from "./normalizeHtmlStyle.js";
|
|
4
|
+
import EnrichedTextInputNativeComponent, { Commands } from './spec/EnrichedTextInputNativeComponent';
|
|
5
|
+
import { normalizeHtmlStyle } from "./utils/normalizeHtmlStyle.js";
|
|
6
|
+
import { toNativeRegexConfig } from "./utils/regexParser.js";
|
|
7
|
+
import { nullthrows } from "./utils/nullthrows.js";
|
|
6
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const
|
|
8
|
-
if (value == null) {
|
|
9
|
-
throw new Error('Unexpected null or undefined value');
|
|
10
|
-
}
|
|
11
|
-
return value;
|
|
12
|
-
};
|
|
13
|
-
const warnAboutMissconfiguredMentions = indicator => {
|
|
9
|
+
const warnMentionIndicators = indicator => {
|
|
14
10
|
console.warn(`Looks like you are trying to set a "${indicator}" but it's not in the mentionIndicators prop`);
|
|
15
11
|
};
|
|
16
12
|
export const EnrichedTextInput = ({
|
|
@@ -26,17 +22,20 @@ export const EnrichedTextInput = ({
|
|
|
26
22
|
style,
|
|
27
23
|
autoCapitalize = 'sentences',
|
|
28
24
|
htmlStyle = {},
|
|
25
|
+
linkRegex: _linkRegex,
|
|
29
26
|
onFocus,
|
|
30
27
|
onBlur,
|
|
31
28
|
onChangeText,
|
|
32
29
|
onChangeHtml,
|
|
33
30
|
onChangeState,
|
|
31
|
+
onChangeStateDeprecated,
|
|
34
32
|
onLinkDetected,
|
|
35
33
|
onMentionDetected,
|
|
36
34
|
onStartMention,
|
|
37
35
|
onChangeMention,
|
|
38
36
|
onEndMention,
|
|
39
37
|
onChangeSelection,
|
|
38
|
+
onKeyPress,
|
|
40
39
|
androidExperimentalSynchronousEvents = false,
|
|
41
40
|
scrollEnabled = true,
|
|
42
41
|
...rest
|
|
@@ -56,6 +55,7 @@ export const EnrichedTextInput = ({
|
|
|
56
55
|
};
|
|
57
56
|
}, []);
|
|
58
57
|
const normalizedHtmlStyle = useMemo(() => normalizeHtmlStyle(htmlStyle, mentionIndicators), [htmlStyle, mentionIndicators]);
|
|
58
|
+
const linkRegex = useMemo(() => toNativeRegexConfig(_linkRegex), [_linkRegex]);
|
|
59
59
|
useImperativeHandle(ref, () => ({
|
|
60
60
|
measureInWindow: callback => {
|
|
61
61
|
nullthrows(nativeRef.current).measureInWindow(callback);
|
|
@@ -112,6 +112,15 @@ export const EnrichedTextInput = ({
|
|
|
112
112
|
toggleH3: () => {
|
|
113
113
|
Commands.toggleH3(nullthrows(nativeRef.current));
|
|
114
114
|
},
|
|
115
|
+
toggleH4: () => {
|
|
116
|
+
Commands.toggleH4(nullthrows(nativeRef.current));
|
|
117
|
+
},
|
|
118
|
+
toggleH5: () => {
|
|
119
|
+
Commands.toggleH5(nullthrows(nativeRef.current));
|
|
120
|
+
},
|
|
121
|
+
toggleH6: () => {
|
|
122
|
+
Commands.toggleH6(nullthrows(nativeRef.current));
|
|
123
|
+
},
|
|
115
124
|
toggleCodeBlock: () => {
|
|
116
125
|
Commands.toggleCodeBlock(nullthrows(nativeRef.current));
|
|
117
126
|
},
|
|
@@ -124,6 +133,9 @@ export const EnrichedTextInput = ({
|
|
|
124
133
|
toggleUnorderedList: () => {
|
|
125
134
|
Commands.toggleUnorderedList(nullthrows(nativeRef.current));
|
|
126
135
|
},
|
|
136
|
+
toggleCheckboxList: checked => {
|
|
137
|
+
Commands.toggleCheckboxList(nullthrows(nativeRef.current), checked);
|
|
138
|
+
},
|
|
127
139
|
setLink: (start, end, text, url) => {
|
|
128
140
|
Commands.addLink(nullthrows(nativeRef.current), start, end, text, url);
|
|
129
141
|
},
|
|
@@ -137,9 +149,12 @@ export const EnrichedTextInput = ({
|
|
|
137
149
|
},
|
|
138
150
|
startMention: indicator => {
|
|
139
151
|
if (!mentionIndicators?.includes(indicator)) {
|
|
140
|
-
|
|
152
|
+
warnMentionIndicators(indicator);
|
|
141
153
|
}
|
|
142
154
|
Commands.startMention(nullthrows(nativeRef.current), indicator);
|
|
155
|
+
},
|
|
156
|
+
setSelection: (start, end) => {
|
|
157
|
+
Commands.setSelection(nullthrows(nativeRef.current), start, end);
|
|
143
158
|
}
|
|
144
159
|
}));
|
|
145
160
|
const handleMentionEvent = e => {
|
|
@@ -199,6 +214,34 @@ export const EnrichedTextInput = ({
|
|
|
199
214
|
}
|
|
200
215
|
pendingHtmlRequests.current.delete(requestId);
|
|
201
216
|
};
|
|
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
|
+
};
|
|
202
245
|
return /*#__PURE__*/_jsx(EnrichedTextInputNativeComponent, {
|
|
203
246
|
ref: nativeRef,
|
|
204
247
|
mentionIndicators: mentionIndicators,
|
|
@@ -212,17 +255,20 @@ export const EnrichedTextInput = ({
|
|
|
212
255
|
style: style,
|
|
213
256
|
autoCapitalize: autoCapitalize,
|
|
214
257
|
htmlStyle: normalizedHtmlStyle,
|
|
258
|
+
linkRegex: linkRegex,
|
|
215
259
|
onInputFocus: onFocus,
|
|
216
260
|
onInputBlur: onBlur,
|
|
217
261
|
onChangeText: onChangeText,
|
|
218
262
|
onChangeHtml: onChangeHtml,
|
|
219
263
|
isOnChangeHtmlSet: onChangeHtml !== undefined,
|
|
220
|
-
|
|
264
|
+
isOnChangeTextSet: onChangeText !== undefined,
|
|
265
|
+
onChangeState: onChangeStateWithDeprecated,
|
|
221
266
|
onLinkDetected: handleLinkDetected,
|
|
222
267
|
onMentionDetected: handleMentionDetected,
|
|
223
268
|
onMention: handleMentionEvent,
|
|
224
269
|
onChangeSelection: onChangeSelection,
|
|
225
270
|
onRequestHtmlResult: handleRequestHtmlResult,
|
|
271
|
+
onInputKeyPress: onKeyPress,
|
|
226
272
|
androidExperimentalSynchronousEvents: androidExperimentalSynchronousEvents,
|
|
227
273
|
scrollEnabled: scrollEnabled,
|
|
228
274
|
...rest
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useImperativeHandle","useMemo","useRef","EnrichedTextInputNativeComponent","Commands","normalizeHtmlStyle","jsx","_jsx","nullthrows","value","Error","warnAboutMissconfiguredMentions","indicator","console","warn","EnrichedTextInput","ref","autoFocus","editable","mentionIndicators","defaultValue","placeholder","placeholderTextColor","cursorColor","selectionColor","style","autoCapitalize","htmlStyle","onFocus","onBlur","onChangeText","onChangeHtml","onChangeState","onLinkDetected","onMentionDetected","onStartMention","onChangeMention","onEndMention","onChangeSelection","androidExperimentalSynchronousEvents","scrollEnabled","rest","nativeRef","nextHtmlRequestId","pendingHtmlRequests","Map","pendingRequests","current","forEach","reject","clear","normalizedHtmlStyle","measureInWindow","callback","measure","measureLayout","relativeToNativeComponentRef","onSuccess","onFail","setNativeProps","nativeProps","focus","blur","setValue","getHTML","Promise","resolve","requestId","set","requestHTML","toggleBold","toggleItalic","toggleUnderline","toggleStrikeThrough","toggleInlineCode","toggleH1","toggleH2","toggleH3","toggleCodeBlock","toggleBlockQuote","toggleOrderedList","toggleUnorderedList","setLink","start","end","text","url","addLink","setImage","uri","width","height","addImage","setMention","attributes","parsedAttributes","JSON","stringify","addMention","startMention","includes","handleMentionEvent","e","mentionText","nativeEvent","mentionIndicator","handleLinkDetected","handleMentionDetected","payload","parse","handleRequestHtmlResult","html","pending","get","delete","onInputFocus","onInputBlur","isOnChangeHtmlSet","undefined","onMention","onRequestHtmlResult"],"sourceRoot":"../../src","sources":["EnrichedTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
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":[]}
|