react-native-enriched-markdown-scaffold 0.7.4-scaffold.9 → 1.0.2-scaffold.2
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 +54 -8
- package/ReactNativeEnrichedMarkdown.podspec +82 -73
- package/android/build.gradle +186 -1
- package/android/consumer-rules.pro +1 -1
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +3 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +24 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +8 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +9 -0
- package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +3 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +35 -0
- package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +886 -23
- package/android/src/main/baseline-prof.txt +1 -1
- package/android/src/main/cpp/jni-adapter.cpp +74 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +189 -13
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +17 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +50 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +48 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextLayoutManager.kt +10 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +42 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +82 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyPressEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +54 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +901 -462
- package/android/src/main/java/com/swmansion/enriched/markdown/input/MarkdownClipboard.kt +42 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/BlockEditCoordinator.kt +196 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/ClipboardCoordinator.kt +73 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditContext.kt +19 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditPipeline.kt +248 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditSession.kt +52 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/InputConnectionWrapper.kt +101 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/LinkCoordinator.kt +69 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MarkdownTextWatcher.kt +3 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MentionCoordinator.kt +118 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeStateEvent.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnContextMenuItemPressEvent.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnInputKeyPressEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnPasteEvent.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/BlockStore.kt +254 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +80 -87
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputFormatter.kt +109 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +116 -22
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/MarkdownSerializer.kt +167 -38
- package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/RangeEditAdjustment.kt +149 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputEventEmitter.kt +66 -5
- package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +4 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockRange.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockType.kt +48 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/FormattingRange.kt +9 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/InputFormatterStyle.kt +39 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathAtom.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathChipStyle.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MutableRangeBounds.kt +11 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputBulletSpan.kt +82 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputHeadingSpan.kt +58 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputListItemSpacingSpan.kt +37 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputOrderedListMarkerSpan.kt +63 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/BlockHandler.kt +54 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/HeadingBlockHandler.kt +27 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/OrderedListBlockHandler.kt +38 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/UnorderedListBlockHandler.kt +37 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +8 -26
- package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/parser/Parser.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockStyleContext.kt +9 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockquoteRenderer.kt +100 -12
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/CodeBlockRenderer.kt +16 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/HeadingRenderer.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListContextManager.kt +2 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListItemRenderer.kt +74 -18
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListRenderer.kt +43 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/NodeRenderer.kt +9 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SoftBreakRenderer.kt +16 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +30 -27
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/BaseListSpan.kt +24 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/BlockquoteSpan.kt +174 -24
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBackgroundSpan.kt +27 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBlockSpan.kt +13 -16
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/EmphasisSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ImageSpan.kt +182 -46
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListItemSpacingSpan.kt +33 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListMarkerAnchorSpan.kt +38 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/OrderedListSpan.kt +2 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/StrongSpan.kt +1 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/TaskListSpan.kt +3 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/spans/UnorderedListSpan.kt +3 -2
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/BlockquoteStyle.kt +6 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/CodeBlockStyle.kt +26 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/ImageStyle.kt +7 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/ListStyle.kt +4 -1
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/StyleConfig.kt +13 -4
- package/android/src/main/java/com/swmansion/enriched/markdown/styles/TableStyle.kt +6 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockHighlighter.kt +90 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockNode.kt +57 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/FeatureFlags.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownSegment.kt +9 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +37 -7
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/ReadableMapExtensions.kt +3 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/RenderedSegment.kt +10 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/SegmentSignature.kt +1 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/StreamingMarkdownFilter.kt +83 -5
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/serialization/MarkdownASTSerializer.kt +4 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/MarkdownStyleParser.kt +74 -44
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/PasteTextUtils.kt +20 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageCache.kt +26 -3
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageDownloader.kt +22 -9
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/LocalImageLoader.kt +161 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/TextPaintExtensions.kt +23 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/CheckboxTouchHelper.kt +7 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/TaskListTapUtils.kt +41 -21
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/span/BlockSpacing.kt +15 -8
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLongPressMovementMethod.kt +58 -27
- package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +49 -15
- package/android/src/main/java/com/swmansion/enriched/markdown/views/BlockMenuOptions.kt +45 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CodeBlockContainerView.kt +396 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/ContextMenuPopup.kt +9 -6
- package/android/src/main/java/com/swmansion/enriched/markdown/views/CopyGlyph.kt +101 -0
- package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +36 -9
- package/android/src/main/jni/CMakeLists.txt +53 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.cpp +10 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.h +11 -2
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.cpp +10 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.h +12 -2
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.cpp +9 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.h +24 -0
- package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/conversions.h +16 -0
- package/android/src/math/java/com/swmansion/enriched/markdown/input/math/MathChipControllerImpl.kt +21 -4
- package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +7 -2
- package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +1 -1
- package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +6 -4
- package/cpp/highlight/CodeBlockHighlighter.cpp +284 -0
- package/cpp/highlight/CodeBlockHighlighter.hpp +66 -0
- package/cpp/highlight/CodeBlockLanguages.cpp +138 -0
- package/cpp/highlight/CodeBlockLanguages.hpp +25 -0
- package/cpp/highlight/HighlightGrammars.hpp +28 -0
- package/cpp/highlight/code_highlight_podspec.rb +211 -0
- package/cpp/highlight/gen-registry.mjs +155 -0
- package/cpp/highlight/grammar-versions.json +159 -0
- package/cpp/highlight/vendor/generated/generated_queries.h +1665 -0
- package/cpp/highlight/vendor/generated/generated_registry.cpp +59 -0
- package/cpp/parser/MD4CParser.cpp +173 -61
- package/cpp/parser/MD4CParser.hpp +1 -0
- package/cpp/parser/MarkdownASTNode.hpp +2 -1
- package/cpp/wasm/ASTSerializer.cpp +2 -0
- package/cpp/wasm/build.sh +1 -0
- package/cpp/wasm/md4c_wasm.cpp +3 -1
- package/docs/ACCESSIBILITY.md +14 -2
- package/docs/API_REFERENCE.md +234 -12
- package/docs/BREAKING_CHANGES.md +129 -0
- package/docs/CODE_HIGHLIGHT.md +133 -0
- package/docs/COPY_OPTIONS.md +47 -3
- package/docs/ELEMENTS_STRUCTURE.md +52 -4
- package/docs/IMAGE_CACHING.md +30 -0
- package/docs/INPUT.md +108 -11
- package/docs/LATEX_MATH.md +87 -45
- package/docs/MACOS.md +1 -1
- package/docs/MARKDOWN_STREAMING.md +27 -1
- package/docs/NATIVE_ASSETS.md +127 -0
- package/docs/RTL.md +1 -1
- package/docs/STYLES.md +46 -6
- package/docs/TESTING.md +112 -0
- package/docs/TEXT.md +16 -6
- package/docs/WEB.md +3 -1
- package/ios/EnrichedMarkdown.h +7 -0
- package/ios/EnrichedMarkdown.mm +284 -75
- package/ios/EnrichedMarkdownText.h +7 -0
- package/ios/EnrichedMarkdownText.mm +101 -73
- package/ios/attachments/ENRMImageAttachment.h +9 -0
- package/ios/attachments/ENRMImageAttachment.m +143 -40
- package/ios/attachments/ENRMMathInlineAttachment.h +2 -0
- package/ios/attachments/ENRMMathInlineAttachment.m +48 -81
- package/ios/attachments/ENRMMathInlineAttachmentShared.h +2 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +35 -0
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +886 -23
- package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +131 -0
- package/ios/input/ENRMAutoLinkDetector.h +2 -1
- package/ios/input/ENRMAutoLinkDetector.mm +79 -41
- package/ios/input/ENRMBlockEditCoordinator.h +71 -0
- package/ios/input/ENRMBlockEditCoordinator.mm +195 -0
- package/ios/input/ENRMBlockRange.h +28 -0
- package/ios/input/ENRMBlockRange.mm +30 -0
- package/ios/input/ENRMBlockStore.h +56 -0
- package/ios/input/ENRMBlockStore.mm +275 -0
- package/ios/input/ENRMClipboardCoordinator.h +45 -0
- package/ios/input/ENRMClipboardCoordinator.mm +120 -0
- package/ios/input/ENRMDetectorPipeline.h +2 -1
- package/ios/input/ENRMEditPipeline.h +76 -0
- package/ios/input/ENRMEditPipeline.mm +228 -0
- package/ios/input/ENRMEditSession.h +36 -0
- package/ios/input/ENRMEditSession.mm +63 -0
- package/ios/input/ENRMFormattingStore.h +17 -0
- package/ios/input/ENRMFormattingStore.mm +95 -105
- package/ios/input/ENRMInputBlockType.h +91 -0
- package/ios/input/ENRMInputBlockType.mm +5 -0
- package/ios/input/ENRMInputDecorationDrawer.h +18 -0
- package/ios/input/ENRMInputEventEmitter.h +56 -0
- package/ios/input/ENRMInputEventEmitter.mm +308 -0
- package/ios/input/ENRMInputFormatter.h +29 -69
- package/ios/input/ENRMInputFormatter.mm +216 -124
- package/ios/input/ENRMInputFormatterStyle.h +99 -0
- package/ios/input/ENRMInputFormatterStyle.mm +188 -0
- package/ios/input/ENRMInputLayoutManager.h +9 -0
- package/ios/input/ENRMInputLayoutManager.mm +30 -0
- package/ios/input/ENRMInputListMarkerDrawer.h +32 -0
- package/ios/input/ENRMInputListMarkerDrawer.mm +426 -0
- package/ios/input/ENRMInputParser.h +5 -6
- package/ios/input/ENRMInputParser.mm +461 -178
- package/ios/input/ENRMInputRemend.mm +2 -2
- package/ios/input/ENRMInputStyleStateBuilder.h +40 -0
- package/ios/input/ENRMInputStyleStateBuilder.mm +60 -0
- package/ios/input/ENRMInputTextView.mm +103 -8
- package/ios/input/ENRMInputTypingAttributesController.h +42 -0
- package/ios/input/ENRMInputTypingAttributesController.mm +203 -0
- package/ios/input/ENRMLinkCoordinator.h +41 -0
- package/ios/input/ENRMLinkCoordinator.mm +89 -0
- package/ios/input/ENRMMarkdownSerializer.h +29 -5
- package/ios/input/ENRMMarkdownSerializer.mm +170 -48
- package/ios/input/ENRMMathAtom.h +26 -0
- package/ios/input/ENRMMathAtom.mm +12 -0
- package/ios/input/ENRMMentionCoordinator.h +45 -0
- package/ios/input/ENRMMentionCoordinator.mm +167 -0
- package/ios/input/ENRMRangeEditAdjustment.h +38 -0
- package/ios/input/ENRMRangeEditAdjustment.mm +91 -0
- package/ios/input/ENRMRangeStoreUtils.h +39 -0
- package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +6 -6
- package/ios/input/EnrichedMarkdownTextInput+Internal.h +11 -3
- package/ios/input/EnrichedMarkdownTextInput.h +7 -1
- package/ios/input/EnrichedMarkdownTextInput.mm +1089 -1023
- package/ios/input/InputStylePropsUtils.h +109 -68
- package/ios/input/internals/EnrichedMarkdownTextInputShadowNode.mm +2 -1
- package/ios/input/styles/ENRMBlockHandler.h +46 -0
- package/ios/input/styles/ENRMHeadingBlockHandler.h +15 -0
- package/ios/input/styles/ENRMHeadingBlockHandler.mm +38 -0
- package/ios/input/styles/ENRMOrderedListBlockHandler.h +14 -0
- package/ios/input/styles/ENRMOrderedListBlockHandler.mm +48 -0
- package/ios/input/styles/ENRMUnorderedListBlockHandler.h +15 -0
- package/ios/input/styles/ENRMUnorderedListBlockHandler.mm +51 -0
- package/ios/internals/ENRMViewFreeMeasurement.h +331 -0
- package/ios/internals/EnrichedMarkdownShadowNode.h +1 -3
- package/ios/internals/EnrichedMarkdownShadowNode.mm +16 -20
- package/ios/internals/EnrichedMarkdownTextShadowNode.h +1 -3
- package/ios/internals/EnrichedMarkdownTextShadowNode.mm +15 -20
- package/ios/internals/MeasurementCache.h +33 -7
- package/ios/internals/ShadowMeasurementUtils.h +63 -58
- package/ios/math/ENRMMathChipController.h +74 -0
- package/ios/math/ENRMMathChipController.mm +476 -0
- package/ios/math/ENRMRaTeXBridge.swift +4 -1
- package/ios/parser/ENRMMarkdownParser.h +1 -8
- package/ios/parser/ENRMMarkdownParser.mm +2 -11
- package/ios/parser/MarkdownASTNode.h +2 -1
- package/ios/parser/MarkdownParserBridge.mm +4 -0
- package/ios/renderer/AttributedRenderer.m +20 -2
- package/ios/renderer/BaseRenderer.h +17 -2
- package/ios/renderer/BaseRenderer.m +30 -0
- package/ios/renderer/BlockquoteRenderer.h +1 -1
- package/ios/renderer/BlockquoteRenderer.m +144 -35
- package/ios/renderer/CodeBlockRenderer.h +1 -1
- package/ios/renderer/CodeBlockRenderer.m +27 -23
- package/ios/renderer/CodeRenderer.h +1 -1
- package/ios/renderer/CodeRenderer.m +3 -1
- package/ios/renderer/ENRMImageRenderer.h +1 -1
- package/ios/renderer/ENRMImageRenderer.m +5 -1
- package/ios/renderer/ENRMMathInlineRenderer.h +1 -1
- package/ios/renderer/ENRMMathInlineRenderer.m +5 -1
- package/ios/renderer/ENRMSpoilerRenderer.h +1 -1
- package/ios/renderer/ENRMSpoilerRenderer.m +3 -1
- package/ios/renderer/EmphasisRenderer.h +1 -1
- package/ios/renderer/EmphasisRenderer.m +3 -1
- package/ios/renderer/HeadingRenderer.h +1 -1
- package/ios/renderer/HeadingRenderer.m +13 -6
- package/ios/renderer/HighlightRenderer.h +1 -1
- package/ios/renderer/HighlightRenderer.m +3 -1
- package/ios/renderer/LinkRenderer.h +1 -1
- package/ios/renderer/LinkRenderer.m +3 -1
- package/ios/renderer/ListItemRenderer.h +13 -1
- package/ios/renderer/ListItemRenderer.m +102 -44
- package/ios/renderer/ListRenderer.h +2 -2
- package/ios/renderer/ListRenderer.m +63 -25
- package/ios/renderer/ParagraphRenderer.h +1 -1
- package/ios/renderer/ParagraphRenderer.m +16 -8
- package/ios/renderer/RenderContext.h +10 -0
- package/ios/renderer/RenderContext.m +44 -0
- package/ios/renderer/RendererFactory.m +14 -0
- package/ios/renderer/StrikethroughRenderer.h +1 -1
- package/ios/renderer/StrikethroughRenderer.m +3 -1
- package/ios/renderer/StrongRenderer.h +1 -1
- package/ios/renderer/StrongRenderer.m +3 -1
- package/ios/renderer/SubscriptRenderer.h +1 -1
- package/ios/renderer/SubscriptRenderer.m +3 -1
- package/ios/renderer/SuperscriptRenderer.h +1 -1
- package/ios/renderer/SuperscriptRenderer.m +3 -1
- package/ios/renderer/TextRenderer.h +2 -2
- package/ios/renderer/TextRenderer.m +3 -1
- package/ios/renderer/ThematicBreakRenderer.h +1 -1
- package/ios/renderer/ThematicBreakRenderer.m +3 -1
- package/ios/renderer/UnderlineRenderer.h +1 -1
- package/ios/renderer/UnderlineRenderer.m +3 -1
- package/ios/styles/StyleConfig.h +22 -0
- package/ios/styles/StyleConfig.mm +132 -0
- package/ios/utils/BlockquoteBorder.h +6 -0
- package/ios/utils/BlockquoteBorder.m +249 -52
- package/ios/utils/CodeBlockBackground.m +16 -2
- package/ios/utils/ENRMAtomicSize.h +65 -0
- package/ios/utils/ENRMBlockMenu.h +57 -0
- package/ios/utils/ENRMCodeBlockContent.h +37 -0
- package/ios/utils/ENRMCodeBlockContent.mm +79 -0
- package/ios/utils/ENRMCodeBlockHighlighter.h +37 -0
- package/ios/utils/ENRMCodeBlockHighlighter.mm +51 -0
- package/ios/utils/ENRMFeatureFlags.h +7 -0
- package/ios/utils/ENRMImageDownloader.h +11 -1
- package/ios/utils/ENRMImageDownloader.m +60 -16
- package/ios/utils/ENRMLocalImageLoader.h +31 -0
- package/ios/utils/ENRMLocalImageLoader.m +68 -0
- package/ios/utils/ENRMMathFallback.h +26 -0
- package/ios/utils/ENRMMathFallback.m +18 -0
- package/ios/utils/ENRMTextViewSetup.h +35 -17
- package/ios/utils/EditMenuUtils.h +22 -5
- package/ios/utils/EditMenuUtils.m +53 -9
- package/ios/utils/ImageRequestHeaderUtils.h +35 -0
- package/ios/utils/LastElementUtils.h +1 -0
- package/ios/utils/ListMarkerDrawer.m +29 -42
- package/ios/utils/MarkdownASTSerializer.m +4 -0
- package/ios/utils/ParagraphStyleUtils.h +5 -0
- package/ios/utils/ParagraphStyleUtils.m +77 -17
- package/ios/utils/RenderedMarkdownSegment.h +13 -1
- package/ios/utils/RenderedMarkdownSegment.m +20 -0
- package/ios/utils/SegmentRenderer.m +17 -4
- package/ios/utils/StreamingMarkdownFilter.h +11 -1
- package/ios/utils/StreamingMarkdownFilter.m +98 -2
- package/ios/utils/StylePropsUtils.h +63 -0
- package/ios/utils/TaskListTapUtils.m +24 -0
- package/ios/views/ENRMCodeBlockContainerView.h +53 -0
- package/ios/views/ENRMCodeBlockContainerView.m +559 -0
- package/ios/views/ENRMMathContainerView.h +16 -0
- package/ios/views/ENRMMathContainerView.m +74 -19
- package/ios/views/TableContainerView.h +22 -0
- package/ios/views/TableContainerView.m +261 -175
- package/jest.d.ts +1 -0
- package/jest.js +5 -0
- package/lib/module/EnrichedMarkdownNativeComponent.ts +73 -0
- package/lib/module/EnrichedMarkdownTextInput.js +84 -5
- package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
- package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
- package/lib/module/EnrichedMarkdownTextNativeComponent.ts +74 -0
- package/lib/module/headingDefaults.js +34 -0
- package/lib/module/headingDefaults.js.map +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/jest/index.js +191 -0
- package/lib/module/jest/index.js.map +1 -0
- package/lib/module/native/EnrichedMarkdownText.js +37 -5
- package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.js +81 -19
- package/lib/module/normalizeMarkdownStyle.js.map +1 -1
- package/lib/module/normalizeMarkdownStyle.web.js +56 -18
- package/lib/module/normalizeMarkdownStyle.web.js.map +1 -1
- package/lib/module/normalizeMarkdownTextInputStyle.js +62 -15
- package/lib/module/normalizeMarkdownTextInputStyle.js.map +1 -1
- package/lib/module/normalizeMenuItem.js +1 -1
- package/lib/module/utils/textInputState.js +26 -0
- package/lib/module/utils/textInputState.js.map +1 -0
- package/lib/module/web/EnrichedMarkdownText.js +9 -5
- package/lib/module/web/EnrichedMarkdownText.js.map +1 -1
- package/lib/module/web/parseMarkdown.js +4 -3
- package/lib/module/web/parseMarkdown.js.map +1 -1
- package/lib/module/web/renderers/InlineRenderers.js +6 -0
- package/lib/module/web/renderers/InlineRenderers.js.map +1 -1
- package/lib/module/web/renderers/ListRenderers.js +7 -2
- package/lib/module/web/renderers/ListRenderers.js.map +1 -1
- package/lib/module/web/renderers/index.js +7 -4
- package/lib/module/web/renderers/index.js.map +1 -1
- package/lib/module/web/styles.js +83 -6
- package/lib/module/web/styles.js.map +1 -1
- package/lib/module/web/utils.js +1 -0
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web/wasm/md4c.js +0 -0
- package/lib/module/web/wasm/md4c.js.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +66 -0
- package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +94 -9
- package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +69 -5
- package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +66 -0
- package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
- package/lib/typescript/src/headingDefaults.d.ts +9 -0
- package/lib/typescript/src/headingDefaults.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +1 -1
- package/lib/typescript/src/index.web.d.ts.map +1 -1
- package/lib/typescript/src/jest/index.d.ts +6 -0
- package/lib/typescript/src/jest/index.d.ts.map +1 -0
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +3 -3
- package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -1
- package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts +19 -5
- package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyle.d.ts +72 -0
- package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +27 -0
- package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.d.ts +104 -9
- package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +19 -0
- package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -1
- package/lib/typescript/src/types/events.d.ts +19 -0
- package/lib/typescript/src/types/events.d.ts.map +1 -1
- package/lib/typescript/src/utils/textInputState.d.ts +24 -0
- package/lib/typescript/src/utils/textInputState.d.ts.map +1 -0
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts +1 -1
- package/lib/typescript/src/web/EnrichedMarkdownText.d.ts.map +1 -1
- package/lib/typescript/src/web/parseMarkdown.d.ts +1 -1
- package/lib/typescript/src/web/parseMarkdown.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/InlineRenderers.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/ListRenderers.d.ts.map +1 -1
- package/lib/typescript/src/web/renderers/index.d.ts +2 -1
- package/lib/typescript/src/web/renderers/index.d.ts.map +1 -1
- package/lib/typescript/src/web/styles.d.ts +2 -1
- package/lib/typescript/src/web/styles.d.ts.map +1 -1
- package/lib/typescript/src/web/types.d.ts +6 -2
- package/lib/typescript/src/web/types.d.ts.map +1 -1
- package/lib/typescript/src/web/utils.d.ts.map +1 -1
- package/package.json +36 -9
- package/postinstall.mjs +131 -0
- package/ratex-version.json +21 -0
- package/src/EnrichedMarkdownNativeComponent.ts +73 -0
- package/src/EnrichedMarkdownTextInput.tsx +159 -8
- package/src/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
- package/src/EnrichedMarkdownTextNativeComponent.ts +74 -0
- package/src/headingDefaults.ts +21 -0
- package/src/index.tsx +9 -0
- package/src/index.web.tsx +1 -0
- package/src/jest/index.tsx +215 -0
- package/src/native/EnrichedMarkdownText.tsx +53 -2
- package/src/normalizeMarkdownStyle.ts +102 -16
- package/src/normalizeMarkdownStyle.web.ts +63 -15
- package/src/normalizeMarkdownTextInputStyle.ts +110 -35
- package/src/normalizeMenuItem.ts +1 -1
- package/src/types/MarkdownStyle.ts +74 -0
- package/src/types/MarkdownStyleInternal.ts +39 -0
- package/src/types/MarkdownTextProps.ts +101 -9
- package/src/types/MarkdownTextProps.web.ts +19 -0
- package/src/types/events.ts +21 -0
- package/src/utils/textInputState.ts +35 -0
- package/src/web/EnrichedMarkdownText.tsx +16 -2
- package/src/web/parseMarkdown.ts +6 -2
- package/src/web/renderers/InlineRenderers.tsx +5 -0
- package/src/web/renderers/ListRenderers.tsx +14 -2
- package/src/web/renderers/index.tsx +6 -2
- package/src/web/styles.ts +89 -5
- package/src/web/types.ts +6 -1
- package/src/web/utils.ts +1 -0
- package/src/web/wasm/md4c.js +0 -0
- package/vendor-grammars.mjs +511 -0
- package/vendor-ratex.mjs +173 -0
- package/app.plugin.js +0 -2
- package/plugin/build/withAndroidMath.js +0 -19
- package/plugin/build/withIosMath.js +0 -28
- package/plugin/build/withReactNativeEnrichedMarkdown.js +0 -11
- package/plugin/src/withAndroidMath.ts +0 -24
- package/plugin/src/withIosMath.ts +0 -35
- package/plugin/src/withReactNativeEnrichedMarkdown.ts +0 -17
- package/plugin/tsconfig.build.json +0 -16
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
#import "ENRMMathFallback.h"
|
|
1
2
|
#import "ENRMMathInlineAttachmentShared.h"
|
|
2
3
|
|
|
3
4
|
#if ENRICHED_MARKDOWN_MATH
|
|
@@ -10,21 +11,49 @@
|
|
|
10
11
|
|
|
11
12
|
@implementation ENRMMathInlineAttachment
|
|
12
13
|
|
|
14
|
+
- (CGFloat)boxHeight
|
|
15
|
+
{
|
|
16
|
+
#if !TARGET_OS_OSX
|
|
17
|
+
[self prepareIfNeeded];
|
|
18
|
+
#endif
|
|
19
|
+
return _cachedSize.height + _containerPaddingVertical * 2;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/// Clears the cached glyph render so the next layout regenerates it
|
|
23
|
+
/// (e.g. after style or latex changes).
|
|
24
|
+
- (void)invalidateRender
|
|
25
|
+
{
|
|
26
|
+
_renderResult = nil;
|
|
27
|
+
_fallbackSource = nil;
|
|
28
|
+
_cachedSize = CGSizeZero;
|
|
29
|
+
_mathAscent = 0;
|
|
30
|
+
_mathDescent = 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
13
33
|
#if !TARGET_OS_OSX
|
|
14
34
|
|
|
15
35
|
- (void)prepareIfNeeded
|
|
16
36
|
{
|
|
17
|
-
if (_renderResult)
|
|
37
|
+
if (_renderResult || _fallbackSource)
|
|
18
38
|
return;
|
|
19
39
|
|
|
20
40
|
RCTUIColor *color = self.mathTextColor ?: [RCTUIColor blackColor];
|
|
21
41
|
ENRMRaTeXRenderResult *result = [ENRMRaTeXBridge parse:self.latex
|
|
22
|
-
displayMode:
|
|
42
|
+
displayMode:NO
|
|
23
43
|
fontSize:self.fontSize
|
|
24
44
|
color:color
|
|
25
45
|
bold:self.bold];
|
|
26
|
-
if (!result)
|
|
46
|
+
if (!result) {
|
|
47
|
+
_fallbackSource = ENRMMathFallbackString(self.latex, @"$", self.fontSize, color);
|
|
48
|
+
UIFont *font = [_fallbackSource attribute:NSFontAttributeName atIndex:0 effectiveRange:NULL];
|
|
49
|
+
CGRect bounds = [_fallbackSource boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)
|
|
50
|
+
options:NSStringDrawingUsesLineFragmentOrigin
|
|
51
|
+
context:nil];
|
|
52
|
+
_mathAscent = font.ascender;
|
|
53
|
+
_mathDescent = -font.descender;
|
|
54
|
+
_cachedSize = CGSizeMake(ceil(bounds.size.width), ceil(_mathAscent + _mathDescent));
|
|
27
55
|
return;
|
|
56
|
+
}
|
|
28
57
|
|
|
29
58
|
_renderResult = result;
|
|
30
59
|
_mathAscent = result.ascent;
|
|
@@ -32,33 +61,16 @@
|
|
|
32
61
|
_cachedSize = CGSizeMake(ceil(result.width), ceil(result.totalHeight));
|
|
33
62
|
}
|
|
34
63
|
|
|
35
|
-
- (void)invalidateRender
|
|
36
|
-
{
|
|
37
|
-
_renderResult = nil;
|
|
38
|
-
_cachedSize = CGSizeZero;
|
|
39
|
-
_mathAscent = 0;
|
|
40
|
-
_mathDescent = 0;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
64
|
- (CGRect)attachmentBoundsForTextContainer:(NSTextContainer *)textContainer
|
|
44
65
|
proposedLineFragment:(CGRect)lineFragment
|
|
45
66
|
glyphPosition:(CGPoint)position
|
|
46
67
|
characterIndex:(NSUInteger)characterIndex
|
|
47
68
|
{
|
|
48
69
|
[self prepareIfNeeded];
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (_displayMode) {
|
|
54
|
-
totalH += _blockMarginTop + _blockMarginBottom;
|
|
55
|
-
// Block chip claims the full line fragment so text can't share the row.
|
|
56
|
-
// Fall back to intrinsic width when the proposed fragment is degenerate
|
|
57
|
-
// (e.g. during initial layout before the text container has a size).
|
|
58
|
-
CGFloat fullW = MAX(lineFragment.size.width, intrinsicW);
|
|
59
|
-
return CGRectMake(0, -(_mathDescent + _containerPaddingVertical + _blockMarginBottom), fullW, totalH);
|
|
60
|
-
}
|
|
61
|
-
return CGRectMake(0, -(_mathDescent + _containerPaddingVertical), intrinsicW, totalH);
|
|
70
|
+
// inlineMath.paddingVertical grows the glyph box symmetrically so a tall formula
|
|
71
|
+
// (\frac, \sum) stops sitting flush against the neighbouring line.
|
|
72
|
+
return CGRectMake(0, -(_mathDescent + _containerPaddingVertical), _cachedSize.width,
|
|
73
|
+
_cachedSize.height + _containerPaddingVertical * 2);
|
|
62
74
|
}
|
|
63
75
|
|
|
64
76
|
- (UIImage *)imageForBounds:(CGRect)imageBounds
|
|
@@ -66,72 +78,27 @@
|
|
|
66
78
|
characterIndex:(NSUInteger)characterIndex
|
|
67
79
|
{
|
|
68
80
|
[self prepareIfNeeded];
|
|
69
|
-
if (!_renderResult)
|
|
81
|
+
if (!_renderResult && !_fallbackSource)
|
|
70
82
|
return nil;
|
|
71
83
|
|
|
72
|
-
// Block chips claim the full line fragment (set in attachmentBounds…), so
|
|
73
|
-
// the canvas is `imageBounds.width` wide and the formula floats inside it
|
|
74
|
-
// according to `blockAlignment`. Inline chips fall back to intrinsic width.
|
|
75
|
-
CGFloat intrinsicW = _cachedSize.width + _containerPaddingHorizontal * 2;
|
|
76
|
-
CGFloat totalW = (_displayMode && imageBounds.size.width > intrinsicW) ? imageBounds.size.width : intrinsicW;
|
|
77
|
-
CGFloat totalH = _cachedSize.height + _containerPaddingVertical * 2;
|
|
78
|
-
CGSize totalSize = CGSizeMake(totalW, totalH);
|
|
79
|
-
|
|
80
|
-
RCTUIColor *bg = _isSelected ? (_selectedBackgroundColor ?: _containerBackgroundColor) : _containerBackgroundColor;
|
|
81
|
-
RCTUIColor *border = _isSelected ? (_selectedBorderColor ?: _containerBorderColor) : _containerBorderColor;
|
|
82
|
-
CGFloat borderWidth = _containerBorderWidth;
|
|
83
|
-
CGFloat borderRadius = _containerBorderRadius;
|
|
84
|
-
CGFloat padH = _containerPaddingHorizontal;
|
|
85
|
-
CGFloat padV = _containerPaddingVertical;
|
|
86
|
-
ENRMRaTeXRenderResult *render = _renderResult;
|
|
87
|
-
CGFloat formulaW = _cachedSize.width;
|
|
88
|
-
NSTextAlignment alignment = _blockAlignment;
|
|
89
|
-
BOOL displayMode = _displayMode;
|
|
90
|
-
|
|
91
84
|
UIGraphicsImageRendererFormat *format = [UIGraphicsImageRendererFormat preferredFormat];
|
|
92
85
|
format.opaque = NO;
|
|
93
86
|
|
|
94
|
-
|
|
87
|
+
CGFloat padV = _containerPaddingVertical;
|
|
88
|
+
CGSize boxSize = CGSizeMake(_cachedSize.width, _cachedSize.height + padV * 2);
|
|
89
|
+
UIGraphicsImageRenderer *renderer = [[UIGraphicsImageRenderer alloc] initWithSize:boxSize format:format];
|
|
95
90
|
|
|
96
91
|
return [renderer imageWithActions:^(UIGraphicsImageRendererContext *rendererContext) {
|
|
97
92
|
CGContextRef ctx = rendererContext.CGContext;
|
|
98
|
-
|
|
99
|
-
if (bg) {
|
|
100
|
-
CGFloat inset = borderWidth / 2.0;
|
|
101
|
-
CGRect rect = CGRectMake(inset, inset, totalW - borderWidth, totalH - borderWidth);
|
|
102
|
-
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:borderRadius];
|
|
103
|
-
[bg setFill];
|
|
104
|
-
[path fill];
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
if (border && borderWidth > 0) {
|
|
108
|
-
CGFloat inset = borderWidth / 2.0;
|
|
109
|
-
CGRect rect = CGRectMake(inset, inset, totalW - borderWidth, totalH - borderWidth);
|
|
110
|
-
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:borderRadius];
|
|
111
|
-
[border setStroke];
|
|
112
|
-
path.lineWidth = borderWidth;
|
|
113
|
-
[path stroke];
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
CGFloat glyphOffset = padH;
|
|
117
|
-
if (displayMode && totalW > intrinsicW) {
|
|
118
|
-
CGFloat slack = totalW - formulaW - padH * 2;
|
|
119
|
-
switch (alignment) {
|
|
120
|
-
case NSTextAlignmentCenter:
|
|
121
|
-
glyphOffset = padH + slack / 2.0;
|
|
122
|
-
break;
|
|
123
|
-
case NSTextAlignmentRight:
|
|
124
|
-
glyphOffset = padH + slack;
|
|
125
|
-
break;
|
|
126
|
-
default:
|
|
127
|
-
glyphOffset = padH;
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
93
|
CGContextSaveGState(ctx);
|
|
133
|
-
CGContextTranslateCTM(ctx,
|
|
134
|
-
|
|
94
|
+
CGContextTranslateCTM(ctx, 0, padV);
|
|
95
|
+
if (_renderResult) {
|
|
96
|
+
[_renderResult drawIn:ctx];
|
|
97
|
+
} else {
|
|
98
|
+
[_fallbackSource drawWithRect:CGRectMake(0, 0, _cachedSize.width, _cachedSize.height)
|
|
99
|
+
options:NSStringDrawingUsesLineFragmentOrigin
|
|
100
|
+
context:nil];
|
|
101
|
+
}
|
|
135
102
|
CGContextRestoreGState(ctx);
|
|
136
103
|
}];
|
|
137
104
|
}
|
|
@@ -42,6 +42,16 @@ payload.setProperty(runtime, "text", event.text);
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
|
|
45
|
+
void EnrichedMarkdownEventEmitter::onCopyPress(OnCopyPress event) const {
|
|
46
|
+
dispatchEvent("copyPress", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
47
|
+
auto payload = jsi::Object(runtime);
|
|
48
|
+
payload.setProperty(runtime, "code", event.code);
|
|
49
|
+
payload.setProperty(runtime, "language", event.language);
|
|
50
|
+
return payload;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
45
55
|
void EnrichedMarkdownEventEmitter::onContextMenuItemPress(OnContextMenuItemPress event) const {
|
|
46
56
|
dispatchEvent("contextMenuItemPress", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
47
57
|
auto payload = jsi::Object(runtime);
|
|
@@ -82,6 +92,15 @@ payload.setProperty(runtime, "end", event.end);
|
|
|
82
92
|
}
|
|
83
93
|
|
|
84
94
|
|
|
95
|
+
void EnrichedMarkdownTextInputEventEmitter::onInputKeyPress(OnInputKeyPress event) const {
|
|
96
|
+
dispatchEvent("inputKeyPress", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
97
|
+
auto payload = jsi::Object(runtime);
|
|
98
|
+
payload.setProperty(runtime, "key", event.key);
|
|
99
|
+
return payload;
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
85
104
|
void EnrichedMarkdownTextInputEventEmitter::onChangeState(OnChangeState event) const {
|
|
86
105
|
dispatchEvent("changeState", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
87
106
|
auto payload = jsi::Object(runtime);
|
|
@@ -114,6 +133,24 @@ void EnrichedMarkdownTextInputEventEmitter::onChangeState(OnChangeState event) c
|
|
|
114
133
|
auto link = jsi::Object(runtime);
|
|
115
134
|
link.setProperty(runtime, "isActive", event.link.isActive);
|
|
116
135
|
payload.setProperty(runtime, "link", link);
|
|
136
|
+
}
|
|
137
|
+
{
|
|
138
|
+
auto heading = jsi::Object(runtime);
|
|
139
|
+
heading.setProperty(runtime, "isActive", event.heading.isActive);
|
|
140
|
+
heading.setProperty(runtime, "level", event.heading.level);
|
|
141
|
+
payload.setProperty(runtime, "heading", heading);
|
|
142
|
+
}
|
|
143
|
+
{
|
|
144
|
+
auto unorderedList = jsi::Object(runtime);
|
|
145
|
+
unorderedList.setProperty(runtime, "isActive", event.unorderedList.isActive);
|
|
146
|
+
unorderedList.setProperty(runtime, "depth", event.unorderedList.depth);
|
|
147
|
+
payload.setProperty(runtime, "unorderedList", unorderedList);
|
|
148
|
+
}
|
|
149
|
+
{
|
|
150
|
+
auto orderedList = jsi::Object(runtime);
|
|
151
|
+
orderedList.setProperty(runtime, "isActive", event.orderedList.isActive);
|
|
152
|
+
orderedList.setProperty(runtime, "depth", event.orderedList.depth);
|
|
153
|
+
payload.setProperty(runtime, "orderedList", orderedList);
|
|
117
154
|
}
|
|
118
155
|
return payload;
|
|
119
156
|
});
|
|
@@ -212,6 +249,24 @@ payload.setProperty(runtime, "selectionEnd", event.selectionEnd);
|
|
|
212
249
|
link.setProperty(runtime, "isActive", event.styleState.link.isActive);
|
|
213
250
|
styleState.setProperty(runtime, "link", link);
|
|
214
251
|
}
|
|
252
|
+
{
|
|
253
|
+
auto heading = jsi::Object(runtime);
|
|
254
|
+
heading.setProperty(runtime, "isActive", event.styleState.heading.isActive);
|
|
255
|
+
heading.setProperty(runtime, "level", event.styleState.heading.level);
|
|
256
|
+
styleState.setProperty(runtime, "heading", heading);
|
|
257
|
+
}
|
|
258
|
+
{
|
|
259
|
+
auto unorderedList = jsi::Object(runtime);
|
|
260
|
+
unorderedList.setProperty(runtime, "isActive", event.styleState.unorderedList.isActive);
|
|
261
|
+
unorderedList.setProperty(runtime, "depth", event.styleState.unorderedList.depth);
|
|
262
|
+
styleState.setProperty(runtime, "unorderedList", unorderedList);
|
|
263
|
+
}
|
|
264
|
+
{
|
|
265
|
+
auto orderedList = jsi::Object(runtime);
|
|
266
|
+
orderedList.setProperty(runtime, "isActive", event.styleState.orderedList.isActive);
|
|
267
|
+
orderedList.setProperty(runtime, "depth", event.styleState.orderedList.depth);
|
|
268
|
+
styleState.setProperty(runtime, "orderedList", orderedList);
|
|
269
|
+
}
|
|
215
270
|
payload.setProperty(runtime, "styleState", styleState);
|
|
216
271
|
}
|
|
217
272
|
return payload;
|
|
@@ -247,6 +302,16 @@ payload.setProperty(runtime, "height", event.height);
|
|
|
247
302
|
}
|
|
248
303
|
|
|
249
304
|
|
|
305
|
+
void EnrichedMarkdownTextInputEventEmitter::onPaste(OnPaste event) const {
|
|
306
|
+
dispatchEvent("paste", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
307
|
+
auto payload = jsi::Object(runtime);
|
|
308
|
+
payload.setProperty(runtime, "text", event.text);
|
|
309
|
+
payload.setProperty(runtime, "markdown", event.markdown);
|
|
310
|
+
return payload;
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
250
315
|
void EnrichedMarkdownTextInputEventEmitter::onStartMention(OnStartMention event) const {
|
|
251
316
|
dispatchEvent("startMention", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
252
317
|
auto payload = jsi::Object(runtime);
|
|
@@ -304,6 +369,16 @@ payload.setProperty(runtime, "text", event.text);
|
|
|
304
369
|
}
|
|
305
370
|
|
|
306
371
|
|
|
372
|
+
void EnrichedMarkdownTextEventEmitter::onCopyPress(OnCopyPress event) const {
|
|
373
|
+
dispatchEvent("copyPress", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
374
|
+
auto payload = jsi::Object(runtime);
|
|
375
|
+
payload.setProperty(runtime, "code", event.code);
|
|
376
|
+
payload.setProperty(runtime, "language", event.language);
|
|
377
|
+
return payload;
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
|
|
307
382
|
void EnrichedMarkdownTextEventEmitter::onContextMenuItemPress(OnContextMenuItemPress event) const {
|
|
308
383
|
dispatchEvent("contextMenuItemPress", [event=std::move(event)](jsi::Runtime &runtime) {
|
|
309
384
|
auto payload = jsi::Object(runtime);
|
|
@@ -31,6 +31,11 @@ class EnrichedMarkdownEventEmitter : public ViewEventEmitter {
|
|
|
31
31
|
std::string text;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
+
struct OnCopyPress {
|
|
35
|
+
std::string code;
|
|
36
|
+
std::string language;
|
|
37
|
+
};
|
|
38
|
+
|
|
34
39
|
struct OnContextMenuItemPress {
|
|
35
40
|
std::string itemText;
|
|
36
41
|
std::string selectedText;
|
|
@@ -43,6 +48,8 @@ class EnrichedMarkdownEventEmitter : public ViewEventEmitter {
|
|
|
43
48
|
|
|
44
49
|
void onTaskListItemPress(OnTaskListItemPress value) const;
|
|
45
50
|
|
|
51
|
+
void onCopyPress(OnCopyPress value) const;
|
|
52
|
+
|
|
46
53
|
void onContextMenuItemPress(OnContextMenuItemPress value) const;
|
|
47
54
|
};
|
|
48
55
|
class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
@@ -62,6 +69,10 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
62
69
|
int end;
|
|
63
70
|
};
|
|
64
71
|
|
|
72
|
+
struct OnInputKeyPress {
|
|
73
|
+
std::string key;
|
|
74
|
+
};
|
|
75
|
+
|
|
65
76
|
struct OnChangeStateBold {
|
|
66
77
|
bool isActive;
|
|
67
78
|
};
|
|
@@ -86,6 +97,21 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
86
97
|
bool isActive;
|
|
87
98
|
};
|
|
88
99
|
|
|
100
|
+
struct OnChangeStateHeading {
|
|
101
|
+
bool isActive;
|
|
102
|
+
int level;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
struct OnChangeStateUnorderedList {
|
|
106
|
+
bool isActive;
|
|
107
|
+
int depth;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
struct OnChangeStateOrderedList {
|
|
111
|
+
bool isActive;
|
|
112
|
+
int depth;
|
|
113
|
+
};
|
|
114
|
+
|
|
89
115
|
struct OnChangeState {
|
|
90
116
|
OnChangeStateBold bold;
|
|
91
117
|
OnChangeStateItalic italic;
|
|
@@ -93,6 +119,9 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
93
119
|
OnChangeStateStrikethrough strikethrough;
|
|
94
120
|
OnChangeStateSpoiler spoiler;
|
|
95
121
|
OnChangeStateLink link;
|
|
122
|
+
OnChangeStateHeading heading;
|
|
123
|
+
OnChangeStateUnorderedList unorderedList;
|
|
124
|
+
OnChangeStateOrderedList orderedList;
|
|
96
125
|
};
|
|
97
126
|
|
|
98
127
|
struct OnInputFocus {
|
|
@@ -147,6 +176,21 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
147
176
|
bool isActive;
|
|
148
177
|
};
|
|
149
178
|
|
|
179
|
+
struct OnContextMenuItemPressStyleStateHeading {
|
|
180
|
+
bool isActive;
|
|
181
|
+
int level;
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
struct OnContextMenuItemPressStyleStateUnorderedList {
|
|
185
|
+
bool isActive;
|
|
186
|
+
int depth;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
struct OnContextMenuItemPressStyleStateOrderedList {
|
|
190
|
+
bool isActive;
|
|
191
|
+
int depth;
|
|
192
|
+
};
|
|
193
|
+
|
|
150
194
|
struct OnContextMenuItemPressStyleState {
|
|
151
195
|
OnContextMenuItemPressStyleStateBold bold;
|
|
152
196
|
OnContextMenuItemPressStyleStateItalic italic;
|
|
@@ -154,6 +198,9 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
154
198
|
OnContextMenuItemPressStyleStateStrikethrough strikethrough;
|
|
155
199
|
OnContextMenuItemPressStyleStateSpoiler spoiler;
|
|
156
200
|
OnContextMenuItemPressStyleStateLink link;
|
|
201
|
+
OnContextMenuItemPressStyleStateHeading heading;
|
|
202
|
+
OnContextMenuItemPressStyleStateUnorderedList unorderedList;
|
|
203
|
+
OnContextMenuItemPressStyleStateOrderedList orderedList;
|
|
157
204
|
};
|
|
158
205
|
|
|
159
206
|
struct OnContextMenuItemPress {
|
|
@@ -182,6 +229,11 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
182
229
|
double height;
|
|
183
230
|
};
|
|
184
231
|
|
|
232
|
+
struct OnPaste {
|
|
233
|
+
std::string text;
|
|
234
|
+
std::string markdown;
|
|
235
|
+
};
|
|
236
|
+
|
|
185
237
|
struct OnStartMention {
|
|
186
238
|
std::string indicator;
|
|
187
239
|
};
|
|
@@ -200,6 +252,8 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
200
252
|
|
|
201
253
|
void onChangeSelection(OnChangeSelection value) const;
|
|
202
254
|
|
|
255
|
+
void onInputKeyPress(OnInputKeyPress value) const;
|
|
256
|
+
|
|
203
257
|
void onChangeState(OnChangeState value) const;
|
|
204
258
|
|
|
205
259
|
void onInputFocus(OnInputFocus value) const;
|
|
@@ -218,6 +272,8 @@ class EnrichedMarkdownTextInputEventEmitter : public ViewEventEmitter {
|
|
|
218
272
|
|
|
219
273
|
void onMathPress(OnMathPress value) const;
|
|
220
274
|
|
|
275
|
+
void onPaste(OnPaste value) const;
|
|
276
|
+
|
|
221
277
|
void onStartMention(OnStartMention value) const;
|
|
222
278
|
|
|
223
279
|
void onChangeMention(OnChangeMention value) const;
|
|
@@ -242,6 +298,11 @@ class EnrichedMarkdownTextEventEmitter : public ViewEventEmitter {
|
|
|
242
298
|
std::string text;
|
|
243
299
|
};
|
|
244
300
|
|
|
301
|
+
struct OnCopyPress {
|
|
302
|
+
std::string code;
|
|
303
|
+
std::string language;
|
|
304
|
+
};
|
|
305
|
+
|
|
245
306
|
struct OnContextMenuItemPress {
|
|
246
307
|
std::string itemText;
|
|
247
308
|
std::string selectedText;
|
|
@@ -254,6 +315,8 @@ class EnrichedMarkdownTextEventEmitter : public ViewEventEmitter {
|
|
|
254
315
|
|
|
255
316
|
void onTaskListItemPress(OnTaskListItemPress value) const;
|
|
256
317
|
|
|
318
|
+
void onCopyPress(OnCopyPress value) const;
|
|
319
|
+
|
|
257
320
|
void onContextMenuItemPress(OnContextMenuItemPress value) const;
|
|
258
321
|
};
|
|
259
322
|
} // namespace facebook::react
|
|
@@ -21,6 +21,7 @@ EnrichedMarkdownProps::EnrichedMarkdownProps(
|
|
|
21
21
|
|
|
22
22
|
markdown(convertRawProp(context, rawProps, "markdown", sourceProps.markdown, {})),
|
|
23
23
|
markdownStyle(convertRawProp(context, rawProps, "markdownStyle", sourceProps.markdownStyle, {})),
|
|
24
|
+
enableTaskListItemToggle(convertRawProp(context, rawProps, "enableTaskListItemToggle", sourceProps.enableTaskListItemToggle, {true})),
|
|
24
25
|
enableLinkPreview(convertRawProp(context, rawProps, "enableLinkPreview", sourceProps.enableLinkPreview, {true})),
|
|
25
26
|
selectable(convertRawProp(context, rawProps, "selectable", sourceProps.selectable, {false})),
|
|
26
27
|
selectionColor(convertRawProp(context, rawProps, "selectionColor", sourceProps.selectionColor, {})),
|
|
@@ -32,7 +33,9 @@ EnrichedMarkdownProps::EnrichedMarkdownProps(
|
|
|
32
33
|
streamingAnimation(convertRawProp(context, rawProps, "streamingAnimation", sourceProps.streamingAnimation, {false})),
|
|
33
34
|
streamingConfig(convertRawProp(context, rawProps, "streamingConfig", sourceProps.streamingConfig, {})),
|
|
34
35
|
spoilerOverlay(convertRawProp(context, rawProps, "spoilerOverlay", sourceProps.spoilerOverlay, {std::string{"particles"}})),
|
|
36
|
+
contextMenuHidden(convertRawProp(context, rawProps, "contextMenuHidden", sourceProps.contextMenuHidden, {false})),
|
|
35
37
|
contextMenuItems(convertRawProp(context, rawProps, "contextMenuItems", sourceProps.contextMenuItems, {})),
|
|
38
|
+
imageRequestHeaders(convertRawProp(context, rawProps, "imageRequestHeaders", sourceProps.imageRequestHeaders, {})),
|
|
36
39
|
selectionMenuConfig(convertRawProp(context, rawProps, "selectionMenuConfig", sourceProps.selectionMenuConfig, {})),
|
|
37
40
|
accessibilityLabels(convertRawProp(context, rawProps, "accessibilityLabels", sourceProps.accessibilityLabels, {})),
|
|
38
41
|
textBreakStrategy(convertRawProp(context, rawProps, "textBreakStrategy", sourceProps.textBreakStrategy, {std::string{"highQuality"}})),
|
|
@@ -63,6 +66,10 @@ folly::dynamic EnrichedMarkdownProps::getDiffProps(
|
|
|
63
66
|
result["markdownStyle"] = toDynamic(markdownStyle);
|
|
64
67
|
}
|
|
65
68
|
|
|
69
|
+
if (enableTaskListItemToggle != oldProps->enableTaskListItemToggle) {
|
|
70
|
+
result["enableTaskListItemToggle"] = enableTaskListItemToggle;
|
|
71
|
+
}
|
|
72
|
+
|
|
66
73
|
if (enableLinkPreview != oldProps->enableLinkPreview) {
|
|
67
74
|
result["enableLinkPreview"] = enableLinkPreview;
|
|
68
75
|
}
|
|
@@ -107,10 +114,18 @@ folly::dynamic EnrichedMarkdownProps::getDiffProps(
|
|
|
107
114
|
result["spoilerOverlay"] = spoilerOverlay;
|
|
108
115
|
}
|
|
109
116
|
|
|
117
|
+
if (contextMenuHidden != oldProps->contextMenuHidden) {
|
|
118
|
+
result["contextMenuHidden"] = contextMenuHidden;
|
|
119
|
+
}
|
|
120
|
+
|
|
110
121
|
if (contextMenuItems != oldProps->contextMenuItems) {
|
|
111
122
|
result["contextMenuItems"] = toDynamic(contextMenuItems);
|
|
112
123
|
}
|
|
113
124
|
|
|
125
|
+
if (imageRequestHeaders != oldProps->imageRequestHeaders) {
|
|
126
|
+
result["imageRequestHeaders"] = toDynamic(imageRequestHeaders);
|
|
127
|
+
}
|
|
128
|
+
|
|
114
129
|
if (selectionMenuConfig != oldProps->selectionMenuConfig) {
|
|
115
130
|
result["selectionMenuConfig"] = toDynamic(selectionMenuConfig);
|
|
116
131
|
}
|
|
@@ -146,6 +161,7 @@ EnrichedMarkdownTextInputProps::EnrichedMarkdownTextInputProps(
|
|
|
146
161
|
scrollEnabled(convertRawProp(context, rawProps, "scrollEnabled", sourceProps.scrollEnabled, {false})),
|
|
147
162
|
blockSyntax(convertRawProp(context, rawProps, "blockSyntax", sourceProps.blockSyntax, {false})),
|
|
148
163
|
autoCapitalize(convertRawProp(context, rawProps, "autoCapitalize", sourceProps.autoCapitalize, {})),
|
|
164
|
+
interceptPaste(convertRawProp(context, rawProps, "interceptPaste", sourceProps.interceptPaste, {false})),
|
|
149
165
|
multiline(convertRawProp(context, rawProps, "multiline", sourceProps.multiline, {false})),
|
|
150
166
|
cursorColor(convertRawProp(context, rawProps, "cursorColor", sourceProps.cursorColor, {})),
|
|
151
167
|
selectionColor(convertRawProp(context, rawProps, "selectionColor", sourceProps.selectionColor, {})),
|
|
@@ -211,6 +227,10 @@ folly::dynamic EnrichedMarkdownTextInputProps::getDiffProps(
|
|
|
211
227
|
result["autoCapitalize"] = autoCapitalize;
|
|
212
228
|
}
|
|
213
229
|
|
|
230
|
+
if (interceptPaste != oldProps->interceptPaste) {
|
|
231
|
+
result["interceptPaste"] = interceptPaste;
|
|
232
|
+
}
|
|
233
|
+
|
|
214
234
|
if (multiline != oldProps->multiline) {
|
|
215
235
|
result["multiline"] = multiline;
|
|
216
236
|
}
|
|
@@ -284,6 +304,7 @@ EnrichedMarkdownTextProps::EnrichedMarkdownTextProps(
|
|
|
284
304
|
|
|
285
305
|
markdown(convertRawProp(context, rawProps, "markdown", sourceProps.markdown, {})),
|
|
286
306
|
markdownStyle(convertRawProp(context, rawProps, "markdownStyle", sourceProps.markdownStyle, {})),
|
|
307
|
+
enableTaskListItemToggle(convertRawProp(context, rawProps, "enableTaskListItemToggle", sourceProps.enableTaskListItemToggle, {true})),
|
|
287
308
|
enableLinkPreview(convertRawProp(context, rawProps, "enableLinkPreview", sourceProps.enableLinkPreview, {true})),
|
|
288
309
|
selectable(convertRawProp(context, rawProps, "selectable", sourceProps.selectable, {false})),
|
|
289
310
|
selectionColor(convertRawProp(context, rawProps, "selectionColor", sourceProps.selectionColor, {})),
|
|
@@ -295,7 +316,9 @@ EnrichedMarkdownTextProps::EnrichedMarkdownTextProps(
|
|
|
295
316
|
streamingAnimation(convertRawProp(context, rawProps, "streamingAnimation", sourceProps.streamingAnimation, {false})),
|
|
296
317
|
streamingConfig(convertRawProp(context, rawProps, "streamingConfig", sourceProps.streamingConfig, {})),
|
|
297
318
|
spoilerOverlay(convertRawProp(context, rawProps, "spoilerOverlay", sourceProps.spoilerOverlay, {std::string{"particles"}})),
|
|
319
|
+
contextMenuHidden(convertRawProp(context, rawProps, "contextMenuHidden", sourceProps.contextMenuHidden, {false})),
|
|
298
320
|
contextMenuItems(convertRawProp(context, rawProps, "contextMenuItems", sourceProps.contextMenuItems, {})),
|
|
321
|
+
imageRequestHeaders(convertRawProp(context, rawProps, "imageRequestHeaders", sourceProps.imageRequestHeaders, {})),
|
|
299
322
|
selectionMenuConfig(convertRawProp(context, rawProps, "selectionMenuConfig", sourceProps.selectionMenuConfig, {})),
|
|
300
323
|
accessibilityLabels(convertRawProp(context, rawProps, "accessibilityLabels", sourceProps.accessibilityLabels, {})),
|
|
301
324
|
textBreakStrategy(convertRawProp(context, rawProps, "textBreakStrategy", sourceProps.textBreakStrategy, {std::string{"highQuality"}})),
|
|
@@ -326,6 +349,10 @@ folly::dynamic EnrichedMarkdownTextProps::getDiffProps(
|
|
|
326
349
|
result["markdownStyle"] = toDynamic(markdownStyle);
|
|
327
350
|
}
|
|
328
351
|
|
|
352
|
+
if (enableTaskListItemToggle != oldProps->enableTaskListItemToggle) {
|
|
353
|
+
result["enableTaskListItemToggle"] = enableTaskListItemToggle;
|
|
354
|
+
}
|
|
355
|
+
|
|
329
356
|
if (enableLinkPreview != oldProps->enableLinkPreview) {
|
|
330
357
|
result["enableLinkPreview"] = enableLinkPreview;
|
|
331
358
|
}
|
|
@@ -370,10 +397,18 @@ folly::dynamic EnrichedMarkdownTextProps::getDiffProps(
|
|
|
370
397
|
result["spoilerOverlay"] = spoilerOverlay;
|
|
371
398
|
}
|
|
372
399
|
|
|
400
|
+
if (contextMenuHidden != oldProps->contextMenuHidden) {
|
|
401
|
+
result["contextMenuHidden"] = contextMenuHidden;
|
|
402
|
+
}
|
|
403
|
+
|
|
373
404
|
if (contextMenuItems != oldProps->contextMenuItems) {
|
|
374
405
|
result["contextMenuItems"] = toDynamic(contextMenuItems);
|
|
375
406
|
}
|
|
376
407
|
|
|
408
|
+
if (imageRequestHeaders != oldProps->imageRequestHeaders) {
|
|
409
|
+
result["imageRequestHeaders"] = toDynamic(imageRequestHeaders);
|
|
410
|
+
}
|
|
411
|
+
|
|
377
412
|
if (selectionMenuConfig != oldProps->selectionMenuConfig) {
|
|
378
413
|
result["selectionMenuConfig"] = toDynamic(selectionMenuConfig);
|
|
379
414
|
}
|