payload-richtext-tiptap 0.0.140 → 0.0.142
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/LICENSE.md +22 -22
- package/README.md +7 -7
- package/dist/src/body/StandardArticle.js.map +1 -1
- package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
- package/dist/src/fields/TiptapEditor/context/EditorContext.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/AIMenuList.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/CommandButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/groups.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AICommand/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js +5 -5
- package/dist/src/fields/TiptapEditor/extensions/Audio/Audio.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Audio/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/AudioBlock.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockWidth.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/BlockquoteFigure.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Design.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/Quote.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/Quote/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/QuoteCaption.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/QuoteCaption/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/BlockquoteFigure/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Document/Document.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Document/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Figcaption/Figcaption.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Figcaption/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Figure/Figure.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Figure/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/FontSize/FontSize.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/FontSize/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Heading/Heading.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Heading/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/HorizontalRule.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/HorizontalRule/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/IframeEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/iframe.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Image/Image.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Image/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockViewClientside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockWidth.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/getImageActualSize.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/hooks.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Link/Link.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Link/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/EditLinkPreviewPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreviewEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/menus/linkPreviewMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Column.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Paragraph/Paragraph.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Paragraph/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Selection/Selection.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Selection/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/groups.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Cell.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Header.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Row.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/Table.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/utils.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/utils.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/utils.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TrailingNode/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TrailingNode/trailing-node.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Video/Video.js +5 -5
- package/dist/src/fields/TiptapEditor/extensions/Video/Video.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Video/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/VideoBlock.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockWidth.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/VideoPlayer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js +9 -9
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualityOption.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js +15 -15
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/components/QualitySelector.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/middleware/SourceInterceptor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/util/SafeSeek.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/IFrameServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ImageBlockServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InsideLinkServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js +5 -5
- package/dist/src/fields/TiptapEditor/extensions/serverside/VideoBlockServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/getAssetsAspectRatio.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +22 -20
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/OneLineEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/OneLiner.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useContentItemActions.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/hooks/useData.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/AITextMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-draft-selector-commands.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +2 -4
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuCommands.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuStates.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js +4 -6
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +3 -5
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/EditorPreview.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/markdown.hook.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/utils.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/ColorButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/Button.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/SpanButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/Dropdown.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Icon.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/Loader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/Spinner.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Surface.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/Textarea.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/Toggle.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Tooltip/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Tooltip/types.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/crazy-spinner.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/scroll-area.js.map +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useSidebar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/api.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/constants.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/data/initialContent.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/extract.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/tiptapSchema.d.ts +68 -68
- package/dist/src/fields/TiptapEditor/lib/tiptapSchema.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/cssVar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js +8 -8
- package/dist/src/fields/TiptapEditor/lib/utils/deepMerge.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/getRenderContainer.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/isCustomNodeSelected.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/isRtl.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/isTextSelected.js.map +1 -1
- package/dist/src/fields/TiptapEditor/lib/utils/partialRequired.js.map +1 -1
- package/dist/src/fields/TiptapEditor/types.d.js.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +203 -203
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/groups.ts"],"sourcesContent":["import {\n Facebook,\n Heading1,\n Heading2,\n Heading3,\n Image,\n Instagram,\n Link,\n List,\n ListOrdered,\n Minus,\n Music,\n Quote,\n Twitter,\n Video,\n Youtube,\n} from \"lucide-react\";\nimport { Group } from \"./types.js\";\nimport i18next from \"i18next\";\n\nexport const GROUPS: Group[] = [\n {\n name: \"format\",\n title: i18next.t(\"format\") || \"Format\",\n commands: [\n {\n name: \"heading1\",\n label: i18next.t(\"heading1\") || \"Heading 1\",\n description: i18next.t(\"heading1Desc\") || \"High priority section title\",\n icon: Heading1,\n aliases: [\"h1\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 1 }).run();\n },\n },\n {\n name: \"heading2\",\n label: i18next.t(\"heading2\") || \"Heading 2\",\n description:\n i18next.t(\"heading2Desc\") || \"Medium priority section title\",\n icon: Heading2,\n aliases: [\"h2\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 2 }).run();\n },\n },\n {\n name: \"heading3\",\n label: i18next.t(\"heading3\") || \"Heading 3\",\n description: i18next.t(\"heading3Desc\") || \"Low priority section title\",\n icon: Heading3,\n aliases: [\"h3\"],\n action: (editor) => {\n editor.chain().focus().setHeading({ level: 3 }).run();\n },\n },\n {\n name: \"bulletList\",\n label: i18next.t(\"bulletList\") || 'Bullet List',\n description: i18next.t(\"bulletListDesc\") || \"Unordered list of items\",\n icon: List,\n aliases: [\"ul\"],\n action: (editor) => {\n editor.chain().focus().toggleBulletList().run();\n },\n },\n // {\n // name: \"numberedList\",\n // label: i18next.t(\"numberedList\") || 'Numbered List',\n // description:i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\n // icon: ListOrdered,\n // aliases: [\"ol\"],\n // action: (editor) => {\n // editor.chain().focus().toggleOrderedList().run();\n // },\n // },\n\n {\n name: \"blockquote\",\n label: i18next.t(\"blockquote\") || \"Blockquote\",\n description: i18next.t(\"blockquoteDesc\") || \"Element for quoting\",\n icon: Quote,\n action: (editor) => {\n editor.chain().focus().setBlockquote().run();\n },\n },\n ],\n },\n {\n name: \"insert\",\n title: \"Insert\",\n commands: [\n {\n name: \"image\",\n label: i18next.t(\"image\") || \"Image\",\n description: i18next.t(\"imageDesc\") || \"Insert an image\",\n icon: Image,\n aliases: [\"img\"],\n action: (editor) => {\n editor.chain().focus().setImageUpload(\"image\").run();\n },\n },\n {\n name: \"video\",\n label: i18next.t(\"video\") || \"Video\",\n description: i18next.t(\"videoDesc\") || \"Insert a video\",\n icon: Video,\n aliases: [\"video\"],\n action: (editor) => {\n editor.chain().focus().setImageUpload(\"video\").run();\n },\n },\n\n {\n name: \"horizontalRule\",\n label: i18next.t(\"horizontalRule\") || \"HorizontalRule\",\n description:\n i18next.t(\"horizontalRuleDesc\") || \"Insert a horizontal divider\",\n icon: Minus,\n aliases: [\"hr\"],\n action: (editor) => {\n editor.chain().focus().setHorizontalRule().run();\n },\n },\n ],\n },\n {\n name: \"embed\",\n title: \"Embed\",\n commands: [\n {\n name: \"linkPreview\",\n label: i18next.t(\"embed\") || \"Embed Link\",\n description: i18next.t(\"iframeDesc\") || \"Insert an Embed link\",\n icon: Link,\n aliases: [\"linkPreview\"],\n shouldBeHidden: (editor) => editor.isActive(\"linkPreview\"),\n action: (editor) => {\n editor.chain().focus().setLinkPreview().run();\n },\n },\n {\n name: \"twitter\",\n label: i18next.t(\"twitter\") || \"Twitter\",\n description: i18next.t(\"twitterDesc\") || \"Insert a Twitter embed\",\n icon: Twitter,\n aliases: [\"x\", \"twitter\"],\n shouldBeHidden: (editor) => editor.isActive(\"twitter\"),\n action: (editor) => {\n editor.chain().focus().insertTwitter().run();\n },\n },\n {\n name: \"facebook\",\n label: i18next.t(\"facebook\") || \"Facebook\",\n description: i18next.t(\"facebookDesc\") || \"Insert a Facebook embed\",\n icon: Facebook,\n aliases: [\"meta\", \"facebook\"],\n shouldBeHidden: (editor) => editor.isActive(\"facebook\"),\n action: (editor) => {\n editor.chain().focus().insertFacebook().run();\n },\n },\n {\n name: \"instagram\",\n label: i18next.t(\"instagram\") || \"Instagram\",\n description: i18next.t(\"instagramDesc\") || \"Insert a Instagram embed\",\n icon: Instagram,\n aliases: [\"instagram\"],\n shouldBeHidden: (editor) => editor.isActive(\"instagram\"),\n action: (editor) => {\n editor.chain().focus().insertInstagram().run();\n },\n },\n {\n name: \"youtube\",\n label: i18next.t(\"youtube\") || \"Youtube\",\n description: i18next.t(\"youtubeDesc\") || \"Insert a Youtube embed\",\n icon: Youtube,\n aliases: [\"youtube\"],\n shouldBeHidden: (editor) => editor.isActive(\"youtube\"),\n action: (editor) => {\n editor.chain().focus().insertYoutube().run();\n },\n },\n\n {\n name: \"tiktok\",\n label: i18next.t(\"tiktok\") || \"Tiktok\",\n description: i18next.t(\"tiktokDesc\") || \"Insert a Tiktok embed\",\n icon: Music,\n aliases: [\"tiktok\"],\n shouldBeHidden: (editor) => editor.isActive(\"tiktok\"),\n action: (editor) => {\n editor.chain().focus().insertTiktok().run();\n },\n },\n ],\n },\n];\n\nexport default GROUPS;\n"],"names":["Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","i18next","GROUPS","name","title","t","commands","label","description","icon","aliases","action","editor","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","shouldBeHidden","isActive","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/groups.ts"],"sourcesContent":["import {\r\n Facebook,\r\n Heading1,\r\n Heading2,\r\n Heading3,\r\n Image,\r\n Instagram,\r\n Link,\r\n List,\r\n ListOrdered,\r\n Minus,\r\n Music,\r\n Quote,\r\n Twitter,\r\n Video,\r\n Youtube,\r\n} from \"lucide-react\";\r\nimport { Group } from \"./types.js\";\r\nimport i18next from \"i18next\";\r\n\r\nexport const GROUPS: Group[] = [\r\n {\r\n name: \"format\",\r\n title: i18next.t(\"format\") || \"Format\",\r\n commands: [\r\n {\r\n name: \"heading1\",\r\n label: i18next.t(\"heading1\") || \"Heading 1\",\r\n description: i18next.t(\"heading1Desc\") || \"High priority section title\",\r\n icon: Heading1,\r\n aliases: [\"h1\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 1 }).run();\r\n },\r\n },\r\n {\r\n name: \"heading2\",\r\n label: i18next.t(\"heading2\") || \"Heading 2\",\r\n description:\r\n i18next.t(\"heading2Desc\") || \"Medium priority section title\",\r\n icon: Heading2,\r\n aliases: [\"h2\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 2 }).run();\r\n },\r\n },\r\n {\r\n name: \"heading3\",\r\n label: i18next.t(\"heading3\") || \"Heading 3\",\r\n description: i18next.t(\"heading3Desc\") || \"Low priority section title\",\r\n icon: Heading3,\r\n aliases: [\"h3\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHeading({ level: 3 }).run();\r\n },\r\n },\r\n {\r\n name: \"bulletList\",\r\n label: i18next.t(\"bulletList\") || 'Bullet List',\r\n description: i18next.t(\"bulletListDesc\") || \"Unordered list of items\",\r\n icon: List,\r\n aliases: [\"ul\"],\r\n action: (editor) => {\r\n editor.chain().focus().toggleBulletList().run();\r\n },\r\n },\r\n // {\r\n // name: \"numberedList\",\r\n // label: i18next.t(\"numberedList\") || 'Numbered List',\r\n // description:i18next.t(\"numberedListDesc\") || \"Ordered list of items\",\r\n // icon: ListOrdered,\r\n // aliases: [\"ol\"],\r\n // action: (editor) => {\r\n // editor.chain().focus().toggleOrderedList().run();\r\n // },\r\n // },\r\n\r\n {\r\n name: \"blockquote\",\r\n label: i18next.t(\"blockquote\") || \"Blockquote\",\r\n description: i18next.t(\"blockquoteDesc\") || \"Element for quoting\",\r\n icon: Quote,\r\n action: (editor) => {\r\n editor.chain().focus().setBlockquote().run();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"insert\",\r\n title: \"Insert\",\r\n commands: [\r\n {\r\n name: \"image\",\r\n label: i18next.t(\"image\") || \"Image\",\r\n description: i18next.t(\"imageDesc\") || \"Insert an image\",\r\n icon: Image,\r\n aliases: [\"img\"],\r\n action: (editor) => {\r\n editor.chain().focus().setImageUpload(\"image\").run();\r\n },\r\n },\r\n {\r\n name: \"video\",\r\n label: i18next.t(\"video\") || \"Video\",\r\n description: i18next.t(\"videoDesc\") || \"Insert a video\",\r\n icon: Video,\r\n aliases: [\"video\"],\r\n action: (editor) => {\r\n editor.chain().focus().setImageUpload(\"video\").run();\r\n },\r\n },\r\n\r\n {\r\n name: \"horizontalRule\",\r\n label: i18next.t(\"horizontalRule\") || \"HorizontalRule\",\r\n description:\r\n i18next.t(\"horizontalRuleDesc\") || \"Insert a horizontal divider\",\r\n icon: Minus,\r\n aliases: [\"hr\"],\r\n action: (editor) => {\r\n editor.chain().focus().setHorizontalRule().run();\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n name: \"embed\",\r\n title: \"Embed\",\r\n commands: [\r\n {\r\n name: \"linkPreview\",\r\n label: i18next.t(\"embed\") || \"Embed Link\",\r\n description: i18next.t(\"iframeDesc\") || \"Insert an Embed link\",\r\n icon: Link,\r\n aliases: [\"linkPreview\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"linkPreview\"),\r\n action: (editor) => {\r\n editor.chain().focus().setLinkPreview().run();\r\n },\r\n },\r\n {\r\n name: \"twitter\",\r\n label: i18next.t(\"twitter\") || \"Twitter\",\r\n description: i18next.t(\"twitterDesc\") || \"Insert a Twitter embed\",\r\n icon: Twitter,\r\n aliases: [\"x\", \"twitter\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"twitter\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertTwitter().run();\r\n },\r\n },\r\n {\r\n name: \"facebook\",\r\n label: i18next.t(\"facebook\") || \"Facebook\",\r\n description: i18next.t(\"facebookDesc\") || \"Insert a Facebook embed\",\r\n icon: Facebook,\r\n aliases: [\"meta\", \"facebook\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"facebook\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertFacebook().run();\r\n },\r\n },\r\n {\r\n name: \"instagram\",\r\n label: i18next.t(\"instagram\") || \"Instagram\",\r\n description: i18next.t(\"instagramDesc\") || \"Insert a Instagram embed\",\r\n icon: Instagram,\r\n aliases: [\"instagram\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"instagram\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertInstagram().run();\r\n },\r\n },\r\n {\r\n name: \"youtube\",\r\n label: i18next.t(\"youtube\") || \"Youtube\",\r\n description: i18next.t(\"youtubeDesc\") || \"Insert a Youtube embed\",\r\n icon: Youtube,\r\n aliases: [\"youtube\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"youtube\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertYoutube().run();\r\n },\r\n },\r\n\r\n {\r\n name: \"tiktok\",\r\n label: i18next.t(\"tiktok\") || \"Tiktok\",\r\n description: i18next.t(\"tiktokDesc\") || \"Insert a Tiktok embed\",\r\n icon: Music,\r\n aliases: [\"tiktok\"],\r\n shouldBeHidden: (editor) => editor.isActive(\"tiktok\"),\r\n action: (editor) => {\r\n editor.chain().focus().insertTiktok().run();\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport default GROUPS;\r\n"],"names":["Facebook","Heading1","Heading2","Heading3","Image","Instagram","Link","List","Minus","Music","Quote","Twitter","Video","Youtube","i18next","GROUPS","name","title","t","commands","label","description","icon","aliases","action","editor","chain","focus","setHeading","level","run","toggleBulletList","setBlockquote","setImageUpload","setHorizontalRule","shouldBeHidden","isActive","setLinkPreview","insertTwitter","insertFacebook","insertInstagram","insertYoutube","insertTiktok"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/index.ts"],"sourcesContent":["export * from \"./SlashCommand.js\";\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/index.ts"],"sourcesContent":["export * from \"./SlashCommand.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,oBAAoB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/types.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\nimport { LucideIcon } from 'lucide-react'\n\nexport interface Group {\n name: string\n title: string\n commands: Command[]\n}\n\nexport interface Command {\n name: string\n label: string\n description: string\n aliases?: string[]\n icon: LucideIcon\n action: (editor: Editor) => void\n shouldBeHidden?: (editor: Editor) => boolean\n}\n\nexport interface MenuListProps {\n editor: Editor\n items: Group[]\n command: (command: Command) => void\n}\n"],"names":[],"mappings":"AAmBA,WAIC"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/types.ts"],"sourcesContent":["import { Editor } from '@tiptap/core'\r\nimport { LucideIcon } from 'lucide-react'\r\n\r\nexport interface Group {\r\n name: string\r\n title: string\r\n commands: Command[]\r\n}\r\n\r\nexport interface Command {\r\n name: string\r\n label: string\r\n description: string\r\n aliases?: string[]\r\n icon: LucideIcon\r\n action: (editor: Editor) => void\r\n shouldBeHidden?: (editor: Editor) => boolean\r\n}\r\n\r\nexport interface MenuListProps {\r\n editor: Editor\r\n items: Group[]\r\n command: (command: Command) => void\r\n}\r\n"],"names":[],"mappings":"AAmBA,WAIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Facebook } from \"lucide-react\";\nimport { FacebookEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Facebook}\n text={\" Embed a post from Facebook\"}\n >\n <FacebookEmbed url={props?.node?.attrs?.url ?? \"\"} width={550} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Facebook","FacebookEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAcK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGhE,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Facebook } from \"lucide-react\";\r\nimport { FacebookEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Facebook}\r\n text={\" Embed a post from Facebook\"}\r\n >\r\n <FacebookEmbed url={props?.node?.attrs?.url ?? \"\"} width={550} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Facebook","FacebookEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,aAAa,QAAQ,2BAA2B;AACzD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAcK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGhE,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n facebook: {\n /**\n * Add an image\n */\n\n insertFacebook: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport FacebookEmbed from './FacebookEmbed.js'\n\nexport const Facebook = Node.create({\n name: 'facebook',\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"facebook-post\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '100%',\n },\n\n showText: {\n default: true,\n },\n }\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"facebook\",\n class: `react-renderer node-facebook ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', { class: 'rsme-embed rsme-facebook-embed', },\n [\n 'div',\n { class: 'rsme-d-none' },\n ['div', { id: 'fb-root' }],\n [\n 'div',\n mergeAttributes(HTMLAttributes, {\n class: 'fb-post',\n 'data-href': HTMLAttributes.url,\n 'data-width': '500',\n 'data-show-text': \"true\",\n })\n ],\n [\n 'script',\n {\n async: true,\n defer: true,\n crossorigin: 'anonymous',\n src: 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v22.0',\n\n },\n ],\n ]\n ]\n\n ]]\n },\n\n\n addNodeView() {\n return ReactNodeViewRenderer(FacebookEmbed)\n },\n\n addCommands() {\n return {\n insertFacebook:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: 'facebook',\n attrs: {\n url,\n class: className,\n src: url,\n },\n })\n },\n }\n },\n})\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","id","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YAEAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBAAgB6B,gBAAgB;gBAC9B,aAAa;gBACbf,OAAO,CAAC,6BAA6B,EAAEe,eAAef,KAAK,IAAI,GAAG,CAAC;YACrE;YAAI;gBACF;gBACAd,gBACE;oBAAEc,OAAO;gBAAuB;gBAElC;oBAAC;oBAAO;wBAAEA,OAAO;oBAAkC;oBACjD;wBACE;wBACA;4BAAEA,OAAO;wBAAc;wBACvB;4BAAC;4BAAO;gCAAEgB,IAAI;4BAAU;yBAAE;wBAC1B;4BACE;4BACA9B,gBAAgB6B,gBAAgB;gCAC9Bf,OAAO;gCACP,aAAae,eAAejB,GAAG;gCAC/B,cAAc;gCACd,kBAAkB;4BACpB;yBACD;wBACD;4BACE;4BACA;gCACEmB,OAAO;gCACPC,OAAO;gCACPC,aAAa;gCACblB,KAAK;4BAEP;yBACD;qBACF;iBACF;aAEF;SAAC;IACN;IAGAmB;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,gBACE,CAACxB,KAAKyB,YACJ,CAAC,EAAEC,QAAQ,EAAEhB,KAAK,EAAE;oBAClB,OAAOgB,SAASC,aAAa,CAAC;wBAC5Bd,MAAM;wBACNe,OAAO;4BACL5B;4BACAE,OAAOuB;4BACPtB,KAAKH;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAS6B,eAAeC,MAAc;IACpC,IAAI9B;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIiC,QAAQ,KAAK,WAAWjC,IAAIiC,QAAQ,KAAK;AACtD"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n facebook: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertFacebook: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport FacebookEmbed from './FacebookEmbed.js'\r\n\r\nexport const Facebook = Node.create({\r\n name: 'facebook',\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"facebook-post\"]',\r\n },\r\n ]\r\n },\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '100%',\r\n },\r\n\r\n showText: {\r\n default: true,\r\n },\r\n }\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"facebook\",\r\n class: `react-renderer node-facebook ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', { class: 'rsme-embed rsme-facebook-embed', },\r\n [\r\n 'div',\r\n { class: 'rsme-d-none' },\r\n ['div', { id: 'fb-root' }],\r\n [\r\n 'div',\r\n mergeAttributes(HTMLAttributes, {\r\n class: 'fb-post',\r\n 'data-href': HTMLAttributes.url,\r\n 'data-width': '500',\r\n 'data-show-text': \"true\",\r\n })\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n defer: true,\r\n crossorigin: 'anonymous',\r\n src: 'https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v22.0',\r\n\r\n },\r\n ],\r\n ]\r\n ]\r\n\r\n ]]\r\n },\r\n\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(FacebookEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertFacebook:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n return commands.insertContent({\r\n type: 'facebook',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: url,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","FacebookEmbed","Facebook","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","showText","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","id","async","defer","crossorigin","addNodeView","addCommands","insertFacebook","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,mBAAmB,qBAAoB;AAE9C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IACNC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IACtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YAEAI,UAAU;gBACRJ,SAAS;YACX;QACF;IACF;IACAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACpB,IAAI;gBACtB,GACCqB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA7B,gBAAgB6B,gBAAgB;gBAC9B,aAAa;gBACbf,OAAO,CAAC,6BAA6B,EAAEe,eAAef,KAAK,IAAI,GAAG,CAAC;YACrE;YAAI;gBACF;gBACAd,gBACE;oBAAEc,OAAO;gBAAuB;gBAElC;oBAAC;oBAAO;wBAAEA,OAAO;oBAAkC;oBACjD;wBACE;wBACA;4BAAEA,OAAO;wBAAc;wBACvB;4BAAC;4BAAO;gCAAEgB,IAAI;4BAAU;yBAAE;wBAC1B;4BACE;4BACA9B,gBAAgB6B,gBAAgB;gCAC9Bf,OAAO;gCACP,aAAae,eAAejB,GAAG;gCAC/B,cAAc;gCACd,kBAAkB;4BACpB;yBACD;wBACD;4BACE;4BACA;gCACEmB,OAAO;gCACPC,OAAO;gCACPC,aAAa;gCACblB,KAAK;4BAEP;yBACD;qBACF;iBACF;aAEF;SAAC;IACN;IAGAmB;QACE,OAAOjC,sBAAsBC;IAC/B;IAEAiC;QACE,OAAO;YACLC,gBACE,CAACxB,KAAKyB,YACJ,CAAC,EAAEC,QAAQ,EAAEhB,KAAK,EAAE;oBAClB,OAAOgB,SAASC,aAAa,CAAC;wBAC5Bd,MAAM;wBACNe,OAAO;4BACL5B;4BACAE,OAAOuB;4BACPtB,KAAKH;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAS6B,eAAeC,MAAc;IACpC,IAAI9B;IAEJ,IAAI;QACFA,MAAM,IAAI+B,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIiC,QAAQ,KAAK,WAAWjC,IAAIiC,QAAQ,KAAK;AACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.ts"],"sourcesContent":["export * from \"./facebook.js\";\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Facebook/index.ts"],"sourcesContent":["export * from \"./facebook.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.tsx"],"sourcesContent":["import { Instagram } from \"lucide-react\";\nimport { InstagramEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Instagram}\n text={\"Embed a post from Instagram\"}\n >\n <InstagramEmbed\n className=\"max-w-[328px]\"\n url={props?.node?.attrs?.url ?? \"\"}\n width={328}\n captioned\n />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Instagram","InstagramEmbed","SocialMediaEmbed","props","Icon","text","className","url","node","attrs","width","captioned"],"mappings":";AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YACCK,WAAU;YACVC,KAAKJ,OAAOK,MAAMC,OAAOF,OAAO;YAChCG,OAAO;YACPC,SAAS;;;AAIjB,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.tsx"],"sourcesContent":["import { Instagram } from \"lucide-react\";\r\nimport { InstagramEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Instagram}\r\n text={\"Embed a post from Instagram\"}\r\n >\r\n <InstagramEmbed\r\n className=\"max-w-[328px]\"\r\n url={props?.node?.attrs?.url ?? \"\"}\r\n width={328}\r\n captioned\r\n />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Instagram","InstagramEmbed","SocialMediaEmbed","props","Icon","text","className","url","node","attrs","width","captioned"],"mappings":";AAAA,SAASA,SAAS,QAAQ,eAAe;AACzC,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YACCK,WAAU;YACVC,KAAKJ,OAAOK,MAAMC,OAAOF,OAAO;YAChCG,OAAO;YACPC,SAAS;;;AAIjB,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.ts"],"sourcesContent":["export * from \"./instagram.js\";\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/index.ts"],"sourcesContent":["export * from \"./instagram.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n instagram: {\n /**\n * Add an image\n */\n\n insertInstagram: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport InstagramEmbed from './InstagramEmbed.js'\n\nexport const Instagram = Node.create({\n name: 'instagram',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '550px',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"instagram\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"instagram\",\n class: `react-renderer node-instagram ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-instagram-embed', }),\n\n [\n 'blockquote',\n mergeAttributes(HTMLAttributes, {\n class: 'instagram-media',\n style: \"background:#FFF; border:0; margin:1px; max-width:540px; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\",\n \"data-instgrm-captioned\": true,\n \"data-instgrm-permalink\": `${convertInstaUrlToEmbed(HTMLAttributes.url)}?utm_source=ig_embed&utm_campaign=loading`,\n \"data-instgrm-version\": \"14\"\n }),\n ['div', { class: 'instagram-media-pre-embed rsme-d-none' },]\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://www.instagram.com/embed.js',\n charset: 'utf-8',\n onload: `() => {\n if (window.instgrm) {\n window.instgrm.Embeds.process();\n }\n }`,\n },\n ],\n ],\n\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(InstagramEmbed)\n },\n\n addCommands() {\n return {\n insertInstagram:\n (url, className) =>\n ({ commands, state }) => {\n let embedUrl = \"\"\n if (url) {\n embedUrl = convertInstaUrlToEmbed(url)\n\n }\n return commands.insertContent({\n type: 'instagram',\n attrs: {\n url: url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\nfunction convertInstaUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n const urlWithNoQueryOrUsername = url.split(/[?#]/)[0].replace(/\\.com\\/.*?\\/p/, '.com/p').replace(/\\.com\\/.*?\\/reel/, '.com/reel');\n const cleanUrlWithEndingSlash = `${urlWithNoQueryOrUsername}${urlWithNoQueryOrUsername.endsWith('/') ? '' : '/'}`;\n return cleanUrlWithEndingSlash\n } catch {\n return undefined;\n }\n}\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertInstaUrlToEmbed","async","charset","onload","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","embedUrl","insertContent","attrs","undefined","urlWithNoQueryOrUsername","split","replace","cleanUrlWithEndingSlash","endsWith","isValidHttpUrl","string","URL","_","protocol"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n instagram: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertInstagram: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport InstagramEmbed from './InstagramEmbed.js'\r\n\r\nexport const Instagram = Node.create({\r\n name: 'instagram',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n // content: 'inline*',\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '328px',\r\n },\r\n height: {\r\n default: '550px',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n scrolling: {\r\n default: 'no',\r\n },\r\n allowtransparency: {\r\n default: 'true',\r\n },\r\n }\r\n },\r\n\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"instagram\"]',\r\n },\r\n ]\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"instagram\",\r\n class: `react-renderer node-instagram ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-instagram-embed', }),\r\n\r\n [\r\n 'blockquote',\r\n mergeAttributes(HTMLAttributes, {\r\n class: 'instagram-media',\r\n style: \"background:#FFF; border:0; margin:1px; max-width:540px; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);\",\r\n \"data-instgrm-captioned\": true,\r\n \"data-instgrm-permalink\": `${convertInstaUrlToEmbed(HTMLAttributes.url)}?utm_source=ig_embed&utm_campaign=loading`,\r\n \"data-instgrm-version\": \"14\"\r\n }),\r\n ['div', { class: 'instagram-media-pre-embed rsme-d-none' },]\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n src: 'https://www.instagram.com/embed.js',\r\n charset: 'utf-8',\r\n onload: `() => {\r\n if (window.instgrm) {\r\n window.instgrm.Embeds.process();\r\n }\r\n }`,\r\n },\r\n ],\r\n ],\r\n\r\n ]\r\n ]\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(InstagramEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertInstagram:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let embedUrl = \"\"\r\n if (url) {\r\n embedUrl = convertInstaUrlToEmbed(url)\r\n\r\n }\r\n return commands.insertContent({\r\n type: 'instagram',\r\n attrs: {\r\n url: url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\nfunction convertInstaUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n const urlWithNoQueryOrUsername = url.split(/[?#]/)[0].replace(/\\.com\\/.*?\\/p/, '.com/p').replace(/\\.com\\/.*?\\/reel/, '.com/reel');\r\n const cleanUrlWithEndingSlash = `${urlWithNoQueryOrUsername}${urlWithNoQueryOrUsername.endsWith('/') ? '' : '/'}`;\r\n return cleanUrlWithEndingSlash\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InstagramEmbed","Instagram","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertInstaUrlToEmbed","async","charset","onload","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertInstagram","className","commands","embedUrl","insertContent","attrs","undefined","urlWithNoQueryOrUsername","split","replace","cleanUrlWithEndingSlash","endsWith","isValidHttpUrl","string","URL","_","protocol"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport React from \"react\";\nimport { LinkedInEmbed } from \"react-social-media-embed\";\nimport { Linkedin } from \"lucide-react\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Linkedin}\n text={\"Embed a post from Linkedin\"}\n >\n <LinkedInEmbed\n url=\"https://www.linkedin.com/embed/feed/update/urn:li:share:6898694772484112384\"\n postUrl=\"https://www.linkedin.com/posts/peterdiamandis_5-discoveries-the-james-webb-telescope-will-activity-6898694773406875648-z-D7\"\n width={325}\n height={570}\n />\n </SocialMediaEmbed>\n );\n};\n"],"names":["React","LinkedInEmbed","Linkedin","SocialMediaEmbed","props","Icon","text","url","postUrl","width","height"],"mappings":";AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,QAAQ,QAAQ,eAAe;AACxC,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMH;QACNI,MAAM;kBAEN,cAAA,KAACL;YACCM,KAAI;YACJC,SAAQ;YACRC,OAAO;YACPC,QAAQ;;;AAIhB,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport React from \"react\";\r\nimport { LinkedInEmbed } from \"react-social-media-embed\";\r\nimport { Linkedin } from \"lucide-react\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Linkedin}\r\n text={\"Embed a post from Linkedin\"}\r\n >\r\n <LinkedInEmbed\r\n url=\"https://www.linkedin.com/embed/feed/update/urn:li:share:6898694772484112384\"\r\n postUrl=\"https://www.linkedin.com/posts/peterdiamandis_5-discoveries-the-james-webb-telescope-will-activity-6898694773406875648-z-D7\"\r\n width={325}\r\n height={570}\r\n />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["React","LinkedInEmbed","Linkedin","SocialMediaEmbed","props","Icon","text","url","postUrl","width","height"],"mappings":";AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,QAAQ,QAAQ,eAAe;AACxC,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMH;QACNI,MAAM;kBAEN,cAAA,KAACL;YACCM,KAAI;YACJC,SAAQ;YACRC,OAAO;YACPC,QAAQ;;;AAIhB,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.ts"],"sourcesContent":["export * from \"./linkedin.js\";\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/index.ts"],"sourcesContent":["export * from \"./linkedin.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n linkedin: {\n /**\n * Add an image\n */\n\n insertLinkedin: (url?: string, className?: string) => ReturnType;\n };\n }\n}\n\nimport { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport LinkedinEmbed from \"./LinkedinEmbed.js\";\n\nexport const Linkedin = Node.create({\n name: \"linkedin\",\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n\n parseHTML() {\n return [\n {\n tag: \"linkedin-component\",\n },\n ];\n },\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n };\n },\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run();\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"linkedin-component\", mergeAttributes(HTMLAttributes), 0];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(LinkedinEmbed);\n },\n\n addCommands() {\n return {\n insertLinkedin:\n (url, className) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: \"linkedin\",\n attrs: {\n url,\n class: className,\n },\n });\n },\n };\n },\n});\n\nfunction isValidHttpUrl(string: string) {\n let url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","LinkedinEmbed","Linkedin","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","addNodeView","addCommands","insertLinkedin","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AACrD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,OAAOC,mBAAmB,qBAAqB;AAE/C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEXC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;QACzB;IACF;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACjB,IAAI;gBACtB,GACCkB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAsB1B,gBAAgB0B;YAAiB;SAAE;IACnE;IAEAC;QACE,OAAO1B,sBAAsBC;IAC/B;IAEA0B;QACE,OAAO;YACLC,gBACE,CAACjB,KAAKkB,YACN,CAAC,EAAEC,QAAQ,EAAEZ,KAAK,EAAE;oBAClB,OAAOY,SAASC,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLrB;4BACAE,OAAOgB;wBACT;oBACF;gBACF;QACJ;IACF;AACF,GAAG;AAEH,SAASI,eAAeC,MAAc;IACpC,IAAIvB;IAEJ,IAAI;QACFA,MAAM,IAAIwB,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOzB,IAAI0B,QAAQ,KAAK,WAAW1B,IAAI0B,QAAQ,KAAK;AACtD"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\r\n interface Commands<ReturnType> {\r\n linkedin: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertLinkedin: (url?: string, className?: string) => ReturnType;\r\n };\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from \"@tiptap/core\";\r\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\r\nimport LinkedinEmbed from \"./LinkedinEmbed.js\";\r\n\r\nexport const Linkedin = Node.create({\r\n name: \"linkedin\",\r\n\r\n group: \"block\",\r\n content: \"inline*\",\r\n draggable: true,\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: \"linkedin-component\",\r\n },\r\n ];\r\n },\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n };\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n \"Mod-Enter\": () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run();\r\n },\r\n };\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\"linkedin-component\", mergeAttributes(HTMLAttributes), 0];\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(LinkedinEmbed);\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertLinkedin:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n return commands.insertContent({\r\n type: \"linkedin\",\r\n attrs: {\r\n url,\r\n class: className,\r\n },\r\n });\r\n },\r\n };\r\n },\r\n});\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url;\r\n\r\n try {\r\n url = new URL(string);\r\n } catch (_) {\r\n return false;\r\n }\r\n\r\n return url.protocol === \"http:\" || url.protocol === \"https:\";\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","LinkedinEmbed","Linkedin","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","addNodeView","addCommands","insertLinkedin","className","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AACrD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,OAAOC,mBAAmB,qBAAqB;AAE/C,OAAO,MAAMC,WAAWJ,KAAKK,MAAM,CAAC;IAClCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEXC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;QACzB;IACF;IACAE;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAACjB,IAAI;gBACtB,GACCkB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAsB1B,gBAAgB0B;YAAiB;SAAE;IACnE;IAEAC;QACE,OAAO1B,sBAAsBC;IAC/B;IAEA0B;QACE,OAAO;YACLC,gBACE,CAACjB,KAAKkB,YACN,CAAC,EAAEC,QAAQ,EAAEZ,KAAK,EAAE;oBAClB,OAAOY,SAASC,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLrB;4BACAE,OAAOgB;wBACT;oBACF;gBACF;QACJ;IACF;AACF,GAAG;AAEH,SAASI,eAAeC,MAAc;IACpC,IAAIvB;IAEJ,IAAI;QACFA,MAAM,IAAIwB,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOzB,IAAI0B,QAAQ,KAAK,WAAW1B,IAAI0B,QAAQ,KAAK;AACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\n\nexport default ({ props, children, Icon, text }: any) => {\n return (\n <NodeViewWrapper\n className=\"react-component\"\n onClick={() => {\n props.editor.commands.setNodeSelection(props.getPos());\n }}\n >\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\n {props?.node.type.spec.draggable ? (\n <div draggable=\"true\" data-drag-handle=\"\" style={{ width: \"100%\" }}>\n {!(props?.node?.attrs?.url ?? props?.node?.attrs?.src) ? (\n <div\n className=\"w-full bg-zinc-100 py-8 px-6 flex items-center justify-center gap-2 socialMediaCard\"\n draggable=\"true\"\n data-drag-handle=\"\"\n >\n <Icon size={24} />\n <p\n className=\"w-full flex items-center justify-start mt-0\"\n style={{\n marginTop: 0,\n }}\n >\n {text}\n </p>\n </div>\n ) : (\n <div\n style={{ display: \"flex\", justifyContent: \"center\" }}\n draggable=\"true\"\n data-drag-handle=\"\"\n >\n {children}\n </div>\n )}\n </div>\n ) : null}\n </NodeViewContent>\n </NodeViewWrapper>\n );\n};\n"],"names":["NodeViewContent","NodeViewWrapper","props","children","Icon","text","className","onClick","editor","commands","setNodeSelection","getPos","contentEditable","node","type","spec","draggable","div","data-drag-handle","style","width","attrs","url","src","size","p","marginTop","display","justifyContent"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AAEjE,eAAe,CAAA,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAO;IAClD,qBACE,KAACJ;QACCK,WAAU;QACVC,SAAS;YACPL,MAAMM,MAAM,CAACC,QAAQ,CAACC,gBAAgB,CAACR,MAAMS,MAAM;QACrD;kBAEA,cAAA,KAACX;YAAgBY,iBAAgB;YAAQN,WAAU;sBAChDJ,OAAOW,KAAKC,KAAKC,KAAKC,0BACrB,KAACC;gBAAID,WAAU;gBAAOE,oBAAiB;gBAAGC,OAAO;oBAAEC,OAAO;gBAAO;0BAC9D,CAAElB,CAAAA,OAAOW,MAAMQ,OAAOC,OAAOpB,OAAOW,MAAMQ,OAAOE,GAAE,kBAClD,MAACN;oBACCX,WAAU;oBACVU,WAAU;oBACVE,oBAAiB;;sCAEjB,KAACd;4BAAKoB,MAAM;;sCACZ,KAACC;4BACCnB,WAAU;4BACVa,OAAO;gCACLO,WAAW;4BACb;sCAECrB;;;mCAIL,KAACY;oBACCE,OAAO;wBAAEQ,SAAS;wBAAQC,gBAAgB;oBAAS;oBACnDZ,WAAU;oBACVE,oBAAiB;8BAEhBf;;iBAIL;;;AAIZ,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\n\r\nexport default ({ props, children, Icon, text }: any) => {\r\n return (\r\n <NodeViewWrapper\r\n className=\"react-component\"\r\n onClick={() => {\r\n props.editor.commands.setNodeSelection(props.getPos());\r\n }}\r\n >\r\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\r\n {props?.node.type.spec.draggable ? (\r\n <div draggable=\"true\" data-drag-handle=\"\" style={{ width: \"100%\" }}>\r\n {!(props?.node?.attrs?.url ?? props?.node?.attrs?.src) ? (\r\n <div\r\n className=\"w-full bg-zinc-100 py-8 px-6 flex items-center justify-center gap-2 socialMediaCard\"\r\n draggable=\"true\"\r\n data-drag-handle=\"\"\r\n >\r\n <Icon size={24} />\r\n <p\r\n className=\"w-full flex items-center justify-start mt-0\"\r\n style={{\r\n marginTop: 0,\r\n }}\r\n >\r\n {text}\r\n </p>\r\n </div>\r\n ) : (\r\n <div\r\n style={{ display: \"flex\", justifyContent: \"center\" }}\r\n draggable=\"true\"\r\n data-drag-handle=\"\"\r\n >\r\n {children}\r\n </div>\r\n )}\r\n </div>\r\n ) : null}\r\n </NodeViewContent>\r\n </NodeViewWrapper>\r\n );\r\n};\r\n"],"names":["NodeViewContent","NodeViewWrapper","props","children","Icon","text","className","onClick","editor","commands","setNodeSelection","getPos","contentEditable","node","type","spec","draggable","div","data-drag-handle","style","width","attrs","url","src","size","p","marginTop","display","justifyContent"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AAEjE,eAAe,CAAA,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAO;IAClD,qBACE,KAACJ;QACCK,WAAU;QACVC,SAAS;YACPL,MAAMM,MAAM,CAACC,QAAQ,CAACC,gBAAgB,CAACR,MAAMS,MAAM;QACrD;kBAEA,cAAA,KAACX;YAAgBY,iBAAgB;YAAQN,WAAU;sBAChDJ,OAAOW,KAAKC,KAAKC,KAAKC,0BACrB,KAACC;gBAAID,WAAU;gBAAOE,oBAAiB;gBAAGC,OAAO;oBAAEC,OAAO;gBAAO;0BAC9D,CAAElB,CAAAA,OAAOW,MAAMQ,OAAOC,OAAOpB,OAAOW,MAAMQ,OAAOE,GAAE,kBAClD,MAACN;oBACCX,WAAU;oBACVU,WAAU;oBACVE,oBAAiB;;sCAEjB,KAACd;4BAAKoB,MAAM;;sCACZ,KAACC;4BACCnB,WAAU;4BACVa,OAAO;gCACLO,WAAW;4BACb;sCAECrB;;;mCAIL,KAACY;oBACCE,OAAO;wBAAEQ,SAAS;wBAAQC,gBAAgB;oBAAS;oBACnDZ,WAAU;oBACVE,oBAAiB;8BAEhBf;;iBAIL;;;AAIZ,CAAA,EAAE"}
|
package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const SocialMediaEmbedServerside = ({ children, className }: any) => {\n return (\n <NodeViewWrapper className={cn(\"react-component\", className)}>\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\n <div\n style={{ display: \"flex\", justifyContent: \"center\" }}\n draggable=\"false\"\n data-drag-handle=\"\"\n >\n {children}\n </div>\n </NodeViewContent>\n </NodeViewWrapper>\n );\n};\n"],"names":["NodeViewContent","NodeViewWrapper","cn","SocialMediaEmbedServerside","children","className","contentEditable","div","style","display","justifyContent","draggable","data-drag-handle"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AACjE,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAO;IACrE,qBACE,KAACJ;QAAgBI,WAAWH,GAAG,mBAAmBG;kBAChD,cAAA,KAACL;YAAgBM,iBAAgB;YAAQD,WAAU;sBACjD,cAAA,KAACE;gBACCC,OAAO;oBAAEC,SAAS;oBAAQC,gBAAgB;gBAAS;gBACnDC,WAAU;gBACVC,oBAAiB;0BAEhBR;;;;AAKX,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { cn } from \"../../lib/utils/index.js\";\r\n\r\nexport const SocialMediaEmbedServerside = ({ children, className }: any) => {\r\n return (\r\n <NodeViewWrapper className={cn(\"react-component\", className)}>\r\n <NodeViewContent contentEditable=\"false\" className=\"socialMediaContainer\">\r\n <div\r\n style={{ display: \"flex\", justifyContent: \"center\" }}\r\n draggable=\"false\"\r\n data-drag-handle=\"\"\r\n >\r\n {children}\r\n </div>\r\n </NodeViewContent>\r\n </NodeViewWrapper>\r\n );\r\n};\r\n"],"names":["NodeViewContent","NodeViewWrapper","cn","SocialMediaEmbedServerside","children","className","contentEditable","div","style","display","justifyContent","draggable","data-drag-handle"],"mappings":";AAAA,SAASA,eAAe,EAAEC,eAAe,QAAQ,gBAAgB;AACjE,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,6BAA6B,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAO;IACrE,qBACE,KAACJ;QAAgBI,WAAWH,GAAG,mBAAmBG;kBAChD,cAAA,KAACL;YAAgBM,iBAAgB;YAAQD,WAAU;sBACjD,cAAA,KAACE;gBACCC,OAAO;oBAAEC,SAAS;oBAAQC,gBAAgB;gBAAS;gBACnDC,WAAU;gBACVC,oBAAiB;0BAEhBR;;;;AAKX,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Music } from \"lucide-react\";\nimport { TikTokEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Music}\n text={\" Embed a Video from Tiktok\"}\n >\n <TikTokEmbed url={props?.node?.attrs?.url ?? \"\"} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Music","TikTokEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AACA,SAASA,KAAK,QAAQ,eAAe;AACrC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAYK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGnD,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Music } from \"lucide-react\";\r\nimport { TikTokEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Music}\r\n text={\" Embed a Video from Tiktok\"}\r\n >\r\n <TikTokEmbed url={props?.node?.attrs?.url ?? \"\"} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Music","TikTokEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AACA,SAASA,KAAK,QAAQ,eAAe;AACrC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAYK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGnD,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.ts"],"sourcesContent":["export * from \"./tiktok.js\";\n"],"names":[],"mappings":"AAAA,cAAc,cAAc"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/index.ts"],"sourcesContent":["export * from \"./tiktok.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n tiktok: {\n /**\n * Add an image\n */\n\n insertTiktok: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TiktokEmbed from './TiktokEmbed.js'\n\nexport const Tiktok = Node.create({\n name: 'tiktok',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '328px',\n },\n height: {\n default: '550px',\n },\n frameborder: {\n default: '0',\n },\n scrolling: {\n default: 'no',\n },\n allowtransparency: {\n default: 'true',\n },\n }\n },\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"tiktok\"]',\n },\n ]\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes({\n \"data-type\": \"tiktok\",\n class: `react-renderer node-tiktok ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-tiktok-embed', style: 'overflow: hidden; border-radius: 8px;' }),\n ['div', { class: 'tiktok-embed-container' },\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertTikTokUrlToEmbed(HTMLAttributes.url) },)],\n ]\n ]\n ]\n ]\n },\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TiktokEmbed)\n },\n\n addCommands() {\n return {\n insertTiktok:\n (url, className) =>\n ({ commands, state }) => {\n\n\n let embedUrl\n\n\n // Usage in the original location:\n embedUrl = url ? convertTikTokUrlToEmbed(url) : undefined;\n return commands.insertContent({\n type: 'tiktok',\n attrs: {\n url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction convertTikTokUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n const urlObj = new URL(url);\n const path = urlObj.pathname;\n const videoId = path.split('/').filter(Boolean)[2];\n return videoId ? `https://www.tiktok.com/embed/v3/${videoId}` : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertTikTokUrlToEmbed","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","embedUrl","undefined","insertContent","attrs","urlObj","URL","path","pathname","videoId","split","filter","Boolean","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IACAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO,CAAC,2BAA2B,EAAEU,eAAeV,KAAK,IAAI,GAAG,CAAC;YACnE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAgCW,OAAO;oBAAwC;oBAC9G;wBAAC;wBAAO;4BAAEX,OAAO;wBAAyB;wBACxC;4BAAC;4BAAUZ,gBAAgBsB,gBAAgB;gCAAET,KAAKW,wBAAwBF,eAAeZ,GAAG;4BAAE;yBAAI;qBACnG;iBACF;aACF;SACF;IACH;IACAe;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC3B,IAAI;gBACtB,GACC4B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOlC,sBAAsBC;IAC/B;IAEAkC;QACE,OAAO;YACLC,cACE,CAAC3B,KAAK4B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAGlB,IAAIW;oBAGJ,kCAAkC;oBAClCA,WAAW9B,MAAMc,wBAAwBd,OAAO+B;oBAChD,OAAOF,SAASG,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLjC;4BACAE,OAAO0B;4BACPzB,KAAK2B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAShB,wBAAwBd,GAAW;IAC1C,IAAI,CAACA,KAAK,OAAO+B;IACjB,IAAI;QACF,MAAMG,SAAS,IAAIC,IAAInC;QACvB,MAAMoC,OAAOF,OAAOG,QAAQ;QAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE;QAClD,OAAOH,UAAU,CAAC,gCAAgC,EAAEA,QAAQ,CAAC,GAAGP;IAClE,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,SAASW,eAAeC,MAAc;IACpC,IAAI3C;IAEJ,IAAI;QACFA,MAAM,IAAImC,IAAIQ;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO5C,IAAI6C,QAAQ,KAAK,WAAW7C,IAAI6C,QAAQ,KAAK;AACtD"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n tiktok: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertTiktok: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport TiktokEmbed from './TiktokEmbed.js'\r\n\r\nexport const Tiktok = Node.create({\r\n name: 'tiktok',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '328px',\r\n },\r\n height: {\r\n default: '550px',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n scrolling: {\r\n default: 'no',\r\n },\r\n allowtransparency: {\r\n default: 'true',\r\n },\r\n }\r\n },\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"tiktok\"]',\r\n },\r\n ]\r\n },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes({\r\n \"data-type\": \"tiktok\",\r\n class: `react-renderer node-tiktok ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-tiktok-embed', style: 'overflow: hidden; border-radius: 8px;' }),\r\n ['div', { class: 'tiktok-embed-container' },\r\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertTikTokUrlToEmbed(HTMLAttributes.url) },)],\r\n ]\r\n ]\r\n ]\r\n ]\r\n },\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(TiktokEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertTiktok:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n\r\n\r\n let embedUrl\r\n\r\n\r\n // Usage in the original location:\r\n embedUrl = url ? convertTikTokUrlToEmbed(url) : undefined;\r\n return commands.insertContent({\r\n type: 'tiktok',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction convertTikTokUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n const urlObj = new URL(url);\r\n const path = urlObj.pathname;\r\n const videoId = path.split('/').filter(Boolean)[2];\r\n return videoId ? `https://www.tiktok.com/embed/v3/${videoId}` : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TiktokEmbed","Tiktok","create","name","group","content","draggable","addAttributes","url","default","class","src","width","height","frameborder","scrolling","allowtransparency","parseHTML","tag","renderHTML","HTMLAttributes","style","convertTikTokUrlToEmbed","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","addNodeView","addCommands","insertTiktok","className","commands","embedUrl","undefined","insertContent","attrs","urlObj","URL","path","pathname","videoId","split","filter","Boolean","isValidHttpUrl","string","_","protocol"],"mappings":"AAYA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAc;AACpD,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,iBAAiB,mBAAkB;AAE1C,OAAO,MAAMC,SAASJ,KAAKK,MAAM,CAAC;IAChCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,OAAO;gBAAED,SAAS;YAAK;YACvBE,KAAK;gBACHF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;YACAI,QAAQ;gBACNJ,SAAS;YACX;YACAK,aAAa;gBACXL,SAAS;YACX;YACAM,WAAW;gBACTN,SAAS;YACX;YACAO,mBAAmB;gBACjBP,SAAS;YACX;QACF;IACF;IACAQ;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IACAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB;gBACd,aAAa;gBACbY,OAAO,CAAC,2BAA2B,EAAEU,eAAeV,KAAK,IAAI,GAAG,CAAC;YACnE;YAAI;gBACF;gBACAZ,gBACE;oBAAEY,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOZ,gBAAgB;wBAAEY,OAAO;wBAAgCW,OAAO;oBAAwC;oBAC9G;wBAAC;wBAAO;4BAAEX,OAAO;wBAAyB;wBACxC;4BAAC;4BAAUZ,gBAAgBsB,gBAAgB;gCAAET,KAAKW,wBAAwBF,eAAeZ,GAAG;4BAAE;yBAAI;qBACnG;iBACF;aACF;SACF;IACH;IACAe;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAC3B,IAAI;gBACtB,GACC4B,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC;QACE,OAAOlC,sBAAsBC;IAC/B;IAEAkC;QACE,OAAO;YACLC,cACE,CAAC3B,KAAK4B,YACJ,CAAC,EAAEC,QAAQ,EAAEV,KAAK,EAAE;oBAGlB,IAAIW;oBAGJ,kCAAkC;oBAClCA,WAAW9B,MAAMc,wBAAwBd,OAAO+B;oBAChD,OAAOF,SAASG,aAAa,CAAC;wBAC5BV,MAAM;wBACNW,OAAO;4BACLjC;4BACAE,OAAO0B;4BACPzB,KAAK2B;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAAShB,wBAAwBd,GAAW;IAC1C,IAAI,CAACA,KAAK,OAAO+B;IACjB,IAAI;QACF,MAAMG,SAAS,IAAIC,IAAInC;QACvB,MAAMoC,OAAOF,OAAOG,QAAQ;QAC5B,MAAMC,UAAUF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAACC,QAAQ,CAAC,EAAE;QAClD,OAAOH,UAAU,CAAC,gCAAgC,EAAEA,QAAQ,CAAC,GAAGP;IAClE,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AAEA,SAASW,eAAeC,MAAc;IACpC,IAAI3C;IAEJ,IAAI;QACFA,MAAM,IAAImC,IAAIQ;IAChB,EAAE,OAAOC,GAAG;QACV,OAAO;IACT;IAEA,OAAO5C,IAAI6C,QAAQ,KAAK,WAAW7C,IAAI6C,QAAQ,KAAK;AACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { Twitter } from \"lucide-react\";\nimport { XEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Twitter}\n text={\"Embed a Tweet from X\"}\n >\n <XEmbed url={props?.node?.attrs?.url ?? \"\"} width={325} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Twitter","XEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,QAAQ,2BAA2B;AAClD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAOK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGzD,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.tsx"],"sourcesContent":["import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\r\nimport { Twitter } from \"lucide-react\";\r\nimport { XEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Twitter}\r\n text={\"Embed a Tweet from X\"}\r\n >\r\n <XEmbed url={props?.node?.attrs?.url ?? \"\"} width={325} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Twitter","XEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs","width"],"mappings":";AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,QAAQ,2BAA2B;AAClD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAOK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;YAAIG,OAAO;;;AAGzD,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.ts"],"sourcesContent":["export * from \"./twitter.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/index.ts"],"sourcesContent":["export * from \"./twitter.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n twitter: {\n /**\n * Add an image\n */\n\n insertTwitter: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport TwitterEmbed from './TwitterEmbed.js'\n\nexport const Twitter = Node.create({\n name: 'twitter',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"twitter\"]',\n },\n ]\n },\n\n addAttributes() {\n return {\n url: { default: null },\n src: { default: null },\n class: { default: null },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n // renderHTML({ HTMLAttributes }) {\n // return [\n // \"div\",\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\n // 0,\n // ];\n // },\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"twitter\",\n class: `react-renderer node-twitter ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-twitter-embed', style: 'overflow: hidden; width: 325px; border-radius: 12px;' }),\n\n [\n 'blockquote',\n { class: 'twitter-tweet' },\n ['a', { href: convertYoutubeUrlToEmbed(HTMLAttributes.url) ?? HTMLAttributes.src }, ''],\n ],\n [\n 'script',\n {\n async: true,\n src: 'https://platform.twitter.com/widgets.js',\n charset: 'utf-8',\n },\n ],\n ]\n ]\n ]\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TwitterEmbed)\n },\n\n addCommands() {\n return {\n insertTwitter:\n (url, className) =>\n ({ commands, state }) => {\n let formattedUrl = url\n if (url) {\n\n formattedUrl = convertYoutubeUrlToEmbed(url)\n }\n return commands.insertContent({\n type: 'twitter',\n attrs: {\n url: url,\n class: className,\n src: formattedUrl,\n },\n })\n },\n }\n },\n})\n\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n let formattedUrl\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\n if (tweetMatch) {\n const [_, username, tweetId] = tweetMatch\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\n }\n return formattedUrl ? formattedUrl : undefined;\n } catch {\n return undefined;\n }\n}\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","href","convertYoutubeUrlToEmbed","async","charset","addNodeView","addCommands","insertTwitter","className","commands","formattedUrl","insertContent","attrs","undefined","tweetMatch","match","_","username","tweetId","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA3B,gBAAgB2B,gBAAgB;gBAC9B,aAAa;gBACbZ,OAAO,CAAC,4BAA4B,EAAEY,eAAeZ,KAAK,IAAI,GAAG,CAAC;YACpE;YAAI;gBACF;gBACAf,gBACE;oBAAEe,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOf,gBAAgB;wBAAEe,OAAO;wBAAiCa,OAAO;oBAAuD;oBAE9H;wBACE;wBACA;4BAAEb,OAAO;wBAAgB;wBACzB;4BAAC;4BAAK;gCAAEc,MAAMC,yBAAyBH,eAAef,GAAG,KAAKe,eAAeb,GAAG;4BAAC;4BAAG;yBAAG;qBACxF;oBACD;wBACE;wBACA;4BACEiB,OAAO;4BACPjB,KAAK;4BACLkB,SAAS;wBACX;qBACD;iBACF;aACF;SACF;IACH;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,eACE,CAACvB,KAAKwB,YACJ,CAAC,EAAEC,QAAQ,EAAEjB,KAAK,EAAE;oBAClB,IAAIkB,eAAe1B;oBACnB,IAAIA,KAAK;wBAEP0B,eAAeR,yBAAyBlB;oBAC1C;oBACA,OAAOyB,SAASE,aAAa,CAAC;wBAC5BhB,MAAM;wBACNiB,OAAO;4BACL5B,KAAKA;4BACLG,OAAOqB;4BACPtB,KAAKwB;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASR,yBAAyBlB,GAAW;IAC3C,IAAI,CAACA,KAAK,OAAO6B;IACjB,IAAI;QACF,IAAIH;QACJ,MAAMI,aAAa9B,IAAI+B,KAAK,CAAC;QAC7B,IAAID,YAAY;YACd,MAAM,CAACE,GAAGC,UAAUC,QAAQ,GAAGJ;YAC/BJ,eAAe,CAAC,oBAAoB,EAAEO,SAAS,QAAQ,EAAEC,QAAQ,CAAC;QACpE;QACA,OAAOR,eAAeA,eAAeG;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AACA,SAASM,eAAeC,MAAc;IACpC,IAAIpC;IAEJ,IAAI;QACFA,MAAM,IAAIqC,IAAID;IAChB,EAAE,OAAOJ,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIsC,QAAQ,KAAK,WAAWtC,IAAIsC,QAAQ,KAAK;AACtD"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n twitter: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertTwitter: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport TwitterEmbed from './TwitterEmbed.js'\r\n\r\nexport const Twitter = Node.create({\r\n name: 'twitter',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"twitter\"]',\r\n },\r\n ]\r\n },\r\n\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n src: { default: null },\r\n class: { default: null },\r\n }\r\n },\r\n\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n // renderHTML({ HTMLAttributes }) {\r\n // return [\r\n // \"div\",\r\n // mergeAttributes(HTMLAttributes, { \"data-type\": \"twitter\" }),\r\n // 0,\r\n // ];\r\n // },\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"twitter\",\r\n class: `react-renderer node-twitter ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-twitter-embed', style: 'overflow: hidden; width: 325px; border-radius: 12px;' }),\r\n\r\n [\r\n 'blockquote',\r\n { class: 'twitter-tweet' },\r\n ['a', { href: convertYoutubeUrlToEmbed(HTMLAttributes.url) ?? HTMLAttributes.src }, ''],\r\n ],\r\n [\r\n 'script',\r\n {\r\n async: true,\r\n src: 'https://platform.twitter.com/widgets.js',\r\n charset: 'utf-8',\r\n },\r\n ],\r\n ]\r\n ]\r\n ]\r\n },\r\n\r\n addNodeView() {\r\n return ReactNodeViewRenderer(TwitterEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertTwitter:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let formattedUrl = url\r\n if (url) {\r\n\r\n formattedUrl = convertYoutubeUrlToEmbed(url)\r\n }\r\n return commands.insertContent({\r\n type: 'twitter',\r\n attrs: {\r\n url: url,\r\n class: className,\r\n src: formattedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n let formattedUrl\r\n const tweetMatch = url.match(/(?:twitter\\.com|x\\.com)\\/([^\\/]+)\\/status\\/(\\d+)/)\r\n if (tweetMatch) {\r\n const [_, username, tweetId] = tweetMatch\r\n formattedUrl = `https://twitter.com/${username}/status/${tweetId}`\r\n }\r\n return formattedUrl ? formattedUrl : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","TwitterEmbed","Twitter","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","src","class","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","href","convertYoutubeUrlToEmbed","async","charset","addNodeView","addCommands","insertTwitter","className","commands","formattedUrl","insertContent","attrs","undefined","tweetMatch","match","_","username","tweetId","isValidHttpUrl","string","URL","protocol"],"mappings":"AAYA,SAASA,IAAI,EAA4BC,eAAe,QAAQ,eAAc;AAC9E,SAASC,qBAAqB,QAAQ,gBAAe;AACrD,OAAOC,kBAAkB,oBAAmB;AAE5C,OAAO,MAAMC,UAAUJ,KAAKK,MAAM,CAAC;IACjCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,KAAK;gBAAEC,SAAS;YAAK;YACrBC,KAAK;gBAAED,SAAS;YAAK;YACrBE,OAAO;gBAAEF,SAAS;YAAK;QACzB;IACF;IAEAG;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDC,MAAM,IAAI,CAACA,IAAI,CAAClB,IAAI;gBACtB,GACCmB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEA,mCAAmC;IACnC,aAAa;IACb,aAAa;IACb,mEAAmE;IACnE,SAAS;IACT,OAAO;IACP,KAAK;IACLC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA3B,gBAAgB2B,gBAAgB;gBAC9B,aAAa;gBACbZ,OAAO,CAAC,4BAA4B,EAAEY,eAAeZ,KAAK,IAAI,GAAG,CAAC;YACpE;YAAI;gBACF;gBACAf,gBACE;oBAAEe,OAAO;gBAAuB;gBAElC;oBAAC;oBAAOf,gBAAgB;wBAAEe,OAAO;wBAAiCa,OAAO;oBAAuD;oBAE9H;wBACE;wBACA;4BAAEb,OAAO;wBAAgB;wBACzB;4BAAC;4BAAK;gCAAEc,MAAMC,yBAAyBH,eAAef,GAAG,KAAKe,eAAeb,GAAG;4BAAC;4BAAG;yBAAG;qBACxF;oBACD;wBACE;wBACA;4BACEiB,OAAO;4BACPjB,KAAK;4BACLkB,SAAS;wBACX;qBACD;iBACF;aACF;SACF;IACH;IAEAC;QACE,OAAOhC,sBAAsBC;IAC/B;IAEAgC;QACE,OAAO;YACLC,eACE,CAACvB,KAAKwB,YACJ,CAAC,EAAEC,QAAQ,EAAEjB,KAAK,EAAE;oBAClB,IAAIkB,eAAe1B;oBACnB,IAAIA,KAAK;wBAEP0B,eAAeR,yBAAyBlB;oBAC1C;oBACA,OAAOyB,SAASE,aAAa,CAAC;wBAC5BhB,MAAM;wBACNiB,OAAO;4BACL5B,KAAKA;4BACLG,OAAOqB;4BACPtB,KAAKwB;wBACP;oBACF;gBACF;QACN;IACF;AACF,GAAE;AAEF,SAASR,yBAAyBlB,GAAW;IAC3C,IAAI,CAACA,KAAK,OAAO6B;IACjB,IAAI;QACF,IAAIH;QACJ,MAAMI,aAAa9B,IAAI+B,KAAK,CAAC;QAC7B,IAAID,YAAY;YACd,MAAM,CAACE,GAAGC,UAAUC,QAAQ,GAAGJ;YAC/BJ,eAAe,CAAC,oBAAoB,EAAEO,SAAS,QAAQ,EAAEC,QAAQ,CAAC;QACpE;QACA,OAAOR,eAAeA,eAAeG;IACvC,EAAE,OAAM;QACN,OAAOA;IACT;AACF;AACA,SAASM,eAAeC,MAAc;IACpC,IAAIpC;IAEJ,IAAI;QACFA,MAAM,IAAIqC,IAAID;IAChB,EAAE,OAAOJ,GAAG;QACV,OAAO;IACT;IAEA,OAAOhC,IAAIsC,QAAQ,KAAK,WAAWtC,IAAIsC,QAAQ,KAAK;AACtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.tsx"],"sourcesContent":["import { Youtube } from \"lucide-react\";\nimport { YouTubeEmbed } from \"react-social-media-embed\";\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\n\nexport default (props: { node: { attrs: { url?: string } } }) => {\n return (\n <SocialMediaEmbed\n props={props}\n Icon={Youtube}\n text={\"Embed a Youtube Video\"}\n >\n <YouTubeEmbed url={props?.node?.attrs?.url ?? \"\"} />\n </SocialMediaEmbed>\n );\n};\n"],"names":["Youtube","YouTubeEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,YAAY,QAAQ,2BAA2B;AACxD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAaK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGpD,CAAA,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.tsx"],"sourcesContent":["import { Youtube } from \"lucide-react\";\r\nimport { YouTubeEmbed } from \"react-social-media-embed\";\r\nimport SocialMediaEmbed from \"../SocialMediaEmbed.js\";\r\n\r\nexport default (props: { node: { attrs: { url?: string } } }) => {\r\n return (\r\n <SocialMediaEmbed\r\n props={props}\r\n Icon={Youtube}\r\n text={\"Embed a Youtube Video\"}\r\n >\r\n <YouTubeEmbed url={props?.node?.attrs?.url ?? \"\"} />\r\n </SocialMediaEmbed>\r\n );\r\n};\r\n"],"names":["Youtube","YouTubeEmbed","SocialMediaEmbed","props","Icon","text","url","node","attrs"],"mappings":";AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,YAAY,QAAQ,2BAA2B;AACxD,OAAOC,sBAAsB,yBAAyB;AAEtD,eAAe,CAAA,CAACC;IACd,qBACE,KAACD;QACCC,OAAOA;QACPC,MAAMJ;QACNK,MAAM;kBAEN,cAAA,KAACJ;YAAaK,KAAKH,OAAOI,MAAMC,OAAOF,OAAO;;;AAGpD,CAAA,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.ts"],"sourcesContent":["export * from \"./youtube.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/index.ts"],"sourcesContent":["export * from \"./youtube.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"sourcesContent":["declare module '@tiptap/core' {\n interface Commands<ReturnType> {\n youtube: {\n /**\n * Add an image\n */\n\n insertYoutube: (url?: string, className?: string) => ReturnType\n }\n }\n}\n\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\nimport { ReactNodeViewRenderer } from '@tiptap/react'\nimport YoutubeEmbed from './YoutubeEmbed.js'\n\nexport const Youtube = Node.create({\n name: 'youtube',\n\n group: 'block',\n content: 'inline*',\n draggable: true,\n\n // content: 'inline*',\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"youtube\"]',\n },\n ]\n },\n addAttributes() {\n return {\n url: { default: null },\n class: { default: null },\n src: {\n default: null,\n },\n width: {\n default: '560',\n },\n height: {\n default: '315',\n },\n frameborder: {\n default: '0',\n },\n allowfullscreen: {\n default: true,\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n 'Mod-Enter': () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run()\n },\n }\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, {\n \"data-type\": \"youtube\",\n class: `react-renderer node-youtube ${HTMLAttributes.class ?? \"\"}`,\n }), [\n 'div',\n mergeAttributes(\n { class: 'socialMediaContainer' },\n ),\n ['div', mergeAttributes({ class: 'rsme-embed rsme-youtube-embed', style: 'overflow: hidden; border-radius: 0px;' }),\n ['div', { class: 'youtube-iframe' },\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertYoutubeUrlToEmbed(HTMLAttributes.url) },)],\n ]\n ]\n ]\n ]\n },\n addNodeView() {\n return ReactNodeViewRenderer(YoutubeEmbed)\n },\n\n addCommands() {\n return {\n insertYoutube:\n (url, className) =>\n ({ commands, state }) => {\n let embedUrl = ''\n\n if (url) {\n embedUrl = convertYoutubeUrlToEmbed(url)\n }\n\n return commands.insertContent({\n type: 'youtube',\n attrs: {\n url,\n class: className,\n src: embedUrl,\n },\n })\n },\n }\n },\n})\n\n\n\n\n\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\n if (!url) return undefined;\n try {\n // Extract video ID from various YouTube URL formats\n const urlObj = new URL(url)\n let videoId = ''\n\n if (urlObj.hostname === 'youtu.be') {\n // Handle youtu.be format\n videoId = urlObj.pathname.slice(1)\n } else {\n // Handle youtube.com formats\n const searchParams = new URLSearchParams(urlObj.search)\n videoId = searchParams.get('v') || ''\n\n if (!videoId) {\n // Try extracting from pathname for embed URLs\n const matches = urlObj.pathname.match(/\\/embed\\/([^/?]+)/)\n if (matches) {\n videoId = matches[1]\n }\n }\n }\n\n return videoId ? `https://www.youtube.com/embed/${videoId}` : undefined;\n } catch {\n return undefined;\n }\n}\nfunction isValidHttpUrl(string: string) {\n let url\n\n try {\n url = new URL(string)\n } catch (_) {\n return false\n }\n\n return url.protocol === 'http:' || url.protocol === 'https:'\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","YoutubeEmbed","Youtube","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","height","frameborder","allowfullscreen","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","convertYoutubeUrlToEmbed","addNodeView","addCommands","insertYoutube","className","commands","embedUrl","insertContent","attrs","undefined","urlObj","URL","videoId","hostname","pathname","slice","searchParams","URLSearchParams","search","get","matches","match","isValidHttpUrl","string","_","protocol"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.ts"],"sourcesContent":["declare module '@tiptap/core' {\r\n interface Commands<ReturnType> {\r\n youtube: {\r\n /**\r\n * Add an image\r\n */\r\n\r\n insertYoutube: (url?: string, className?: string) => ReturnType\r\n }\r\n }\r\n}\r\n\r\nimport { Node, PasteRule, markPasteRule, mergeAttributes } from '@tiptap/core'\r\nimport { ReactNodeViewRenderer } from '@tiptap/react'\r\nimport YoutubeEmbed from './YoutubeEmbed.js'\r\n\r\nexport const Youtube = Node.create({\r\n name: 'youtube',\r\n\r\n group: 'block',\r\n content: 'inline*',\r\n draggable: true,\r\n\r\n // content: 'inline*',\r\n parseHTML() {\r\n return [\r\n {\r\n tag: 'div[data-type=\"youtube\"]',\r\n },\r\n ]\r\n },\r\n addAttributes() {\r\n return {\r\n url: { default: null },\r\n class: { default: null },\r\n src: {\r\n default: null,\r\n },\r\n width: {\r\n default: '560',\r\n },\r\n height: {\r\n default: '315',\r\n },\r\n frameborder: {\r\n default: '0',\r\n },\r\n allowfullscreen: {\r\n default: true,\r\n },\r\n }\r\n },\r\n\r\n addKeyboardShortcuts() {\r\n return {\r\n 'Mod-Enter': () => {\r\n return this.editor\r\n .chain()\r\n .insertContentAt(this.editor.state.selection.head, {\r\n type: this.type.name,\r\n })\r\n .focus()\r\n .run()\r\n },\r\n }\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"div\",\r\n mergeAttributes(HTMLAttributes, {\r\n \"data-type\": \"youtube\",\r\n class: `react-renderer node-youtube ${HTMLAttributes.class ?? \"\"}`,\r\n }), [\r\n 'div',\r\n mergeAttributes(\r\n { class: 'socialMediaContainer' },\r\n ),\r\n ['div', mergeAttributes({ class: 'rsme-embed rsme-youtube-embed', style: 'overflow: hidden; border-radius: 0px;' }),\r\n ['div', { class: 'youtube-iframe' },\r\n ['iframe', mergeAttributes(HTMLAttributes, { src: convertYoutubeUrlToEmbed(HTMLAttributes.url) },)],\r\n ]\r\n ]\r\n ]\r\n ]\r\n },\r\n addNodeView() {\r\n return ReactNodeViewRenderer(YoutubeEmbed)\r\n },\r\n\r\n addCommands() {\r\n return {\r\n insertYoutube:\r\n (url, className) =>\r\n ({ commands, state }) => {\r\n let embedUrl = ''\r\n\r\n if (url) {\r\n embedUrl = convertYoutubeUrlToEmbed(url)\r\n }\r\n\r\n return commands.insertContent({\r\n type: 'youtube',\r\n attrs: {\r\n url,\r\n class: className,\r\n src: embedUrl,\r\n },\r\n })\r\n },\r\n }\r\n },\r\n})\r\n\r\n\r\n\r\n\r\n\r\nfunction convertYoutubeUrlToEmbed(url: string): string | undefined {\r\n if (!url) return undefined;\r\n try {\r\n // Extract video ID from various YouTube URL formats\r\n const urlObj = new URL(url)\r\n let videoId = ''\r\n\r\n if (urlObj.hostname === 'youtu.be') {\r\n // Handle youtu.be format\r\n videoId = urlObj.pathname.slice(1)\r\n } else {\r\n // Handle youtube.com formats\r\n const searchParams = new URLSearchParams(urlObj.search)\r\n videoId = searchParams.get('v') || ''\r\n\r\n if (!videoId) {\r\n // Try extracting from pathname for embed URLs\r\n const matches = urlObj.pathname.match(/\\/embed\\/([^/?]+)/)\r\n if (matches) {\r\n videoId = matches[1]\r\n }\r\n }\r\n }\r\n\r\n return videoId ? `https://www.youtube.com/embed/${videoId}` : undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\nfunction isValidHttpUrl(string: string) {\r\n let url\r\n\r\n try {\r\n url = new URL(string)\r\n } catch (_) {\r\n return false\r\n }\r\n\r\n return url.protocol === 'http:' || url.protocol === 'https:'\r\n}\r\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","YoutubeEmbed","Youtube","create","name","group","content","draggable","parseHTML","tag","addAttributes","url","default","class","src","width","height","frameborder","allowfullscreen","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","type","focus","run","renderHTML","HTMLAttributes","style","convertYoutubeUrlToEmbed","addNodeView","addCommands","insertYoutube","className","commands","embedUrl","insertContent","attrs","undefined","urlObj","URL","videoId","hostname","pathname","slice","searchParams","URLSearchParams","search","get","matches","match","isValidHttpUrl","string","_","protocol"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/index.ts"],"sourcesContent":["export { Twitter } from \"./Twitter/index.js\";\nexport { Tiktok } from \"./Tiktok/index.js\";\nexport { Facebook } from \"./Facebook/index.js\";\nexport { Instagram } from \"./Instagram/index.js\";\nexport { Youtube } from \"./Youtube/index.js\";\nexport { Linkedin } from \"./Linkedin/index.js\";\n"],"names":["Twitter","Tiktok","Facebook","Instagram","Youtube","Linkedin"],"mappings":"AAAA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,QAAQ,QAAQ,sBAAsB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/index.ts"],"sourcesContent":["export { Twitter } from \"./Twitter/index.js\";\r\nexport { Tiktok } from \"./Tiktok/index.js\";\r\nexport { Facebook } from \"./Facebook/index.js\";\r\nexport { Instagram } from \"./Instagram/index.js\";\r\nexport { Youtube } from \"./Youtube/index.js\";\r\nexport { Linkedin } from \"./Linkedin/index.js\";\r\n"],"names":["Twitter","Tiktok","Facebook","Instagram","Youtube","Linkedin"],"mappings":"AAAA,SAASA,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,QAAQ,QAAQ,sBAAsB;AAC/C,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,OAAO,QAAQ,qBAAqB;AAC7C,SAASC,QAAQ,QAAQ,sBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\n\nimport { SocialMediaEditorPanel } from \"../../../features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { supportedSocialMedia } from \"./constants.js\";\n\nexport const SocialMediaMenu = ({ editor, appendTo }: MenuProps) => {\n const shouldShow = useCallback(() => {\n const isInSocialMedia = supportedSocialMedia?.some((socialMedia) => {\n const hasUrl = editor?.getAttributes(socialMedia)?.url;\n return !hasUrl && editor.isActive(socialMedia);\n });\n\n return isInSocialMedia;\n // const isIframe = editor.isActive('iframe')\n // return isIframe\n }, [editor]);\n\n const onHtml = useCallback(\n (url: string, isInline?: boolean) => {\n const socialMedia = supportedSocialMedia?.find((socialMedia) => {\n return editor.isActive(socialMedia);\n });\n switch (socialMedia) {\n case \"facebook\":\n editor\n .chain()\n .focus()\n .insertFacebook(url, isInline ? \"inline-facebook\" : \"side-facebook\")\n .run();\n\n break;\n case \"instagram\":\n editor\n .chain()\n .focus()\n .insertInstagram(\n url,\n isInline ? \"inline-instagram\" : \"side-instagram\"\n )\n .run();\n\n break;\n case \"youtube\":\n editor\n .chain()\n .focus()\n .insertYoutube(url, isInline ? \"inline-youtube\" : \"side-youtube\")\n .run();\n\n break;\n case \"linkedin\":\n editor\n .chain()\n .focus()\n .insertLinkedin(url, isInline ? \"inline-linkedin\" : \"side-linkedin\")\n .run();\n\n break;\n case \"tiktok\":\n editor\n .chain()\n .focus()\n .insertTiktok(url, isInline ? \"inline-tiktok\" : \"side-tiktok\")\n .run();\n\n break;\n case \"twitter\":\n editor\n .chain()\n .focus()\n .insertTwitter(url, isInline ? \"inline-twitter\" : \"side-twitter\")\n .run();\n break;\n }\n },\n [editor]\n );\n\n const generateTexts = useCallback(() => {\n const socialMedia = supportedSocialMedia?.find((socialMedia) => {\n return editor.isActive(socialMedia);\n });\n switch (socialMedia) {\n case \"facebook\":\n return {\n placeholderText: \"https://facebook.com/...\",\n buttonText: \"Embed Facebook\",\n descriptionText: \"Works with links to Facebook posts\",\n };\n\n case \"instagram\":\n return {\n placeholderText: \"https://instagram.com/...\",\n buttonText: \"Embed Instagram\",\n descriptionText: \"Works with links to Instagram posts\",\n };\n case \"youtube\":\n return {\n placeholderText: \"https://youtube.com/...\",\n buttonText: \"Embed Youtube\",\n descriptionText: \"Works with links to Youtube videos\",\n };\n case \"linkedin\":\n return {\n placeholderText: \"https://linkedin.com/...\",\n buttonText: \"Embed Linkedin\",\n descriptionText: \"Works with links to Linkedin posts\",\n };\n case \"tiktok\":\n return {\n placeholderText: \"https://tiktok.com/...\",\n buttonText: \"Embed Tiktok\",\n descriptionText: \"Works with links to tiktok videos\",\n };\n case \"twitter\":\n return {\n placeholderText: \"https://twitter.com/...\",\n buttonText: \"Embed Twitter\",\n descriptionText: \"Works with links to Tweets\",\n };\n }\n }, [editor]);\n return (\n <BaseBubbleMenu\n editor={editor}\n pluginKey={`socialMediaMenu`}\n shouldShow={shouldShow}\n tippyOptions={{\n popperOptions: { placement: \"bottom\" },\n placement: \"bottom\",\n // appendTo: () => {\n // return appendTo?.current\n // },\n }}\n updateDelay={100}\n >\n <SocialMediaEditorPanel\n onSetLink={onHtml}\n initialSrc=\"\"\n placeholderText={generateTexts()?.placeholderText ?? \"\"}\n buttonText={generateTexts()?.buttonText ?? \"\"}\n descriptionText={generateTexts()?.descriptionText ?? \"\"}\n />\n {/* <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} /> */}\n {/* \n <Toolbar.Wrapper>\n <to\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Sidebar left\"\n active={true}\n // onClick={onColumnLeft}\n >\n <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} />\n </Toolbar.Button>\n </Toolbar.Wrapper> */}\n </BaseBubbleMenu>\n );\n};\n\nexport default SocialMediaMenu;\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","SocialMediaEditorPanel","supportedSocialMedia","SocialMediaMenu","editor","appendTo","shouldShow","isInSocialMedia","some","socialMedia","hasUrl","getAttributes","url","isActive","onHtml","isInline","find","chain","focus","insertFacebook","run","insertInstagram","insertYoutube","insertLinkedin","insertTiktok","insertTwitter","generateTexts","placeholderText","buttonText","descriptionText","pluginKey","tippyOptions","popperOptions","placement","updateDelay","onSetLink","initialSrc"],"mappings":";AAAA,SAASA,cAAcC,cAAc,QAAQ,gBAAgB;AAC7D,SAASC,WAAW,QAAQ,QAAQ;AAEpC,SAASC,sBAAsB,QAAQ,4EAA4E;AAEnH,SAASC,oBAAoB,QAAQ,iBAAiB;AAEtD,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAa;IAC7D,MAAMC,aAAaN,YAAY;QAC7B,MAAMO,kBAAkBL,sBAAsBM,KAAK,CAACC;YAClD,MAAMC,SAASN,QAAQO,cAAcF,cAAcG;YACnD,OAAO,CAACF,UAAUN,OAAOS,QAAQ,CAACJ;QACpC;QAEA,OAAOF;IACP,6CAA6C;IAC7C,kBAAkB;IACpB,GAAG;QAACH;KAAO;IAEX,MAAMU,SAASd,YACb,CAACY,KAAaG;QACZ,MAAMN,cAAcP,sBAAsBc,KAAK,CAACP;YAC9C,OAAOL,OAAOS,QAAQ,CAACJ;QACzB;QACA,OAAQA;YACN,KAAK;gBACHL,OACGa,KAAK,GACLC,KAAK,GACLC,cAAc,CAACP,KAAKG,WAAW,oBAAoB,iBACnDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLG,eAAe,CACdT,KACAG,WAAW,qBAAqB,kBAEjCK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLI,aAAa,CAACV,KAAKG,WAAW,mBAAmB,gBACjDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLK,cAAc,CAACX,KAAKG,WAAW,oBAAoB,iBACnDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLM,YAAY,CAACZ,KAAKG,WAAW,kBAAkB,eAC/CK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLO,aAAa,CAACb,KAAKG,WAAW,mBAAmB,gBACjDK,GAAG;gBACN;QACJ;IACF,GACA;QAAChB;KAAO;IAGV,MAAMsB,gBAAgB1B,YAAY;QAChC,MAAMS,cAAcP,sBAAsBc,KAAK,CAACP;YAC9C,OAAOL,OAAOS,QAAQ,CAACJ;QACzB;QACA,OAAQA;YACN,KAAK;gBACH,OAAO;oBACLkB,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YAEF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;QACJ;IACF,GAAG;QAACzB;KAAO;IACX,qBACE,KAACL;QACCK,QAAQA;QACR0B,WAAW,CAAC,eAAe,CAAC;QAC5BxB,YAAYA;QACZyB,cAAc;YACZC,eAAe;gBAAEC,WAAW;YAAS;YACrCA,WAAW;QAIb;QACAC,aAAa;kBAEb,cAAA,KAACjC;YACCkC,WAAWrB;YACXsB,YAAW;YACXT,iBAAiBD,iBAAiBC,mBAAmB;YACrDC,YAAYF,iBAAiBE,cAAc;YAC3CC,iBAAiBH,iBAAiBG,mBAAmB;;;AAiB7D,EAAE;AAEF,eAAe1B,gBAAgB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\r\nimport { useCallback } from \"react\";\r\n\r\nimport { SocialMediaEditorPanel } from \"../../../features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js\";\r\nimport { MenuProps } from \"../../../features/menus/types.js\";\r\nimport { supportedSocialMedia } from \"./constants.js\";\r\n\r\nexport const SocialMediaMenu = ({ editor, appendTo }: MenuProps) => {\r\n const shouldShow = useCallback(() => {\r\n const isInSocialMedia = supportedSocialMedia?.some((socialMedia) => {\r\n const hasUrl = editor?.getAttributes(socialMedia)?.url;\r\n return !hasUrl && editor.isActive(socialMedia);\r\n });\r\n\r\n return isInSocialMedia;\r\n // const isIframe = editor.isActive('iframe')\r\n // return isIframe\r\n }, [editor]);\r\n\r\n const onHtml = useCallback(\r\n (url: string, isInline?: boolean) => {\r\n const socialMedia = supportedSocialMedia?.find((socialMedia) => {\r\n return editor.isActive(socialMedia);\r\n });\r\n switch (socialMedia) {\r\n case \"facebook\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertFacebook(url, isInline ? \"inline-facebook\" : \"side-facebook\")\r\n .run();\r\n\r\n break;\r\n case \"instagram\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertInstagram(\r\n url,\r\n isInline ? \"inline-instagram\" : \"side-instagram\"\r\n )\r\n .run();\r\n\r\n break;\r\n case \"youtube\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertYoutube(url, isInline ? \"inline-youtube\" : \"side-youtube\")\r\n .run();\r\n\r\n break;\r\n case \"linkedin\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertLinkedin(url, isInline ? \"inline-linkedin\" : \"side-linkedin\")\r\n .run();\r\n\r\n break;\r\n case \"tiktok\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertTiktok(url, isInline ? \"inline-tiktok\" : \"side-tiktok\")\r\n .run();\r\n\r\n break;\r\n case \"twitter\":\r\n editor\r\n .chain()\r\n .focus()\r\n .insertTwitter(url, isInline ? \"inline-twitter\" : \"side-twitter\")\r\n .run();\r\n break;\r\n }\r\n },\r\n [editor]\r\n );\r\n\r\n const generateTexts = useCallback(() => {\r\n const socialMedia = supportedSocialMedia?.find((socialMedia) => {\r\n return editor.isActive(socialMedia);\r\n });\r\n switch (socialMedia) {\r\n case \"facebook\":\r\n return {\r\n placeholderText: \"https://facebook.com/...\",\r\n buttonText: \"Embed Facebook\",\r\n descriptionText: \"Works with links to Facebook posts\",\r\n };\r\n\r\n case \"instagram\":\r\n return {\r\n placeholderText: \"https://instagram.com/...\",\r\n buttonText: \"Embed Instagram\",\r\n descriptionText: \"Works with links to Instagram posts\",\r\n };\r\n case \"youtube\":\r\n return {\r\n placeholderText: \"https://youtube.com/...\",\r\n buttonText: \"Embed Youtube\",\r\n descriptionText: \"Works with links to Youtube videos\",\r\n };\r\n case \"linkedin\":\r\n return {\r\n placeholderText: \"https://linkedin.com/...\",\r\n buttonText: \"Embed Linkedin\",\r\n descriptionText: \"Works with links to Linkedin posts\",\r\n };\r\n case \"tiktok\":\r\n return {\r\n placeholderText: \"https://tiktok.com/...\",\r\n buttonText: \"Embed Tiktok\",\r\n descriptionText: \"Works with links to tiktok videos\",\r\n };\r\n case \"twitter\":\r\n return {\r\n placeholderText: \"https://twitter.com/...\",\r\n buttonText: \"Embed Twitter\",\r\n descriptionText: \"Works with links to Tweets\",\r\n };\r\n }\r\n }, [editor]);\r\n return (\r\n <BaseBubbleMenu\r\n editor={editor}\r\n pluginKey={`socialMediaMenu`}\r\n shouldShow={shouldShow}\r\n tippyOptions={{\r\n popperOptions: { placement: \"bottom\" },\r\n placement: \"bottom\",\r\n // appendTo: () => {\r\n // return appendTo?.current\r\n // },\r\n }}\r\n updateDelay={100}\r\n >\r\n <SocialMediaEditorPanel\r\n onSetLink={onHtml}\r\n initialSrc=\"\"\r\n placeholderText={generateTexts()?.placeholderText ?? \"\"}\r\n buttonText={generateTexts()?.buttonText ?? \"\"}\r\n descriptionText={generateTexts()?.descriptionText ?? \"\"}\r\n />\r\n {/* <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} /> */}\r\n {/* \r\n <Toolbar.Wrapper>\r\n <to\r\n <Toolbar.Button\r\n type=\"button\"\r\n tooltip=\"Sidebar left\"\r\n active={true}\r\n // onClick={onColumnLeft}\r\n >\r\n <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} />\r\n </Toolbar.Button>\r\n </Toolbar.Wrapper> */}\r\n </BaseBubbleMenu>\r\n );\r\n};\r\n\r\nexport default SocialMediaMenu;\r\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","SocialMediaEditorPanel","supportedSocialMedia","SocialMediaMenu","editor","appendTo","shouldShow","isInSocialMedia","some","socialMedia","hasUrl","getAttributes","url","isActive","onHtml","isInline","find","chain","focus","insertFacebook","run","insertInstagram","insertYoutube","insertLinkedin","insertTiktok","insertTwitter","generateTexts","placeholderText","buttonText","descriptionText","pluginKey","tippyOptions","popperOptions","placement","updateDelay","onSetLink","initialSrc"],"mappings":";AAAA,SAASA,cAAcC,cAAc,QAAQ,gBAAgB;AAC7D,SAASC,WAAW,QAAQ,QAAQ;AAEpC,SAASC,sBAAsB,QAAQ,4EAA4E;AAEnH,SAASC,oBAAoB,QAAQ,iBAAiB;AAEtD,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAa;IAC7D,MAAMC,aAAaN,YAAY;QAC7B,MAAMO,kBAAkBL,sBAAsBM,KAAK,CAACC;YAClD,MAAMC,SAASN,QAAQO,cAAcF,cAAcG;YACnD,OAAO,CAACF,UAAUN,OAAOS,QAAQ,CAACJ;QACpC;QAEA,OAAOF;IACP,6CAA6C;IAC7C,kBAAkB;IACpB,GAAG;QAACH;KAAO;IAEX,MAAMU,SAASd,YACb,CAACY,KAAaG;QACZ,MAAMN,cAAcP,sBAAsBc,KAAK,CAACP;YAC9C,OAAOL,OAAOS,QAAQ,CAACJ;QACzB;QACA,OAAQA;YACN,KAAK;gBACHL,OACGa,KAAK,GACLC,KAAK,GACLC,cAAc,CAACP,KAAKG,WAAW,oBAAoB,iBACnDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLG,eAAe,CACdT,KACAG,WAAW,qBAAqB,kBAEjCK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLI,aAAa,CAACV,KAAKG,WAAW,mBAAmB,gBACjDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLK,cAAc,CAACX,KAAKG,WAAW,oBAAoB,iBACnDK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLM,YAAY,CAACZ,KAAKG,WAAW,kBAAkB,eAC/CK,GAAG;gBAEN;YACF,KAAK;gBACHhB,OACGa,KAAK,GACLC,KAAK,GACLO,aAAa,CAACb,KAAKG,WAAW,mBAAmB,gBACjDK,GAAG;gBACN;QACJ;IACF,GACA;QAAChB;KAAO;IAGV,MAAMsB,gBAAgB1B,YAAY;QAChC,MAAMS,cAAcP,sBAAsBc,KAAK,CAACP;YAC9C,OAAOL,OAAOS,QAAQ,CAACJ;QACzB;QACA,OAAQA;YACN,KAAK;gBACH,OAAO;oBACLkB,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YAEF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;YACF,KAAK;gBACH,OAAO;oBACLF,iBAAiB;oBACjBC,YAAY;oBACZC,iBAAiB;gBACnB;QACJ;IACF,GAAG;QAACzB;KAAO;IACX,qBACE,KAACL;QACCK,QAAQA;QACR0B,WAAW,CAAC,eAAe,CAAC;QAC5BxB,YAAYA;QACZyB,cAAc;YACZC,eAAe;gBAAEC,WAAW;YAAS;YACrCA,WAAW;QAIb;QACAC,aAAa;kBAEb,cAAA,KAACjC;YACCkC,WAAWrB;YACXsB,YAAW;YACXT,iBAAiBD,iBAAiBC,mBAAmB;YACrDC,YAAYF,iBAAiBE,cAAc;YAC3CC,iBAAiBH,iBAAiBG,mBAAmB;;;AAiB7D,EAAE;AAEF,eAAe1B,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.ts"],"sourcesContent":["export const supportedSocialMedia = [\n 'twitter',\n 'facebook',\n 'instagram',\n 'linkedin',\n 'tiktok',\n 'youtube',\n]\n"],"names":["supportedSocialMedia"],"mappings":"AAAA,OAAO,MAAMA,uBAAuB;IAClC;IACA;IACA;IACA;IACA;IACA;CACD,CAAA"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/constants.ts"],"sourcesContent":["export const supportedSocialMedia = [\r\n 'twitter',\r\n 'facebook',\r\n 'instagram',\r\n 'linkedin',\r\n 'tiktok',\r\n 'youtube',\r\n]\r\n"],"names":["supportedSocialMedia"],"mappings":"AAAA,OAAO,MAAMA,uBAAuB;IAClC;IACA;IACA;IACA;IACA;IACA;CACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/index.ts"],"sourcesContent":["export * from \"./SocialMediaMenu.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/SocialMedia/menus/index.ts"],"sourcesContent":["export * from \"./SocialMediaMenu.js\";\r\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/Table/Cell.ts"],"sourcesContent":["import { mergeAttributes, Node } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nimport { getCellsInColumn, isRowSelected, selectRow } from \"./utils.js\";\n\nexport interface TableCellOptions {\n HTMLAttributes: Record<string, any>;\n}\n\nexport const TableCell = Node.create<TableCellOptions>({\n name: \"tableCell\",\n\n content: \"block+\", // TODO: Do not allow table in table\n\n tableRole: \"cell\",\n\n isolating: true,\n\n addOptions() {\n return {\n HTMLAttributes: {},\n };\n },\n\n parseHTML() {\n return [{ tag: \"td\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"td\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n 0,\n ];\n },\n\n addAttributes() {\n return {\n colspan: {\n default: 1,\n parseHTML: (element) => {\n const colspan = element.getAttribute(\"colspan\");\n const value = colspan ? parseInt(colspan, 10) : 1;\n\n return value;\n },\n },\n rowspan: {\n default: 1,\n parseHTML: (element) => {\n const rowspan = element.getAttribute(\"rowspan\");\n const value = rowspan ? parseInt(rowspan, 10) : 1;\n\n return value;\n },\n },\n colwidth: {\n default: null,\n parseHTML: (element) => {\n const colwidth = element.getAttribute(\"colwidth\");\n const value = colwidth ? [parseInt(colwidth, 10)] : null;\n\n return value;\n },\n },\n style: {\n default: null,\n },\n };\n },\n\n addProseMirrorPlugins() {\n const { isEditable } = this.editor;\n\n return [\n new Plugin({\n props: {\n decorations: (state) => {\n if (!isEditable) {\n return DecorationSet.empty;\n }\n\n const { doc, selection } = state;\n const decorations: Decoration[] = [];\n const cells = getCellsInColumn(0)(selection);\n\n if (cells) {\n cells.forEach(({ pos }: { pos: number }, index: number) => {\n decorations.push(\n Decoration.widget(pos + 1, () => {\n const rowSelected = isRowSelected(index)(selection);\n let className = \"grip-row\";\n\n if (rowSelected) {\n className += \" selected\";\n }\n\n if (index === 0) {\n className += \" first\";\n }\n\n if (index === cells.length - 1) {\n className += \" last\";\n }\n\n const grip = document.createElement(\"a\");\n\n grip.className = className;\n grip.addEventListener(\"mousedown\", (event) => {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n this.editor.view.dispatch(\n selectRow(index)(this.editor.state.tr)\n );\n });\n\n return grip;\n })\n );\n });\n }\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n"],"names":["mergeAttributes","Node","Plugin","Decoration","DecorationSet","getCellsInColumn","isRowSelected","selectRow","TableCell","create","name","content","tableRole","isolating","addOptions","HTMLAttributes","parseHTML","tag","renderHTML","options","addAttributes","colspan","default","element","getAttribute","value","parseInt","rowspan","colwidth","style","addProseMirrorPlugins","isEditable","editor","props","decorations","state","empty","doc","selection","cells","forEach","pos","index","push","widget","rowSelected","className","length","grip","document","createElement","addEventListener","event","preventDefault","stopImmediatePropagation","view","dispatch","tr"],"mappings":"AAAA,SAASA,eAAe,EAAEC,IAAI,QAAQ,eAAe;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAkB;AAE5D,SAASC,gBAAgB,EAAEC,aAAa,EAAEC,SAAS,QAAQ,aAAa;AAMxE,OAAO,MAAMC,YAAYP,KAAKQ,MAAM,CAAmB;IACrDC,MAAM;IAENC,SAAS;IAETC,WAAW;IAEXC,WAAW;IAEXC;QACE,OAAO;YACLC,gBAAgB,CAAC;QACnB;IACF;IAEAC;QACE,OAAO;YAAC;gBAAEC,KAAK;YAAK;SAAE;IACxB;IAEAC,YAAW,EAAEH,cAAc,EAAE;QAC3B,OAAO;YACL;YACAf,gBAAgB,IAAI,CAACmB,OAAO,CAACJ,cAAc,EAAEA;YAC7C;SACD;IACH;IAEAK;QACE,OAAO;YACLC,SAAS;gBACPC,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMF,UAAUE,QAAQC,YAAY,CAAC;oBACrC,MAAMC,QAAQJ,UAAUK,SAASL,SAAS,MAAM;oBAEhD,OAAOI;gBACT;YACF;YACAE,SAAS;gBACPL,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMI,UAAUJ,QAAQC,YAAY,CAAC;oBACrC,MAAMC,QAAQE,UAAUD,SAASC,SAAS,MAAM;oBAEhD,OAAOF;gBACT;YACF;YACAG,UAAU;gBACRN,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMK,WAAWL,QAAQC,YAAY,CAAC;oBACtC,MAAMC,QAAQG,WAAW;wBAACF,SAASE,UAAU;qBAAI,GAAG;oBAEpD,OAAOH;gBACT;YACF;YACAI,OAAO;gBACLP,SAAS;YACX;QACF;IACF;IAEAQ;QACE,MAAM,EAAEC,UAAU,EAAE,GAAG,IAAI,CAACC,MAAM;QAElC,OAAO;YACL,IAAI9B,OAAO;gBACT+B,OAAO;oBACLC,aAAa,CAACC;wBACZ,IAAI,CAACJ,YAAY;4BACf,OAAO3B,cAAcgC,KAAK;wBAC5B;wBAEA,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,GAAGH;wBAC3B,MAAMD,cAA4B,EAAE;wBACpC,MAAMK,QAAQlC,iBAAiB,GAAGiC;wBAElC,IAAIC,OAAO;4BACTA,MAAMC,OAAO,CAAC,CAAC,EAAEC,GAAG,EAAmB,EAAEC;gCACvCR,YAAYS,IAAI,CACdxC,WAAWyC,MAAM,CAACH,MAAM,GAAG;oCACzB,MAAMI,cAAcvC,cAAcoC,OAAOJ;oCACzC,IAAIQ,YAAY;oCAEhB,IAAID,aAAa;wCACfC,aAAa;oCACf;oCAEA,IAAIJ,UAAU,GAAG;wCACfI,aAAa;oCACf;oCAEA,IAAIJ,UAAUH,MAAMQ,MAAM,GAAG,GAAG;wCAC9BD,aAAa;oCACf;oCAEA,MAAME,OAAOC,SAASC,aAAa,CAAC;oCAEpCF,KAAKF,SAAS,GAAGA;oCACjBE,KAAKG,gBAAgB,CAAC,aAAa,CAACC;wCAClCA,MAAMC,cAAc;wCACpBD,MAAME,wBAAwB;wCAE9B,IAAI,CAACtB,MAAM,CAACuB,IAAI,CAACC,QAAQ,CACvBjD,UAAUmC,OAAO,IAAI,CAACV,MAAM,CAACG,KAAK,CAACsB,EAAE;oCAEzC;oCAEA,OAAOT;gCACT;4BAEJ;wBACF;wBAEA,OAAO5C,cAAcK,MAAM,CAAC4B,KAAKH;oBACnC;gBACF;YACF;SACD;IACH;AACF,GAAG"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/Table/Cell.ts"],"sourcesContent":["import { mergeAttributes, Node } from \"@tiptap/core\";\r\nimport { Plugin } from \"@tiptap/pm/state\";\r\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\r\n\r\nimport { getCellsInColumn, isRowSelected, selectRow } from \"./utils.js\";\r\n\r\nexport interface TableCellOptions {\r\n HTMLAttributes: Record<string, any>;\r\n}\r\n\r\nexport const TableCell = Node.create<TableCellOptions>({\r\n name: \"tableCell\",\r\n\r\n content: \"block+\", // TODO: Do not allow table in table\r\n\r\n tableRole: \"cell\",\r\n\r\n isolating: true,\r\n\r\n addOptions() {\r\n return {\r\n HTMLAttributes: {},\r\n };\r\n },\r\n\r\n parseHTML() {\r\n return [{ tag: \"td\" }];\r\n },\r\n\r\n renderHTML({ HTMLAttributes }) {\r\n return [\r\n \"td\",\r\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\r\n 0,\r\n ];\r\n },\r\n\r\n addAttributes() {\r\n return {\r\n colspan: {\r\n default: 1,\r\n parseHTML: (element) => {\r\n const colspan = element.getAttribute(\"colspan\");\r\n const value = colspan ? parseInt(colspan, 10) : 1;\r\n\r\n return value;\r\n },\r\n },\r\n rowspan: {\r\n default: 1,\r\n parseHTML: (element) => {\r\n const rowspan = element.getAttribute(\"rowspan\");\r\n const value = rowspan ? parseInt(rowspan, 10) : 1;\r\n\r\n return value;\r\n },\r\n },\r\n colwidth: {\r\n default: null,\r\n parseHTML: (element) => {\r\n const colwidth = element.getAttribute(\"colwidth\");\r\n const value = colwidth ? [parseInt(colwidth, 10)] : null;\r\n\r\n return value;\r\n },\r\n },\r\n style: {\r\n default: null,\r\n },\r\n };\r\n },\r\n\r\n addProseMirrorPlugins() {\r\n const { isEditable } = this.editor;\r\n\r\n return [\r\n new Plugin({\r\n props: {\r\n decorations: (state) => {\r\n if (!isEditable) {\r\n return DecorationSet.empty;\r\n }\r\n\r\n const { doc, selection } = state;\r\n const decorations: Decoration[] = [];\r\n const cells = getCellsInColumn(0)(selection);\r\n\r\n if (cells) {\r\n cells.forEach(({ pos }: { pos: number }, index: number) => {\r\n decorations.push(\r\n Decoration.widget(pos + 1, () => {\r\n const rowSelected = isRowSelected(index)(selection);\r\n let className = \"grip-row\";\r\n\r\n if (rowSelected) {\r\n className += \" selected\";\r\n }\r\n\r\n if (index === 0) {\r\n className += \" first\";\r\n }\r\n\r\n if (index === cells.length - 1) {\r\n className += \" last\";\r\n }\r\n\r\n const grip = document.createElement(\"a\");\r\n\r\n grip.className = className;\r\n grip.addEventListener(\"mousedown\", (event) => {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n\r\n this.editor.view.dispatch(\r\n selectRow(index)(this.editor.state.tr)\r\n );\r\n });\r\n\r\n return grip;\r\n })\r\n );\r\n });\r\n }\r\n\r\n return DecorationSet.create(doc, decorations);\r\n },\r\n },\r\n }),\r\n ];\r\n },\r\n});\r\n"],"names":["mergeAttributes","Node","Plugin","Decoration","DecorationSet","getCellsInColumn","isRowSelected","selectRow","TableCell","create","name","content","tableRole","isolating","addOptions","HTMLAttributes","parseHTML","tag","renderHTML","options","addAttributes","colspan","default","element","getAttribute","value","parseInt","rowspan","colwidth","style","addProseMirrorPlugins","isEditable","editor","props","decorations","state","empty","doc","selection","cells","forEach","pos","index","push","widget","rowSelected","className","length","grip","document","createElement","addEventListener","event","preventDefault","stopImmediatePropagation","view","dispatch","tr"],"mappings":"AAAA,SAASA,eAAe,EAAEC,IAAI,QAAQ,eAAe;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,UAAU,EAAEC,aAAa,QAAQ,kBAAkB;AAE5D,SAASC,gBAAgB,EAAEC,aAAa,EAAEC,SAAS,QAAQ,aAAa;AAMxE,OAAO,MAAMC,YAAYP,KAAKQ,MAAM,CAAmB;IACrDC,MAAM;IAENC,SAAS;IAETC,WAAW;IAEXC,WAAW;IAEXC;QACE,OAAO;YACLC,gBAAgB,CAAC;QACnB;IACF;IAEAC;QACE,OAAO;YAAC;gBAAEC,KAAK;YAAK;SAAE;IACxB;IAEAC,YAAW,EAAEH,cAAc,EAAE;QAC3B,OAAO;YACL;YACAf,gBAAgB,IAAI,CAACmB,OAAO,CAACJ,cAAc,EAAEA;YAC7C;SACD;IACH;IAEAK;QACE,OAAO;YACLC,SAAS;gBACPC,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMF,UAAUE,QAAQC,YAAY,CAAC;oBACrC,MAAMC,QAAQJ,UAAUK,SAASL,SAAS,MAAM;oBAEhD,OAAOI;gBACT;YACF;YACAE,SAAS;gBACPL,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMI,UAAUJ,QAAQC,YAAY,CAAC;oBACrC,MAAMC,QAAQE,UAAUD,SAASC,SAAS,MAAM;oBAEhD,OAAOF;gBACT;YACF;YACAG,UAAU;gBACRN,SAAS;gBACTN,WAAW,CAACO;oBACV,MAAMK,WAAWL,QAAQC,YAAY,CAAC;oBACtC,MAAMC,QAAQG,WAAW;wBAACF,SAASE,UAAU;qBAAI,GAAG;oBAEpD,OAAOH;gBACT;YACF;YACAI,OAAO;gBACLP,SAAS;YACX;QACF;IACF;IAEAQ;QACE,MAAM,EAAEC,UAAU,EAAE,GAAG,IAAI,CAACC,MAAM;QAElC,OAAO;YACL,IAAI9B,OAAO;gBACT+B,OAAO;oBACLC,aAAa,CAACC;wBACZ,IAAI,CAACJ,YAAY;4BACf,OAAO3B,cAAcgC,KAAK;wBAC5B;wBAEA,MAAM,EAAEC,GAAG,EAAEC,SAAS,EAAE,GAAGH;wBAC3B,MAAMD,cAA4B,EAAE;wBACpC,MAAMK,QAAQlC,iBAAiB,GAAGiC;wBAElC,IAAIC,OAAO;4BACTA,MAAMC,OAAO,CAAC,CAAC,EAAEC,GAAG,EAAmB,EAAEC;gCACvCR,YAAYS,IAAI,CACdxC,WAAWyC,MAAM,CAACH,MAAM,GAAG;oCACzB,MAAMI,cAAcvC,cAAcoC,OAAOJ;oCACzC,IAAIQ,YAAY;oCAEhB,IAAID,aAAa;wCACfC,aAAa;oCACf;oCAEA,IAAIJ,UAAU,GAAG;wCACfI,aAAa;oCACf;oCAEA,IAAIJ,UAAUH,MAAMQ,MAAM,GAAG,GAAG;wCAC9BD,aAAa;oCACf;oCAEA,MAAME,OAAOC,SAASC,aAAa,CAAC;oCAEpCF,KAAKF,SAAS,GAAGA;oCACjBE,KAAKG,gBAAgB,CAAC,aAAa,CAACC;wCAClCA,MAAMC,cAAc;wCACpBD,MAAME,wBAAwB;wCAE9B,IAAI,CAACtB,MAAM,CAACuB,IAAI,CAACC,QAAQ,CACvBjD,UAAUmC,OAAO,IAAI,CAACV,MAAM,CAACG,KAAK,CAACsB,EAAE;oCAEzC;oCAEA,OAAOT;gCACT;4BAEJ;wBACF;wBAEA,OAAO5C,cAAcK,MAAM,CAAC4B,KAAKH;oBACnC;gBACF;YACF;SACD;IACH;AACF,GAAG"}
|