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
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
package com.swmansion.enriched.events
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Arguments
|
|
4
4
|
import com.facebook.react.bridge.WritableMap
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
|
6
6
|
|
|
7
|
-
class OnChangeSelectionEvent(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
class OnChangeSelectionEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val text: String,
|
|
11
|
+
private val start: Int,
|
|
12
|
+
private val end: Int,
|
|
13
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
14
|
+
) : Event<OnChangeSelectionEvent>(surfaceId, viewId) {
|
|
15
|
+
override fun getEventName(): String = EVENT_NAME
|
|
13
16
|
|
|
14
17
|
override fun getEventData(): WritableMap {
|
|
15
18
|
val eventData: WritableMap = Arguments.createMap()
|
|
@@ -19,9 +22,7 @@ class OnChangeSelectionEvent(surfaceId: Int, viewId: Int, private val text: Stri
|
|
|
19
22
|
return eventData
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
override fun experimental_isSynchronous(): Boolean
|
|
23
|
-
return experimentalSynchronousEvents
|
|
24
|
-
}
|
|
25
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
25
26
|
|
|
26
27
|
companion object {
|
|
27
28
|
const val EVENT_NAME: String = "onChangeSelection"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.WritableMap
|
|
4
|
+
import com.facebook.react.uimanager.events.Event
|
|
5
|
+
|
|
6
|
+
class OnChangeStateEvent(
|
|
7
|
+
surfaceId: Int,
|
|
8
|
+
viewId: Int,
|
|
9
|
+
private val state: WritableMap,
|
|
10
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
11
|
+
) : Event<OnChangeStateEvent>(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 = "onChangeState"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import android.text.Editable
|
|
4
|
+
import com.facebook.react.bridge.Arguments
|
|
5
|
+
import com.facebook.react.bridge.WritableMap
|
|
6
|
+
import com.facebook.react.uimanager.events.Event
|
|
7
|
+
import com.swmansion.enriched.common.EnrichedConstants
|
|
8
|
+
|
|
9
|
+
class OnChangeTextEvent(
|
|
10
|
+
surfaceId: Int,
|
|
11
|
+
viewId: Int,
|
|
12
|
+
private val editable: Editable,
|
|
13
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
14
|
+
) : Event<OnChangeTextEvent>(surfaceId, viewId) {
|
|
15
|
+
override fun getEventName(): String = EVENT_NAME
|
|
16
|
+
|
|
17
|
+
override fun getEventData(): WritableMap {
|
|
18
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
19
|
+
val text = editable.toString()
|
|
20
|
+
val normalizedText = text.replace(Regex(EnrichedConstants.ZWS_STRING), "")
|
|
21
|
+
eventData.putString("value", normalizedText)
|
|
22
|
+
return eventData
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
26
|
+
|
|
27
|
+
companion object {
|
|
28
|
+
const val EVENT_NAME: String = "onChangeText"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
|
|
7
|
+
class OnInputBlurEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
11
|
+
) : Event<OnInputBlurEvent>(surfaceId, viewId) {
|
|
12
|
+
override fun getEventName(): String = EVENT_NAME
|
|
13
|
+
|
|
14
|
+
override fun getEventData(): WritableMap {
|
|
15
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
16
|
+
|
|
17
|
+
return eventData
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
21
|
+
|
|
22
|
+
companion object {
|
|
23
|
+
const val EVENT_NAME: String = "onInputBlur"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
|
|
7
|
+
class OnInputFocusEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
11
|
+
) : Event<OnInputFocusEvent>(surfaceId, viewId) {
|
|
12
|
+
override fun getEventName(): String = EVENT_NAME
|
|
13
|
+
|
|
14
|
+
override fun getEventData(): WritableMap {
|
|
15
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
16
|
+
|
|
17
|
+
return eventData
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
21
|
+
|
|
22
|
+
companion object {
|
|
23
|
+
const val EVENT_NAME: String = "onInputFocus"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
|
|
7
|
+
class OnInputKeyPressEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val key: String,
|
|
11
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
12
|
+
) : Event<OnInputKeyPressEvent>(surfaceId, viewId) {
|
|
13
|
+
override fun getEventName(): String = EVENT_NAME
|
|
14
|
+
|
|
15
|
+
override fun getEventData(): WritableMap {
|
|
16
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
17
|
+
eventData.putString("key", key)
|
|
18
|
+
|
|
19
|
+
return eventData
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
23
|
+
|
|
24
|
+
companion object {
|
|
25
|
+
const val EVENT_NAME: String = "onInputKeyPress"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
import com.facebook.react.uimanager.events.Event
|
|
6
|
+
|
|
7
|
+
class OnLinkDetectedEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val text: String,
|
|
11
|
+
private val url: String,
|
|
12
|
+
private val start: Int,
|
|
13
|
+
private val end: Int,
|
|
14
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
15
|
+
) : Event<OnLinkDetectedEvent>(surfaceId, viewId) {
|
|
16
|
+
override fun getEventName(): String = EVENT_NAME
|
|
17
|
+
|
|
18
|
+
override fun getEventData(): WritableMap {
|
|
19
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
20
|
+
eventData.putString("text", text)
|
|
21
|
+
eventData.putString("url", url)
|
|
22
|
+
eventData.putInt("start", start)
|
|
23
|
+
eventData.putInt("end", end)
|
|
24
|
+
return eventData
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
28
|
+
|
|
29
|
+
companion object {
|
|
30
|
+
const val EVENT_NAME: String = "onLinkDetected"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
package com.swmansion.enriched.events
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Arguments
|
|
4
4
|
import com.facebook.react.bridge.WritableMap
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
|
6
6
|
|
|
7
|
-
class OnMentionDetectedEvent(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
class OnMentionDetectedEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val text: String,
|
|
11
|
+
private val indicator: String,
|
|
12
|
+
private val payload: String,
|
|
13
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
14
|
+
) : Event<OnMentionDetectedEvent>(surfaceId, viewId) {
|
|
15
|
+
override fun getEventName(): String = EVENT_NAME
|
|
13
16
|
|
|
14
17
|
override fun getEventData(): WritableMap {
|
|
15
18
|
val eventData: WritableMap = Arguments.createMap()
|
|
@@ -19,9 +22,7 @@ class OnMentionDetectedEvent(surfaceId: Int, viewId: Int, private val text: Stri
|
|
|
19
22
|
return eventData
|
|
20
23
|
}
|
|
21
24
|
|
|
22
|
-
override fun experimental_isSynchronous(): Boolean
|
|
23
|
-
return experimentalSynchronousEvents
|
|
24
|
-
}
|
|
25
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
25
26
|
|
|
26
27
|
companion object {
|
|
27
28
|
const val EVENT_NAME: String = "onMentionDetected"
|
package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt
RENAMED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
package com.swmansion.enriched.events
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Arguments
|
|
4
4
|
import com.facebook.react.bridge.WritableMap
|
|
5
5
|
import com.facebook.react.uimanager.events.Event
|
|
6
6
|
|
|
7
|
-
class OnMentionEvent(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
class OnMentionEvent(
|
|
8
|
+
surfaceId: Int,
|
|
9
|
+
viewId: Int,
|
|
10
|
+
private val indicator: String,
|
|
11
|
+
private val text: String?,
|
|
12
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
13
|
+
) : Event<OnMentionEvent>(surfaceId, viewId) {
|
|
14
|
+
override fun getEventName(): String = EVENT_NAME
|
|
12
15
|
|
|
13
16
|
override fun getEventData(): WritableMap? {
|
|
14
17
|
val eventData: WritableMap = Arguments.createMap()
|
|
@@ -23,9 +26,7 @@ class OnMentionEvent(surfaceId: Int, viewId: Int, private val indicator: String,
|
|
|
23
26
|
return eventData
|
|
24
27
|
}
|
|
25
28
|
|
|
26
|
-
override fun experimental_isSynchronous(): Boolean
|
|
27
|
-
return experimentalSynchronousEvents
|
|
28
|
-
}
|
|
29
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
29
30
|
|
|
30
31
|
companion object {
|
|
31
32
|
const val EVENT_NAME: String = "onMention"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
4
|
+
import com.facebook.react.bridge.WritableArray
|
|
5
|
+
import com.facebook.react.bridge.WritableMap
|
|
6
|
+
import com.facebook.react.uimanager.events.Event
|
|
7
|
+
|
|
8
|
+
class OnPasteImagesEvent(
|
|
9
|
+
surfaceId: Int,
|
|
10
|
+
viewId: Int,
|
|
11
|
+
private val images: List<PastedImage>,
|
|
12
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
13
|
+
) : Event<OnPasteImagesEvent>(surfaceId, viewId) {
|
|
14
|
+
override fun getEventName(): String = EVENT_NAME
|
|
15
|
+
|
|
16
|
+
override fun getEventData(): WritableMap {
|
|
17
|
+
val imagesArray: WritableArray = Arguments.createArray()
|
|
18
|
+
|
|
19
|
+
for (image in images) {
|
|
20
|
+
val imageMap = Arguments.createMap()
|
|
21
|
+
imageMap.putString("uri", image.uri)
|
|
22
|
+
imageMap.putString("type", image.type)
|
|
23
|
+
imageMap.putDouble("width", image.width)
|
|
24
|
+
imageMap.putDouble("height", image.height)
|
|
25
|
+
|
|
26
|
+
imagesArray.pushMap(imageMap)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
val eventData: WritableMap = Arguments.createMap()
|
|
30
|
+
eventData.putArray("images", imagesArray)
|
|
31
|
+
|
|
32
|
+
return eventData
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
|
|
36
|
+
|
|
37
|
+
companion object {
|
|
38
|
+
const val EVENT_NAME: String = "onPasteImages"
|
|
39
|
+
|
|
40
|
+
data class PastedImage(
|
|
41
|
+
val uri: String,
|
|
42
|
+
val type: String,
|
|
43
|
+
val width: Double,
|
|
44
|
+
val height: Double,
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.swmansion.enriched.events
|
|
1
|
+
package com.swmansion.enriched.textinput.events
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Arguments
|
|
4
4
|
import com.facebook.react.bridge.WritableMap
|
|
@@ -9,9 +9,8 @@ class OnRequestHtmlResultEvent(
|
|
|
9
9
|
viewId: Int,
|
|
10
10
|
private val requestId: Int,
|
|
11
11
|
private val html: String?,
|
|
12
|
-
private val experimentalSynchronousEvents: Boolean
|
|
12
|
+
private val experimentalSynchronousEvents: Boolean,
|
|
13
13
|
) : Event<OnRequestHtmlResultEvent>(surfaceId, viewId) {
|
|
14
|
-
|
|
15
14
|
override fun getEventName(): String = EVENT_NAME
|
|
16
15
|
|
|
17
16
|
override fun getEventData(): WritableMap {
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedBlockQuoteSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputBlockQuoteSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedBlockQuoteSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputBlockQuoteSpan = EnrichedInputBlockQuoteSpan(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedBoldSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputBoldSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedBoldSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = false
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputBoldSpan = EnrichedInputBoldSpan(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedCheckboxListSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputCheckboxListSpan(
|
|
8
|
+
override var isChecked: Boolean,
|
|
9
|
+
htmlStyle: HtmlStyle,
|
|
10
|
+
) : EnrichedCheckboxListSpan(isChecked, htmlStyle),
|
|
11
|
+
EnrichedInputSpan {
|
|
12
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
13
|
+
|
|
14
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputCheckboxListSpan = EnrichedInputCheckboxListSpan(isChecked, htmlStyle)
|
|
15
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedCodeBlockSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputCodeBlockSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedCodeBlockSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputCodeBlockSpan = EnrichedInputCodeBlockSpan(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH1Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH1Span(
|
|
8
|
+
style: HtmlStyle,
|
|
9
|
+
) : EnrichedH1Span(style),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH1Span = EnrichedInputH1Span(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH2Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH2Span(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedH2Span(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH2Span = EnrichedInputH2Span(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH3Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH3Span(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedH3Span(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH3Span = EnrichedInputH3Span(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH4Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH4Span(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedH4Span(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH4Span = EnrichedInputH4Span(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH5Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH5Span(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedH5Span(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH5Span = EnrichedInputH5Span(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedH6Span
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputH6Span(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedH6Span(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputH6Span = EnrichedInputH6Span(htmlStyle)
|
|
14
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import android.graphics.drawable.Drawable
|
|
4
|
+
import com.swmansion.enriched.R
|
|
5
|
+
import com.swmansion.enriched.common.ResourceManager
|
|
6
|
+
import com.swmansion.enriched.common.spans.EnrichedImageSpan
|
|
7
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
8
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
9
|
+
|
|
10
|
+
class EnrichedInputImageSpan(
|
|
11
|
+
drawable: Drawable,
|
|
12
|
+
source: String,
|
|
13
|
+
width: Int,
|
|
14
|
+
height: Int,
|
|
15
|
+
) : EnrichedImageSpan(drawable, source, width, height),
|
|
16
|
+
EnrichedInputSpan {
|
|
17
|
+
override val dependsOnHtmlStyle: Boolean = false
|
|
18
|
+
|
|
19
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputImageSpan = this
|
|
20
|
+
|
|
21
|
+
companion object {
|
|
22
|
+
fun createEnrichedImageSpan(
|
|
23
|
+
src: String,
|
|
24
|
+
width: Int,
|
|
25
|
+
height: Int,
|
|
26
|
+
): EnrichedInputImageSpan {
|
|
27
|
+
var imgDrawable = prepareDrawableForImage(src, width, height)
|
|
28
|
+
|
|
29
|
+
if (imgDrawable == null) {
|
|
30
|
+
imgDrawable = ResourceManager.getDrawableResource(R.drawable.broken_image)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return EnrichedInputImageSpan(imgDrawable, src, width, height)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedInlineCodeSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputInlineCodeSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedInlineCodeSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputInlineCodeSpan = EnrichedInputInlineCodeSpan(htmlStyle)
|
|
14
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedItalicSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputItalicSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedItalicSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = false
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputItalicSpan = EnrichedInputItalicSpan(htmlStyle)
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedLinkSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputLinkSpan(
|
|
8
|
+
private val url: String,
|
|
9
|
+
htmlStyle: HtmlStyle,
|
|
10
|
+
) : EnrichedLinkSpan(url, htmlStyle),
|
|
11
|
+
EnrichedInputSpan {
|
|
12
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
13
|
+
|
|
14
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputLinkSpan = EnrichedInputLinkSpan(url, htmlStyle)
|
|
15
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedMentionSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputMentionSpan(
|
|
8
|
+
private val text: String,
|
|
9
|
+
private val indicator: String,
|
|
10
|
+
private val attributes: Map<String, String>,
|
|
11
|
+
htmlStyle: HtmlStyle,
|
|
12
|
+
) : EnrichedMentionSpan(text, indicator, attributes, htmlStyle),
|
|
13
|
+
EnrichedInputSpan {
|
|
14
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
15
|
+
|
|
16
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputMentionSpan =
|
|
17
|
+
EnrichedInputMentionSpan(text, indicator, attributes, htmlStyle)
|
|
18
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedOrderedListSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputOrderedListSpan(
|
|
8
|
+
index: Int,
|
|
9
|
+
htmlStyle: HtmlStyle,
|
|
10
|
+
) : EnrichedOrderedListSpan(index, htmlStyle),
|
|
11
|
+
EnrichedInputSpan {
|
|
12
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
13
|
+
|
|
14
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputOrderedListSpan = EnrichedInputOrderedListSpan(index, htmlStyle)
|
|
15
|
+
|
|
16
|
+
fun getListIndex(): Int = index
|
|
17
|
+
|
|
18
|
+
fun setListIndex(i: Int) {
|
|
19
|
+
index = i
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedStrikeThroughSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputStrikeThroughSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedStrikeThroughSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = false
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputStrikeThroughSpan = EnrichedInputStrikeThroughSpan(htmlStyle)
|
|
14
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedUnderlineSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputUnderlineSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedUnderlineSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = false
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputUnderlineSpan = EnrichedInputUnderlineSpan(htmlStyle)
|
|
14
|
+
}
|