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.
Files changed (202) hide show
  1. package/README.md +6 -4
  2. package/android/build.gradle +3 -3
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +3 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +1 -0
  5. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
  6. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
  7. package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
  8. package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
  9. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
  10. package/android/gradle.properties +5 -5
  11. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +3 -2
  12. package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +40 -8
  13. package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
  14. package/android/src/main/java/com/swmansion/enriched/{utils → common}/EnrichedConstants.kt +1 -1
  15. package/android/src/main/java/com/swmansion/enriched/common/EnrichedStyle.kt +57 -0
  16. package/android/src/main/java/com/swmansion/enriched/{spans/utils → common}/ForceRedrawSpan.kt +1 -1
  17. package/android/src/main/java/com/swmansion/enriched/common/MentionStyle.kt +7 -0
  18. package/android/src/main/java/com/swmansion/enriched/{utils → common}/ResourceManager.kt +1 -1
  19. package/android/src/main/java/com/swmansion/enriched/{utils → common/parser}/EnrichedParser.java +126 -99
  20. package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
  21. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedBlockQuoteSpan.kt +9 -13
  22. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBoldSpan.kt +12 -0
  23. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +91 -0
  24. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedCodeBlockSpan.kt +8 -12
  25. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH1Span.kt +20 -0
  26. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH2Span.kt +20 -0
  27. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH3Span.kt +20 -0
  28. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH4Span.kt +21 -0
  29. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH5Span.kt +20 -0
  30. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH6Span.kt +20 -0
  31. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedImageSpan.kt +43 -38
  32. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedInlineCodeSpan.kt +7 -11
  33. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
  34. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedLinkSpan.kt +7 -11
  35. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedMentionSpan.kt +6 -10
  36. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +12 -21
  37. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedStrikeThroughSpan.kt +11 -0
  38. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnderlineSpan.kt +11 -0
  39. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedUnorderedListSpan.kt +9 -13
  40. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedBlockSpan.kt +1 -1
  41. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedHeadingSpan.kt +1 -1
  42. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
  43. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedParagraphSpan.kt +1 -1
  44. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedSpan.kt +3 -0
  45. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedZeroWidthSpaceSpan.kt +1 -1
  46. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputConnectionWrapper.kt → textinput/EnrichedTextInputConnectionWrapper.kt} +2 -2
  47. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputSpannableFactory.kt +83 -0
  48. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputView.kt → textinput/EnrichedTextInputView.kt} +87 -51
  49. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +1 -1
  50. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +24 -17
  51. package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +5 -4
  52. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +2 -2
  53. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeHtmlEvent.kt +1 -1
  54. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +1 -1
  55. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeStateEvent.kt +1 -1
  56. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeTextEvent.kt +2 -2
  57. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputBlurEvent.kt +1 -1
  58. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputFocusEvent.kt +1 -1
  59. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputKeyPressEvent.kt +1 -1
  60. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnLinkDetectedEvent.kt +1 -1
  61. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +1 -1
  62. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +1 -1
  63. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnPasteImagesEvent.kt +47 -0
  64. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnRequestHtmlResultEvent.kt +1 -1
  65. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt +14 -0
  66. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBoldSpan.kt +14 -0
  67. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCheckboxListSpan.kt +15 -0
  68. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt +14 -0
  69. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH1Span.kt +14 -0
  70. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH2Span.kt +14 -0
  71. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH3Span.kt +14 -0
  72. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH4Span.kt +14 -0
  73. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH5Span.kt +14 -0
  74. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH6Span.kt +14 -0
  75. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt +36 -0
  76. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt +14 -0
  77. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt +14 -0
  78. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputLinkSpan.kt +15 -0
  79. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt +18 -0
  80. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt +21 -0
  81. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputStrikeThroughSpan.kt +14 -0
  82. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt +14 -0
  83. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnorderedListSpan.kt +14 -0
  84. package/android/src/main/java/com/swmansion/enriched/{spans → textinput/spans}/EnrichedSpans.kt +39 -30
  85. package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt +10 -0
  86. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/HtmlStyle.kt +58 -43
  87. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +4 -4
  88. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ListStyles.kt +77 -26
  89. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +30 -25
  90. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +19 -19
  91. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedEditableFactory.kt +2 -2
  92. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +15 -14
  93. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpanState.kt +15 -50
  94. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannable.kt +3 -3
  95. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannableStringBuilder.kt +2 -1
  96. package/android/src/main/java/com/swmansion/enriched/textinput/utils/RichContentReceiver.kt +127 -0
  97. package/android/src/main/java/com/swmansion/enriched/textinput/utils/Utils.kt +106 -0
  98. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedSpanWatcher.kt +10 -10
  99. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +3 -3
  100. package/android/src/main/new_arch/CMakeLists.txt +1 -1
  101. package/android/src/main/new_arch/ReactNativeEnrichedSpec.cpp +11 -0
  102. package/android/src/main/new_arch/ReactNativeEnrichedSpec.h +15 -0
  103. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.h +1 -1
  104. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.h +2 -2
  105. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/conversions.h +1 -1
  106. package/ios/EnrichedTextInputView.h +1 -0
  107. package/ios/EnrichedTextInputView.mm +274 -55
  108. package/ios/config/InputConfig.h +10 -0
  109. package/ios/config/InputConfig.mm +119 -0
  110. package/ios/extensions/ImageExtension.h +35 -0
  111. package/ios/extensions/ImageExtension.mm +156 -0
  112. package/ios/extensions/LayoutManagerExtension.mm +115 -95
  113. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
  114. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
  115. package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
  116. package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
  117. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
  118. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +21 -0
  119. package/ios/inputParser/InputParser.mm +135 -8
  120. package/ios/inputTextView/InputTextView.mm +118 -0
  121. package/ios/interfaces/ImageAttachment.h +1 -0
  122. package/ios/interfaces/ImageAttachment.mm +43 -4
  123. package/ios/interfaces/StyleHeaders.h +13 -2
  124. package/ios/interfaces/StyleTypeEnum.h +1 -0
  125. package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
  126. package/ios/styles/CheckboxListStyle.mm +321 -0
  127. package/ios/styles/H1Style.mm +3 -0
  128. package/ios/styles/H2Style.mm +3 -0
  129. package/ios/styles/H3Style.mm +3 -0
  130. package/ios/styles/H4Style.mm +3 -0
  131. package/ios/styles/H5Style.mm +3 -0
  132. package/ios/styles/H6Style.mm +3 -0
  133. package/ios/styles/HeadingStyleBase.mm +150 -78
  134. package/ios/utils/CheckboxHitTestUtils.h +10 -0
  135. package/ios/utils/CheckboxHitTestUtils.mm +123 -0
  136. package/ios/utils/ParagraphAttributesUtils.mm +83 -53
  137. package/ios/utils/TextBlockTapGestureRecognizer.h +17 -0
  138. package/ios/utils/TextBlockTapGestureRecognizer.mm +56 -0
  139. package/ios/utils/ZeroWidthSpaceUtils.mm +14 -3
  140. package/lib/module/EnrichedTextInput.js +36 -11
  141. package/lib/module/EnrichedTextInput.js.map +1 -1
  142. package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
  143. package/lib/module/types.js +4 -0
  144. package/lib/module/types.js.map +1 -0
  145. package/lib/module/utils/normalizeHtmlStyle.js +6 -0
  146. package/lib/module/utils/normalizeHtmlStyle.js.map +1 -1
  147. package/lib/module/utils/nullthrows.js +9 -0
  148. package/lib/module/utils/nullthrows.js.map +1 -0
  149. package/lib/typescript/src/EnrichedTextInput.d.ts +9 -49
  150. package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
  151. package/lib/typescript/src/index.d.ts +2 -1
  152. package/lib/typescript/src/index.d.ts.map +1 -1
  153. package/lib/typescript/src/{EnrichedTextInputNativeComponent.d.ts → spec/EnrichedTextInputNativeComponent.d.ts} +33 -8
  154. package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -0
  155. package/lib/typescript/src/types.d.ts +58 -0
  156. package/lib/typescript/src/types.d.ts.map +1 -0
  157. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts +2 -2
  158. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -1
  159. package/lib/typescript/src/utils/nullthrows.d.ts +2 -0
  160. package/lib/typescript/src/utils/nullthrows.d.ts.map +1 -0
  161. package/lib/typescript/src/utils/regexParser.d.ts +1 -1
  162. package/lib/typescript/src/utils/regexParser.d.ts.map +1 -1
  163. package/package.json +4 -4
  164. package/src/EnrichedTextInput.tsx +49 -62
  165. package/src/index.tsx +3 -1
  166. package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
  167. package/src/types.ts +59 -0
  168. package/src/utils/normalizeHtmlStyle.ts +8 -5
  169. package/src/utils/nullthrows.ts +7 -0
  170. package/src/utils/regexParser.ts +1 -1
  171. package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateDeprecatedEvent.kt +0 -21
  172. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -17
  173. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -24
  174. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -24
  175. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -24
  176. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH4Span.kt +0 -24
  177. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH5Span.kt +0 -24
  178. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH6Span.kt +0 -24
  179. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -16
  180. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -15
  181. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -15
  182. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -3
  183. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -9
  184. package/android/src/main/java/com/swmansion/enriched/utils/Utils.kt +0 -21
  185. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
  186. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
  187. package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
  188. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
  189. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  190. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  191. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  192. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
  193. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputComponentDescriptor.h +0 -0
  194. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.cpp +0 -0
  195. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.cpp +0 -0
  196. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.cpp +0 -0
  197. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.h +0 -0
  198. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
  199. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  200. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  201. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  202. /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
+ }
@@ -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
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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(EnrichedBoldSpan::class.java),
60
- ITALIC to BaseSpanConfig(EnrichedItalicSpan::class.java),
61
- UNDERLINE to BaseSpanConfig(EnrichedUnderlineSpan::class.java),
62
- STRIKETHROUGH to BaseSpanConfig(EnrichedStrikeThroughSpan::class.java),
63
- INLINE_CODE to BaseSpanConfig(EnrichedInlineCodeSpan::class.java),
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(EnrichedH1Span::class.java, false),
69
- H2 to ParagraphSpanConfig(EnrichedH2Span::class.java, false),
70
- H3 to ParagraphSpanConfig(EnrichedH3Span::class.java, false),
71
- H4 to ParagraphSpanConfig(EnrichedH4Span::class.java, false),
72
- H5 to ParagraphSpanConfig(EnrichedH5Span::class.java, false),
73
- H6 to ParagraphSpanConfig(EnrichedH6Span::class.java, false),
74
- BLOCK_QUOTE to ParagraphSpanConfig(EnrichedBlockQuoteSpan::class.java, true),
75
- CODE_BLOCK to ParagraphSpanConfig(EnrichedCodeBlockSpan::class.java, true),
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(EnrichedUnorderedListSpan::class.java, "- "),
81
- ORDERED_LIST to ListSpanConfig(EnrichedOrderedListSpan::class.java, "1. "),
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(EnrichedLinkSpan::class.java),
87
- IMAGE to BaseSpanConfig(EnrichedImageSpan::class.java),
88
- MENTION to BaseSpanConfig(EnrichedMentionSpan::class.java),
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
 
@@ -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
+ }