react-native-enriched 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/android/build.gradle +3 -3
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +1 -0
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
- package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
- package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
- package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
- package/android/gradle.properties +5 -5
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +3 -2
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +40 -8
- package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/EnrichedConstants.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/EnrichedStyle.kt +57 -0
- package/android/src/main/java/com/swmansion/enriched/{spans/utils → common}/ForceRedrawSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/MentionStyle.kt +7 -0
- package/android/src/main/java/com/swmansion/enriched/{utils → common}/ResourceManager.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{utils → common/parser}/EnrichedParser.java +126 -99
- package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedBlockQuoteSpan.kt +9 -13
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBoldSpan.kt +12 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +91 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedCodeBlockSpan.kt +8 -12
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH1Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH2Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH3Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH4Span.kt +21 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH5Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH6Span.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedImageSpan.kt +43 -38
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedInlineCodeSpan.kt +7 -11
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedLinkSpan.kt +7 -11
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedMentionSpan.kt +6 -10
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +12 -21
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedStrikeThroughSpan.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnderlineSpan.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedUnorderedListSpan.kt +9 -13
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedBlockSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedHeadingSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedParagraphSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedSpan.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedZeroWidthSpaceSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputConnectionWrapper.kt → textinput/EnrichedTextInputConnectionWrapper.kt} +2 -2
- package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputSpannableFactory.kt +83 -0
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputView.kt → textinput/EnrichedTextInputView.kt} +87 -51
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +1 -1
- package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +24 -17
- package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +5 -4
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeHtmlEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeStateEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeTextEvent.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputBlurEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputFocusEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputKeyPressEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnLinkDetectedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/events/OnPasteImagesEvent.kt +47 -0
- package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnRequestHtmlResultEvent.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBoldSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCheckboxListSpan.kt +15 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH1Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH2Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH3Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH4Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH5Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH6Span.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt +36 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputLinkSpan.kt +15 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt +18 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt +21 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputStrikeThroughSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnorderedListSpan.kt +14 -0
- package/android/src/main/java/com/swmansion/enriched/{spans → textinput/spans}/EnrichedSpans.kt +39 -30
- package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/HtmlStyle.kt +58 -43
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +4 -4
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ListStyles.kt +77 -26
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +30 -25
- package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +19 -19
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedEditableFactory.kt +2 -2
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +15 -14
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpanState.kt +15 -50
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannable.kt +3 -3
- package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannableStringBuilder.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/RichContentReceiver.kt +127 -0
- package/android/src/main/java/com/swmansion/enriched/textinput/utils/Utils.kt +106 -0
- package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedSpanWatcher.kt +10 -10
- package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +3 -3
- package/android/src/main/new_arch/CMakeLists.txt +1 -1
- package/android/src/main/new_arch/ReactNativeEnrichedSpec.cpp +11 -0
- package/android/src/main/new_arch/ReactNativeEnrichedSpec.h +15 -0
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.h +1 -1
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.h +2 -2
- package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/conversions.h +1 -1
- package/ios/EnrichedTextInputView.h +1 -0
- package/ios/EnrichedTextInputView.mm +274 -55
- package/ios/config/InputConfig.h +10 -0
- package/ios/config/InputConfig.mm +119 -0
- package/ios/extensions/ImageExtension.h +35 -0
- package/ios/extensions/ImageExtension.mm +156 -0
- package/ios/extensions/LayoutManagerExtension.mm +115 -95
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
- package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
- package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
- package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +21 -0
- package/ios/inputParser/InputParser.mm +135 -8
- package/ios/inputTextView/InputTextView.mm +118 -0
- package/ios/interfaces/ImageAttachment.h +1 -0
- package/ios/interfaces/ImageAttachment.mm +43 -4
- package/ios/interfaces/StyleHeaders.h +13 -2
- package/ios/interfaces/StyleTypeEnum.h +1 -0
- package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
- package/ios/styles/CheckboxListStyle.mm +321 -0
- package/ios/styles/H1Style.mm +3 -0
- package/ios/styles/H2Style.mm +3 -0
- package/ios/styles/H3Style.mm +3 -0
- package/ios/styles/H4Style.mm +3 -0
- package/ios/styles/H5Style.mm +3 -0
- package/ios/styles/H6Style.mm +3 -0
- package/ios/styles/HeadingStyleBase.mm +150 -78
- package/ios/utils/CheckboxHitTestUtils.h +10 -0
- package/ios/utils/CheckboxHitTestUtils.mm +123 -0
- package/ios/utils/ParagraphAttributesUtils.mm +83 -53
- package/ios/utils/TextBlockTapGestureRecognizer.h +17 -0
- package/ios/utils/TextBlockTapGestureRecognizer.mm +56 -0
- package/ios/utils/ZeroWidthSpaceUtils.mm +14 -3
- package/lib/module/EnrichedTextInput.js +36 -11
- package/lib/module/EnrichedTextInput.js.map +1 -1
- package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/normalizeHtmlStyle.js +6 -0
- package/lib/module/utils/normalizeHtmlStyle.js.map +1 -1
- package/lib/module/utils/nullthrows.js +9 -0
- package/lib/module/utils/nullthrows.js.map +1 -0
- package/lib/typescript/src/EnrichedTextInput.d.ts +9 -49
- package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/{EnrichedTextInputNativeComponent.d.ts → spec/EnrichedTextInputNativeComponent.d.ts} +33 -8
- package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +58 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts +2 -2
- package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -1
- package/lib/typescript/src/utils/nullthrows.d.ts +2 -0
- package/lib/typescript/src/utils/nullthrows.d.ts.map +1 -0
- package/lib/typescript/src/utils/regexParser.d.ts +1 -1
- package/lib/typescript/src/utils/regexParser.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/EnrichedTextInput.tsx +49 -62
- package/src/index.tsx +3 -1
- package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
- package/src/types.ts +59 -0
- package/src/utils/normalizeHtmlStyle.ts +8 -5
- package/src/utils/nullthrows.ts +7 -0
- package/src/utils/regexParser.ts +1 -1
- package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateDeprecatedEvent.kt +0 -21
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -17
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH4Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH5Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH6Span.kt +0 -24
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -16
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -15
- package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -15
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -3
- package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -9
- package/android/src/main/java/com/swmansion/enriched/utils/Utils.kt +0 -21
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
- package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
- package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
- /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputComponentDescriptor.h +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.cpp +0 -0
- /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.h +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
- /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
|
@@ -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
|
+
}
|
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
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.EnrichedUnorderedListSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.spans.interfaces.EnrichedInputSpan
|
|
5
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
6
|
+
|
|
7
|
+
class EnrichedInputUnorderedListSpan(
|
|
8
|
+
htmlStyle: HtmlStyle,
|
|
9
|
+
) : EnrichedUnorderedListSpan(htmlStyle),
|
|
10
|
+
EnrichedInputSpan {
|
|
11
|
+
override val dependsOnHtmlStyle: Boolean = true
|
|
12
|
+
|
|
13
|
+
override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputUnorderedListSpan = EnrichedInputUnorderedListSpan(htmlStyle)
|
|
14
|
+
}
|
package/android/src/main/java/com/swmansion/enriched/{spans → textinput/spans}/EnrichedSpans.kt
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
package com.swmansion.enriched.spans
|
|
1
|
+
package com.swmansion.enriched.textinput.spans
|
|
2
2
|
|
|
3
|
-
import com.swmansion.enriched.styles.HtmlStyle
|
|
3
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
4
4
|
|
|
5
5
|
interface ISpanConfig {
|
|
6
6
|
val clazz: Class<*>
|
|
@@ -17,7 +17,7 @@ data class ParagraphSpanConfig(
|
|
|
17
17
|
|
|
18
18
|
data class ListSpanConfig(
|
|
19
19
|
override val clazz: Class<*>,
|
|
20
|
-
val shortcut: String
|
|
20
|
+
val shortcut: String?,
|
|
21
21
|
) : ISpanConfig
|
|
22
22
|
|
|
23
23
|
data class StylesMergingConfig(
|
|
@@ -48,6 +48,7 @@ object EnrichedSpans {
|
|
|
48
48
|
// list styles
|
|
49
49
|
const val UNORDERED_LIST = "unordered_list"
|
|
50
50
|
const val ORDERED_LIST = "ordered_list"
|
|
51
|
+
const val CHECKBOX_LIST = "checkbox_list"
|
|
51
52
|
|
|
52
53
|
// parametrized styles
|
|
53
54
|
const val LINK = "link"
|
|
@@ -56,36 +57,37 @@ object EnrichedSpans {
|
|
|
56
57
|
|
|
57
58
|
val inlineSpans: Map<String, BaseSpanConfig> =
|
|
58
59
|
mapOf(
|
|
59
|
-
BOLD to BaseSpanConfig(
|
|
60
|
-
ITALIC to BaseSpanConfig(
|
|
61
|
-
UNDERLINE to BaseSpanConfig(
|
|
62
|
-
STRIKETHROUGH to BaseSpanConfig(
|
|
63
|
-
INLINE_CODE to BaseSpanConfig(
|
|
60
|
+
BOLD to BaseSpanConfig(EnrichedInputBoldSpan::class.java),
|
|
61
|
+
ITALIC to BaseSpanConfig(EnrichedInputItalicSpan::class.java),
|
|
62
|
+
UNDERLINE to BaseSpanConfig(EnrichedInputUnderlineSpan::class.java),
|
|
63
|
+
STRIKETHROUGH to BaseSpanConfig(EnrichedInputStrikeThroughSpan::class.java),
|
|
64
|
+
INLINE_CODE to BaseSpanConfig(EnrichedInputInlineCodeSpan::class.java),
|
|
64
65
|
)
|
|
65
66
|
|
|
66
67
|
val paragraphSpans: Map<String, ParagraphSpanConfig> =
|
|
67
68
|
mapOf(
|
|
68
|
-
H1 to ParagraphSpanConfig(
|
|
69
|
-
H2 to ParagraphSpanConfig(
|
|
70
|
-
H3 to ParagraphSpanConfig(
|
|
71
|
-
H4 to ParagraphSpanConfig(
|
|
72
|
-
H5 to ParagraphSpanConfig(
|
|
73
|
-
H6 to ParagraphSpanConfig(
|
|
74
|
-
BLOCK_QUOTE to ParagraphSpanConfig(
|
|
75
|
-
CODE_BLOCK to ParagraphSpanConfig(
|
|
69
|
+
H1 to ParagraphSpanConfig(EnrichedInputH1Span::class.java, false),
|
|
70
|
+
H2 to ParagraphSpanConfig(EnrichedInputH2Span::class.java, false),
|
|
71
|
+
H3 to ParagraphSpanConfig(EnrichedInputH3Span::class.java, false),
|
|
72
|
+
H4 to ParagraphSpanConfig(EnrichedInputH4Span::class.java, false),
|
|
73
|
+
H5 to ParagraphSpanConfig(EnrichedInputH5Span::class.java, false),
|
|
74
|
+
H6 to ParagraphSpanConfig(EnrichedInputH6Span::class.java, false),
|
|
75
|
+
BLOCK_QUOTE to ParagraphSpanConfig(EnrichedInputBlockQuoteSpan::class.java, true),
|
|
76
|
+
CODE_BLOCK to ParagraphSpanConfig(EnrichedInputCodeBlockSpan::class.java, true),
|
|
76
77
|
)
|
|
77
78
|
|
|
78
79
|
val listSpans: Map<String, ListSpanConfig> =
|
|
79
80
|
mapOf(
|
|
80
|
-
UNORDERED_LIST to ListSpanConfig(
|
|
81
|
-
ORDERED_LIST to ListSpanConfig(
|
|
81
|
+
UNORDERED_LIST to ListSpanConfig(EnrichedInputUnorderedListSpan::class.java, "- "),
|
|
82
|
+
ORDERED_LIST to ListSpanConfig(EnrichedInputOrderedListSpan::class.java, "1. "),
|
|
83
|
+
CHECKBOX_LIST to ListSpanConfig(EnrichedInputCheckboxListSpan::class.java, null),
|
|
82
84
|
)
|
|
83
85
|
|
|
84
86
|
val parametrizedStyles: Map<String, BaseSpanConfig> =
|
|
85
87
|
mapOf(
|
|
86
|
-
LINK to BaseSpanConfig(
|
|
87
|
-
IMAGE to BaseSpanConfig(
|
|
88
|
-
MENTION to BaseSpanConfig(
|
|
88
|
+
LINK to BaseSpanConfig(EnrichedInputLinkSpan::class.java),
|
|
89
|
+
IMAGE to BaseSpanConfig(EnrichedInputImageSpan::class.java),
|
|
90
|
+
MENTION to BaseSpanConfig(EnrichedInputMentionSpan::class.java),
|
|
89
91
|
)
|
|
90
92
|
|
|
91
93
|
val allSpans: Map<String, ISpanConfig> = inlineSpans + paragraphSpans + listSpans + parametrizedStyles
|
|
@@ -132,44 +134,44 @@ object EnrichedSpans {
|
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
H1 -> {
|
|
135
|
-
val conflictingStyles = mutableListOf(H2, H3, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
137
|
+
val conflictingStyles = mutableListOf(H2, H3, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
136
138
|
if (htmlStyle.h1Bold) conflictingStyles.add(BOLD)
|
|
137
139
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
138
140
|
}
|
|
139
141
|
|
|
140
142
|
H2 -> {
|
|
141
|
-
val conflictingStyles = mutableListOf(H1, H3, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
143
|
+
val conflictingStyles = mutableListOf(H1, H3, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
142
144
|
if (htmlStyle.h2Bold) conflictingStyles.add(BOLD)
|
|
143
145
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
H3 -> {
|
|
147
|
-
val conflictingStyles = mutableListOf(H1, H2, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
149
|
+
val conflictingStyles = mutableListOf(H1, H2, H4, H5, H6, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
148
150
|
if (htmlStyle.h3Bold) conflictingStyles.add(BOLD)
|
|
149
151
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
150
152
|
}
|
|
151
153
|
|
|
152
154
|
H4 -> {
|
|
153
|
-
val conflictingStyles = mutableListOf(H1, H2, H3, H5, H6, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
155
|
+
val conflictingStyles = mutableListOf(H1, H2, H3, H5, H6, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
154
156
|
if (htmlStyle.h4Bold) conflictingStyles.add(BOLD)
|
|
155
157
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
H5 -> {
|
|
159
|
-
val conflictingStyles = mutableListOf(H1, H2, H3, H4, H6, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
161
|
+
val conflictingStyles = mutableListOf(H1, H2, H3, H4, H6, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
160
162
|
if (htmlStyle.h5Bold) conflictingStyles.add(BOLD)
|
|
161
163
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
162
164
|
}
|
|
163
165
|
|
|
164
166
|
H6 -> {
|
|
165
|
-
val conflictingStyles = mutableListOf(H1, H2, H3, H4, H5, ORDERED_LIST, UNORDERED_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
167
|
+
val conflictingStyles = mutableListOf(H1, H2, H3, H4, H5, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST, BLOCK_QUOTE, CODE_BLOCK)
|
|
166
168
|
if (htmlStyle.h6Bold) conflictingStyles.add(BOLD)
|
|
167
169
|
StylesMergingConfig(conflictingStyles = conflictingStyles.toTypedArray())
|
|
168
170
|
}
|
|
169
171
|
|
|
170
172
|
BLOCK_QUOTE -> {
|
|
171
173
|
StylesMergingConfig(
|
|
172
|
-
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, CODE_BLOCK, ORDERED_LIST, UNORDERED_LIST),
|
|
174
|
+
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, CODE_BLOCK, ORDERED_LIST, UNORDERED_LIST, CHECKBOX_LIST),
|
|
173
175
|
)
|
|
174
176
|
}
|
|
175
177
|
|
|
@@ -189,6 +191,7 @@ object EnrichedSpans {
|
|
|
189
191
|
STRIKETHROUGH,
|
|
190
192
|
UNORDERED_LIST,
|
|
191
193
|
ORDERED_LIST,
|
|
194
|
+
CHECKBOX_LIST,
|
|
192
195
|
BLOCK_QUOTE,
|
|
193
196
|
INLINE_CODE,
|
|
194
197
|
),
|
|
@@ -197,13 +200,19 @@ object EnrichedSpans {
|
|
|
197
200
|
|
|
198
201
|
UNORDERED_LIST -> {
|
|
199
202
|
StylesMergingConfig(
|
|
200
|
-
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, ORDERED_LIST, CODE_BLOCK, BLOCK_QUOTE),
|
|
203
|
+
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, ORDERED_LIST, CHECKBOX_LIST, CODE_BLOCK, BLOCK_QUOTE),
|
|
201
204
|
)
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
ORDERED_LIST -> {
|
|
205
208
|
StylesMergingConfig(
|
|
206
|
-
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, UNORDERED_LIST, CODE_BLOCK, BLOCK_QUOTE),
|
|
209
|
+
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, UNORDERED_LIST, CHECKBOX_LIST, CODE_BLOCK, BLOCK_QUOTE),
|
|
210
|
+
)
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
CHECKBOX_LIST -> {
|
|
214
|
+
StylesMergingConfig(
|
|
215
|
+
conflictingStyles = arrayOf(H1, H2, H3, H4, H5, H6, UNORDERED_LIST, ORDERED_LIST, CODE_BLOCK, BLOCK_QUOTE),
|
|
207
216
|
)
|
|
208
217
|
}
|
|
209
218
|
|
package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
package com.swmansion.enriched.textinput.spans.interfaces
|
|
2
|
+
|
|
3
|
+
import com.swmansion.enriched.common.spans.interfaces.EnrichedSpan
|
|
4
|
+
import com.swmansion.enriched.textinput.styles.HtmlStyle
|
|
5
|
+
|
|
6
|
+
interface EnrichedInputSpan : EnrichedSpan {
|
|
7
|
+
val dependsOnHtmlStyle: Boolean
|
|
8
|
+
|
|
9
|
+
fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedInputSpan
|
|
10
|
+
}
|