@gravity-ui/markdown-editor 15.1.0 → 15.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/bundle/Editor.d.ts +3 -0
- package/build/cjs/bundle/Editor.js +21 -2
- package/build/cjs/bundle/Editor.js.map +1 -1
- package/build/cjs/bundle/MarkdownEditorView.js +2 -1
- package/build/cjs/bundle/MarkdownEditorView.js.map +1 -1
- package/build/cjs/bundle/MarkupEditorView.js +6 -1
- package/build/cjs/bundle/MarkupEditorView.js.map +1 -1
- package/build/cjs/bundle/MarkupManager.d.ts +3 -6
- package/build/cjs/bundle/MarkupManager.js +5 -5
- package/build/cjs/bundle/MarkupManager.js.map +1 -1
- package/build/cjs/bundle/WysiwygEditorView.js +6 -1
- package/build/cjs/bundle/WysiwygEditorView.js.map +1 -1
- package/build/cjs/bundle/types.d.ts +2 -0
- package/build/cjs/bundle/types.js.map +1 -1
- package/build/cjs/bundle/useMarkdownEditor.js +4 -2
- package/build/cjs/bundle/useMarkdownEditor.js.map +1 -1
- package/build/cjs/core/Editor.d.ts +3 -1
- package/build/cjs/core/Editor.js +6 -3
- package/build/cjs/core/Editor.js.map +1 -1
- package/build/cjs/core/ExtensionBuilder.d.ts +3 -1
- package/build/cjs/core/ExtensionBuilder.js +6 -1
- package/build/cjs/core/ExtensionBuilder.js.map +1 -1
- package/build/cjs/core/ExtensionsManager.d.ts +4 -2
- package/build/cjs/core/ExtensionsManager.js +6 -5
- package/build/cjs/core/ExtensionsManager.js.map +1 -1
- package/build/cjs/core/ParserTokensRegistry.d.ts +6 -0
- package/build/cjs/core/ParserTokensRegistry.js +9 -1
- package/build/cjs/core/ParserTokensRegistry.js.map +1 -1
- package/build/cjs/core/index.d.ts +1 -0
- package/build/cjs/core/index.js +3 -1
- package/build/cjs/core/index.js.map +1 -1
- package/build/cjs/core/markdown/MarkdownParser.d.ts +9 -1
- package/build/cjs/core/markdown/MarkdownParser.js +7 -3
- package/build/cjs/core/markdown/MarkdownParser.js.map +1 -1
- package/build/cjs/core/utils/logger.d.ts +3 -0
- package/build/cjs/core/utils/logger.js +12 -0
- package/build/cjs/core/utils/logger.js.map +1 -0
- package/build/cjs/core/utils/metrics.d.ts +2 -1
- package/build/cjs/core/utils/metrics.js +8 -2
- package/build/cjs/core/utils/metrics.js.map +1 -1
- package/build/cjs/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
- package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js +2 -2
- package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
- package/build/cjs/extensions/behavior/Autocomplete/handler.d.ts +3 -1
- package/build/cjs/extensions/behavior/Autocomplete/handler.js +16 -10
- package/build/cjs/extensions/behavior/Autocomplete/handler.js.map +1 -1
- package/build/cjs/extensions/behavior/Autocomplete/index.js +1 -1
- package/build/cjs/extensions/behavior/Autocomplete/index.js.map +1 -1
- package/build/cjs/extensions/behavior/Clipboard/clipboard.d.ts +3 -1
- package/build/cjs/extensions/behavior/Clipboard/clipboard.js +31 -3
- package/build/cjs/extensions/behavior/Clipboard/clipboard.js.map +1 -1
- package/build/cjs/extensions/behavior/Clipboard/index.js +4 -0
- package/build/cjs/extensions/behavior/Clipboard/index.js.map +1 -1
- package/build/cjs/extensions/behavior/CommandMenu/handler.d.ts +3 -1
- package/build/cjs/extensions/behavior/CommandMenu/handler.js +6 -3
- package/build/cjs/extensions/behavior/CommandMenu/handler.js.map +1 -1
- package/build/cjs/extensions/behavior/CommandMenu/index.js +5 -3
- package/build/cjs/extensions/behavior/CommandMenu/index.js.map +1 -1
- package/build/cjs/extensions/behavior/EditorModeKeymap/index.js +13 -2
- package/build/cjs/extensions/behavior/EditorModeKeymap/index.js.map +1 -1
- package/build/cjs/extensions/behavior/FilePaste/index.d.ts +1 -1
- package/build/cjs/extensions/behavior/FilePaste/index.js +12 -0
- package/build/cjs/extensions/behavior/FilePaste/index.js.map +1 -1
- package/build/cjs/extensions/behavior/SelectionContext/index.js +3 -3
- package/build/cjs/extensions/behavior/SelectionContext/index.js.map +1 -1
- package/build/cjs/extensions/behavior/SelectionContext/tooltip.d.ts +3 -1
- package/build/cjs/extensions/behavior/SelectionContext/tooltip.js +7 -2
- package/build/cjs/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
- package/build/cjs/extensions/behavior/utils/upload.d.ts +2 -0
- package/build/cjs/extensions/behavior/utils/upload.js +3 -0
- package/build/cjs/extensions/behavior/utils/upload.js.map +1 -1
- package/build/cjs/extensions/markdown/Breaks/index.js +2 -1
- package/build/cjs/extensions/markdown/Breaks/index.js.map +1 -1
- package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +2 -1
- package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
- package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js +2 -2
- package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
- package/build/cjs/extensions/markdown/Html/index.js +2 -1
- package/build/cjs/extensions/markdown/Html/index.js.map +1 -1
- package/build/cjs/extensions/markdown/Html/schema.js +2 -2
- package/build/cjs/extensions/markdown/Html/schema.js.map +1 -1
- package/build/cjs/extensions/markdown/Link/paste-plugin.d.ts +1 -1
- package/build/cjs/extensions/markdown/Link/paste-plugin.js +11 -0
- package/build/cjs/extensions/markdown/Link/paste-plugin.js.map +1 -1
- package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js +3 -3
- package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js +2 -2
- package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +2 -2
- package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.d.ts +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.js +14 -0
- package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImagePaste/upload.js +6 -5
- package/build/cjs/extensions/yfm/ImgSize/ImagePaste/upload.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +6 -6
- package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +3 -3
- package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/ImgSize/utils.d.ts +2 -1
- package/build/cjs/extensions/yfm/ImgSize/utils.js +3 -2
- package/build/cjs/extensions/yfm/ImgSize/utils.js.map +1 -1
- package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js +3 -3
- package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js +2 -2
- package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
- package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js +7 -7
- package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmConfigs/index.d.ts +2 -2
- package/build/cjs/extensions/yfm/YfmConfigs/index.js +2 -2
- package/build/cjs/extensions/yfm/YfmConfigs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.d.ts +1 -1
- package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.js +15 -1
- package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +3 -3
- package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js +3 -3
- package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmTabs/actions.js +4 -4
- package/build/cjs/extensions/yfm/YfmTabs/actions.js.map +1 -1
- package/build/cjs/extensions/yfm/YfmTabs/plugins.js +11 -11
- package/build/cjs/extensions/yfm/YfmTabs/plugins.js.map +1 -1
- package/build/cjs/i18n/yfm-note/index.d.ts +1 -1
- package/build/cjs/logger.d.ts +75 -0
- package/build/cjs/logger.js +89 -1
- package/build/cjs/logger.js.map +1 -1
- package/build/cjs/markdown-it/emoji.d.ts +2 -2
- package/build/cjs/markdown-it/emoji.js +4 -4
- package/build/cjs/markdown-it/emoji.js.map +1 -1
- package/build/cjs/markup/codemirror/create.d.ts +2 -0
- package/build/cjs/markup/codemirror/create.js +15 -4
- package/build/cjs/markup/codemirror/create.js.map +1 -1
- package/build/cjs/markup/codemirror/files-upload-plugin/plugin.js +13 -0
- package/build/cjs/markup/codemirror/files-upload-plugin/plugin.js.map +1 -1
- package/build/cjs/markup/codemirror/logger-facet.d.ts +3 -0
- package/build/cjs/markup/codemirror/logger-facet.js +9 -0
- package/build/cjs/markup/codemirror/logger-facet.js.map +1 -0
- package/build/cjs/utils/event-emitter.d.ts +1 -0
- package/build/cjs/utils/event-emitter.js +3 -0
- package/build/cjs/utils/event-emitter.js.map +1 -1
- package/build/cjs/utils/facet.d.ts +1 -0
- package/build/cjs/utils/facet.js +33 -0
- package/build/cjs/utils/facet.js.map +1 -0
- package/build/cjs/utils/keymap.js +7 -2
- package/build/cjs/utils/keymap.js.map +1 -1
- package/build/cjs/version.js +1 -1
- package/build/cjs/version.js.map +1 -1
- package/build/esm/bundle/Editor.d.ts +3 -0
- package/build/esm/bundle/Editor.js +22 -3
- package/build/esm/bundle/Editor.js.map +1 -1
- package/build/esm/bundle/MarkdownEditorView.js +3 -2
- package/build/esm/bundle/MarkdownEditorView.js.map +1 -1
- package/build/esm/bundle/MarkupEditorView.js +7 -2
- package/build/esm/bundle/MarkupEditorView.js.map +1 -1
- package/build/esm/bundle/MarkupManager.d.ts +3 -6
- package/build/esm/bundle/MarkupManager.js +5 -5
- package/build/esm/bundle/MarkupManager.js.map +1 -1
- package/build/esm/bundle/WysiwygEditorView.js +7 -2
- package/build/esm/bundle/WysiwygEditorView.js.map +1 -1
- package/build/esm/bundle/types.d.ts +2 -0
- package/build/esm/bundle/types.js.map +1 -1
- package/build/esm/bundle/useMarkdownEditor.js +5 -3
- package/build/esm/bundle/useMarkdownEditor.js.map +1 -1
- package/build/esm/core/Editor.d.ts +3 -1
- package/build/esm/core/Editor.js +6 -3
- package/build/esm/core/Editor.js.map +1 -1
- package/build/esm/core/ExtensionBuilder.d.ts +3 -1
- package/build/esm/core/ExtensionBuilder.js +6 -1
- package/build/esm/core/ExtensionBuilder.js.map +1 -1
- package/build/esm/core/ExtensionsManager.d.ts +4 -2
- package/build/esm/core/ExtensionsManager.js +6 -5
- package/build/esm/core/ExtensionsManager.js.map +1 -1
- package/build/esm/core/ParserTokensRegistry.d.ts +6 -0
- package/build/esm/core/ParserTokensRegistry.js +9 -1
- package/build/esm/core/ParserTokensRegistry.js.map +1 -1
- package/build/esm/core/index.d.ts +1 -0
- package/build/esm/core/index.js +1 -0
- package/build/esm/core/index.js.map +1 -1
- package/build/esm/core/markdown/MarkdownParser.d.ts +9 -1
- package/build/esm/core/markdown/MarkdownParser.js +7 -3
- package/build/esm/core/markdown/MarkdownParser.js.map +1 -1
- package/build/esm/core/utils/logger.d.ts +3 -0
- package/build/esm/core/utils/logger.js +8 -0
- package/build/esm/core/utils/logger.js.map +1 -0
- package/build/esm/core/utils/metrics.d.ts +2 -1
- package/build/esm/core/utils/metrics.js +8 -2
- package/build/esm/core/utils/metrics.js.map +1 -1
- package/build/esm/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
- package/build/esm/extensions/additional/YfmHtmlBlock/utils.js +1 -1
- package/build/esm/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
- package/build/esm/extensions/behavior/Autocomplete/handler.d.ts +3 -1
- package/build/esm/extensions/behavior/Autocomplete/handler.js +15 -9
- package/build/esm/extensions/behavior/Autocomplete/handler.js.map +1 -1
- package/build/esm/extensions/behavior/Autocomplete/index.js +1 -1
- package/build/esm/extensions/behavior/Autocomplete/index.js.map +1 -1
- package/build/esm/extensions/behavior/Clipboard/clipboard.d.ts +3 -1
- package/build/esm/extensions/behavior/Clipboard/clipboard.js +32 -4
- package/build/esm/extensions/behavior/Clipboard/clipboard.js.map +1 -1
- package/build/esm/extensions/behavior/Clipboard/index.js +4 -0
- package/build/esm/extensions/behavior/Clipboard/index.js.map +1 -1
- package/build/esm/extensions/behavior/CommandMenu/handler.d.ts +3 -1
- package/build/esm/extensions/behavior/CommandMenu/handler.js +7 -4
- package/build/esm/extensions/behavior/CommandMenu/handler.js.map +1 -1
- package/build/esm/extensions/behavior/CommandMenu/index.js +6 -4
- package/build/esm/extensions/behavior/CommandMenu/index.js.map +1 -1
- package/build/esm/extensions/behavior/EditorModeKeymap/index.js +13 -2
- package/build/esm/extensions/behavior/EditorModeKeymap/index.js.map +1 -1
- package/build/esm/extensions/behavior/FilePaste/index.d.ts +1 -1
- package/build/esm/extensions/behavior/FilePaste/index.js +12 -0
- package/build/esm/extensions/behavior/FilePaste/index.js.map +1 -1
- package/build/esm/extensions/behavior/SelectionContext/index.js +3 -3
- package/build/esm/extensions/behavior/SelectionContext/index.js.map +1 -1
- package/build/esm/extensions/behavior/SelectionContext/tooltip.d.ts +3 -1
- package/build/esm/extensions/behavior/SelectionContext/tooltip.js +8 -3
- package/build/esm/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
- package/build/esm/extensions/behavior/utils/upload.d.ts +2 -0
- package/build/esm/extensions/behavior/utils/upload.js +3 -0
- package/build/esm/extensions/behavior/utils/upload.js.map +1 -1
- package/build/esm/extensions/markdown/Breaks/index.js +3 -2
- package/build/esm/extensions/markdown/Breaks/index.js.map +1 -1
- package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +3 -2
- package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
- package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js +1 -1
- package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
- package/build/esm/extensions/markdown/Html/index.js +3 -2
- package/build/esm/extensions/markdown/Html/index.js.map +1 -1
- package/build/esm/extensions/markdown/Html/schema.js +1 -1
- package/build/esm/extensions/markdown/Html/schema.js.map +1 -1
- package/build/esm/extensions/markdown/Link/paste-plugin.d.ts +1 -1
- package/build/esm/extensions/markdown/Link/paste-plugin.js +11 -0
- package/build/esm/extensions/markdown/Link/paste-plugin.js.map +1 -1
- package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js +2 -2
- package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js +1 -1
- package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +1 -1
- package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.d.ts +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.js +14 -0
- package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImagePaste/upload.js +7 -6
- package/build/esm/extensions/yfm/ImgSize/ImagePaste/upload.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +2 -2
- package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/ImgSize/utils.d.ts +2 -1
- package/build/esm/extensions/yfm/ImgSize/utils.js +4 -3
- package/build/esm/extensions/yfm/ImgSize/utils.js.map +1 -1
- package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js +2 -2
- package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/Video/VideoSpecs/index.js +1 -1
- package/build/esm/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
- package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js +3 -3
- package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
- package/build/esm/extensions/yfm/YfmConfigs/index.d.ts +2 -2
- package/build/esm/extensions/yfm/YfmConfigs/index.js +2 -2
- package/build/esm/extensions/yfm/YfmConfigs/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.d.ts +1 -1
- package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.js +15 -1
- package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +2 -2
- package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js +2 -2
- package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
- package/build/esm/extensions/yfm/YfmTabs/actions.js +1 -1
- package/build/esm/extensions/yfm/YfmTabs/actions.js.map +1 -1
- package/build/esm/extensions/yfm/YfmTabs/plugins.js +1 -1
- package/build/esm/extensions/yfm/YfmTabs/plugins.js.map +1 -1
- package/build/esm/i18n/yfm-note/index.d.ts +1 -1
- package/build/esm/logger.d.ts +75 -0
- package/build/esm/logger.js +87 -0
- package/build/esm/logger.js.map +1 -1
- package/build/esm/markdown-it/emoji.d.ts +2 -2
- package/build/esm/markdown-it/emoji.js +2 -2
- package/build/esm/markdown-it/emoji.js.map +1 -1
- package/build/esm/markup/codemirror/create.d.ts +2 -0
- package/build/esm/markup/codemirror/create.js +16 -5
- package/build/esm/markup/codemirror/create.js.map +1 -1
- package/build/esm/markup/codemirror/files-upload-plugin/plugin.js +13 -0
- package/build/esm/markup/codemirror/files-upload-plugin/plugin.js.map +1 -1
- package/build/esm/markup/codemirror/logger-facet.d.ts +3 -0
- package/build/esm/markup/codemirror/logger-facet.js +6 -0
- package/build/esm/markup/codemirror/logger-facet.js.map +1 -0
- package/build/esm/utils/event-emitter.d.ts +1 -0
- package/build/esm/utils/event-emitter.js +3 -0
- package/build/esm/utils/event-emitter.js.map +1 -1
- package/build/esm/utils/facet.d.ts +1 -0
- package/build/esm/utils/facet.js +29 -0
- package/build/esm/utils/facet.js.map +1 -0
- package/build/esm/utils/keymap.js +7 -2
- package/build/esm/utils/keymap.js.map +1 -1
- package/build/esm/version.js +1 -1
- package/build/esm/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {decode as base64ToBuffer} from 'base64-arraybuffer';\nimport {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\n\nimport type {ParseInsertedUrlAsImage} from '../../../../bundle';\nimport type {ExtensionAuto} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {DataTransferType} from '../../../behavior/Clipboard/utils';\nimport {ImageAttr, ImgSizeAttr, imageType} from '../../../specs';\nimport {type CreateImageNodeOptions, isImageNode} from '../utils';\n\nimport {ImagesUploadProcess} from './upload';\n\nconst {isFilesFromHtml, isFilesOnly, isImageFile} = clipboardUtils;\n\nexport type ImagePasteOptions = Pick<\n CreateImageNodeOptions,\n 'needDimensions' | 'enableNewImageSizeCalculation'\n> & {\n imageUploadHandler?: FileUploadHandler;\n /**\n * The function, used to determine if the pasted text is the image url and should be inserted as an image\n */\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n};\n\nexport const ImagePaste: ExtensionAuto<ImagePasteOptions> = (builder, opts) => {\n const {parseInsertedUrlAsImage, imageUploadHandler} = opts ?? {};\n\n if (!isFunction(imageUploadHandler ?? parseInsertedUrlAsImage))\n throw new Error(\n `ImagePaste extension: ${\n opts.imageUploadHandler ? 'imageUploadHandler' : 'parseInsertedUrlAsImage'\n } is not a function`,\n );\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const files = getPastedImages(e.clipboardData);\n if (imageUploadHandler && files) {\n e.preventDefault();\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n } else if (parseInsertedUrlAsImage) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n e.clipboardData?.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (!imageUrl) {\n return false;\n }\n\n e.preventDefault();\n\n const imageNode = imageType(view.state.schema).create({\n src: imageUrl,\n alt: title,\n });\n\n const tr = view.state.tr.replaceSelectionWith(imageNode);\n view.dispatch(tr.scrollIntoView());\n\n return true;\n }\n\n return false;\n },\n drop(view, e) {\n if (!imageUploadHandler) {\n return false;\n }\n\n // handle drop images from device\n if (view.dragging) return false;\n\n const files = getPastedImages(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeImageSlice(view.state.schema),\n );\n\n if (posToInsert !== null) {\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n posToInsert,\n opts,\n ).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n handlePaste(view, _event, slice) {\n if (!imageUploadHandler) {\n return false;\n }\n\n const node = sliceSingleNode(slice);\n if (node && isImageNode(node)) {\n const imgUrl = node.attrs[ImgSizeAttr.Src];\n const imgFile = dataUrlToFile(imgUrl, 'image');\n if (imgFile) {\n new ImagesUploadProcess(\n view,\n [imgFile],\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n }\n }\n return false;\n },\n },\n }),\n builder.Priority.VeryHigh,\n );\n};\n\nfunction getPastedImages(data: DataTransfer | null): File[] | null {\n if (!data || data.files.length === 0) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n const files = Array.from(data.files);\n return files.every(isImageFile) ? files : null;\n}\n\nfunction createFakeImageSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n imageType(schema).create({\n [ImageAttr.Src]: 'fake',\n [ImageAttr.Title]: 'image',\n }),\n ),\n 0,\n 0,\n );\n}\n\n// copied from prosemirror-view input.ts\nfunction sliceSingleNode(slice: Slice): Node | null {\n return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1\n ? slice.content.firstChild\n : null;\n}\n\nfunction dataUrlToFile(dataUrl: string, filename: string): File | null {\n const [data, base64String] = dataUrl.split(',');\n if (!data || !base64String) return null;\n const mime = data.match(/^data:(.+);base64/)?.[1];\n if (!mime) return null;\n return new File([base64ToBuffer(base64String)], filename, {type: mime});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {decode as base64ToBuffer} from 'base64-arraybuffer';\nimport {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\n\nimport type {ParseInsertedUrlAsImage} from '../../../../bundle';\nimport {type ExtensionAuto, getLoggerFromState} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {DataTransferType} from '../../../behavior/Clipboard/utils';\nimport {ImageAttr, ImgSizeAttr, imageType} from '../../../specs';\nimport {type CreateImageNodeOptions, isImageNode} from '../utils';\n\nimport {ImagesUploadProcess} from './upload';\n\nconst {isFilesFromHtml, isFilesOnly, isImageFile} = clipboardUtils;\n\nexport type ImagePasteOptions = Pick<\n CreateImageNodeOptions,\n 'needDimensions' | 'enableNewImageSizeCalculation'\n> & {\n imageUploadHandler?: FileUploadHandler;\n /**\n * The function, used to determine if the pasted text is the image url and should be inserted as an image\n */\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n};\n\nexport const ImagePaste: ExtensionAuto<ImagePasteOptions> = (builder, opts) => {\n const {parseInsertedUrlAsImage, imageUploadHandler} = opts ?? {};\n\n if (!isFunction(imageUploadHandler ?? parseInsertedUrlAsImage))\n throw new Error(\n `ImagePaste extension: ${\n opts.imageUploadHandler ? 'imageUploadHandler' : 'parseInsertedUrlAsImage'\n } is not a function`,\n );\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const logger = getLoggerFromState(view.state).nested({\n plugin: 'image-paste',\n domEvent: 'paste',\n });\n\n const files = getPastedImages(e.clipboardData);\n if (imageUploadHandler && files) {\n e.preventDefault();\n logger.event({event: 'paste-images'});\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n } else if (parseInsertedUrlAsImage) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n e.clipboardData?.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (!imageUrl) {\n return false;\n }\n\n e.preventDefault();\n\n const imageNode = imageType(view.state.schema).create({\n src: imageUrl,\n alt: title,\n });\n\n const tr = view.state.tr.replaceSelectionWith(imageNode);\n view.dispatch(tr.scrollIntoView());\n logger.event({event: 'paste-url-as-image'});\n\n return true;\n }\n\n return false;\n },\n drop(view, e) {\n if (!imageUploadHandler) {\n return false;\n }\n\n // handle drop images from device\n if (view.dragging) return false;\n\n const files = getPastedImages(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeImageSlice(view.state.schema),\n );\n\n const logger = getLoggerFromState(view.state);\n logger.event({\n event: 'drop-image',\n plugin: 'image-paste',\n domEvent: 'drop',\n runProcess: posToInsert !== null,\n });\n\n if (posToInsert !== null) {\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n posToInsert,\n opts,\n ).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n handlePaste(view, _event, slice) {\n if (!imageUploadHandler) {\n return false;\n }\n\n const node = sliceSingleNode(slice);\n if (node && isImageNode(node)) {\n const imgUrl = node.attrs[ImgSizeAttr.Src];\n const imgFile = dataUrlToFile(imgUrl, 'image');\n if (imgFile) {\n new ImagesUploadProcess(\n view,\n [imgFile],\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n }\n }\n return false;\n },\n },\n }),\n builder.Priority.VeryHigh,\n );\n};\n\nfunction getPastedImages(data: DataTransfer | null): File[] | null {\n if (!data || data.files.length === 0) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n const files = Array.from(data.files);\n return files.every(isImageFile) ? files : null;\n}\n\nfunction createFakeImageSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n imageType(schema).create({\n [ImageAttr.Src]: 'fake',\n [ImageAttr.Title]: 'image',\n }),\n ),\n 0,\n 0,\n );\n}\n\n// copied from prosemirror-view input.ts\nfunction sliceSingleNode(slice: Slice): Node | null {\n return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1\n ? slice.content.firstChild\n : null;\n}\n\nfunction dataUrlToFile(dataUrl: string, filename: string): File | null {\n const [data, base64String] = dataUrl.split(',');\n if (!data || !base64String) return null;\n const mime = data.match(/^data:(.+);base64/)?.[1];\n if (!mime) return null;\n return new File([base64ToBuffer(base64String)], filename, {type: mime});\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { globalLogger } from "../../../../logger.js";
|
|
2
2
|
import { getProportionalSize, } from "../../../../utils/index.js";
|
|
3
3
|
import { FilesBatchUploadProcess } from "../../../behavior/utils/upload.js";
|
|
4
4
|
import { imageType } from "../../../markdown/index.js";
|
|
@@ -12,28 +12,29 @@ export class ImagesUploadProcess extends FilesBatchUploadProcess {
|
|
|
12
12
|
constructor(view, files, uploadHandler, position, opts) {
|
|
13
13
|
super(view, files, uploadHandler);
|
|
14
14
|
this.initPosition = position;
|
|
15
|
-
this.createImage = createImageNode(imageType(this.view.state.schema), opts);
|
|
15
|
+
this.createImage = createImageNode(imageType(this.view.state.schema), opts, this.logger);
|
|
16
16
|
this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;
|
|
17
17
|
}
|
|
18
18
|
async createSkeleton() {
|
|
19
19
|
return new ImageSkeletonDescriptor(this.initPosition, await getSkeletonSize(this.files, {
|
|
20
20
|
enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,
|
|
21
|
-
}));
|
|
21
|
+
}, this.logger));
|
|
22
22
|
}
|
|
23
23
|
async createPMNode(res) {
|
|
24
24
|
return this.createImage(res);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
async function getSkeletonSize(files, opts) {
|
|
27
|
+
async function getSkeletonSize(files, opts, logger) {
|
|
28
28
|
const skeletonSize = { width: '300', height: '200' };
|
|
29
29
|
if (files.length === 1) {
|
|
30
30
|
try {
|
|
31
|
-
const size = await loadImage(files[0]).then(opts
|
|
31
|
+
const size = await loadImage(files[0]).then(opts.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize);
|
|
32
32
|
skeletonSize.width = String(size.width);
|
|
33
33
|
skeletonSize.height = String(size.height);
|
|
34
34
|
}
|
|
35
35
|
catch (err) {
|
|
36
|
-
|
|
36
|
+
globalLogger.error(err);
|
|
37
|
+
logger.error({ error: err });
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
return skeletonSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/upload.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/upload.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAC,8BAA2B;AAC9D,OAAO,EAGH,mBAAmB,GACtB,mCAA0B;AAC3B,OAAO,EAAC,uBAAuB,EAAC,0CAAuC;AACvE,OAAO,EAAC,SAAS,EAAC,mCAA0B;AAC5C,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAA8B,eAAe,EAAE,SAAS,EAAC,oBAAiB;AAEjF,OAAO,EAAC,uBAAuB,EAAC,sBAAmB;AAEnD,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IACzC,WAAW,CAAC;IAEZ,YAAY,CAAS;IACvB,6BAA6B,CAAW;IAEzD,YACI,IAAgB,EAChB,KAAsB,EACtB,aAAgC,EAChC,QAAgB,EAChB,IAA4B;QAE5B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;IAC5E,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,OAAO,IAAI,uBAAuB,CAC9B,IAAI,CAAC,YAAY,EACjB,MAAM,eAAe,CACjB,IAAI,CAAC,KAAK,EACV;YACI,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;SACpE,EACD,IAAI,CAAC,MAAM,CACd,CACJ,CAAC;IACN,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,GAAsB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AAED,KAAK,UAAU,eAAe,CAC1B,KAAsB,EACtB,IAA+C,EAC/C,MAAuB;IAEvB,MAAM,YAAY,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACvC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAC9E,CAAC;YACF,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IACvD,IAAI,MAAM,IAAI,cAAc;QAAE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IAErD,MAAM,KAAK,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC,UAAU;IACjD,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAC1D,OAAO,mBAAmB,CAAC;QACvB,KAAK;QACL,MAAM;QACN,YAAY,EAAE,cAAc;KAC/B,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type {Node} from 'prosemirror-model';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {type Logger2, globalLogger} from '../../../../logger';\nimport {\n type FileUploadHandler,\n type UploadSuccessItem,\n getProportionalSize,\n} from '../../../../utils';\nimport {FilesBatchUploadProcess} from '../../../behavior/utils/upload';\nimport {imageType} from '../../../markdown';\nimport {IMG_MAX_HEIGHT} from '../const';\nimport {type CreateImageNodeOptions, createImageNode, loadImage} from '../utils';\n\nimport {ImageSkeletonDescriptor} from './skeleton';\n\nexport class ImagesUploadProcess extends FilesBatchUploadProcess {\n protected readonly createImage;\n\n protected readonly initPosition: number;\n private readonly enableNewImageSizeCalculation?: boolean;\n\n constructor(\n view: EditorView,\n files: readonly File[],\n uploadHandler: FileUploadHandler,\n position: number,\n opts: CreateImageNodeOptions,\n ) {\n super(view, files, uploadHandler);\n\n this.initPosition = position;\n this.createImage = createImageNode(imageType(this.view.state.schema), opts, this.logger);\n this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;\n }\n\n protected async createSkeleton() {\n return new ImageSkeletonDescriptor(\n this.initPosition,\n await getSkeletonSize(\n this.files,\n {\n enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,\n },\n this.logger,\n ),\n );\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return this.createImage(res);\n }\n}\n\nasync function getSkeletonSize(\n files: readonly File[],\n opts: {enableNewImageSizeCalculation?: boolean},\n logger: Logger2.ILogger,\n) {\n const skeletonSize = {width: '300', height: '200'};\n if (files.length === 1) {\n try {\n const size = await loadImage(files[0]).then(\n opts.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize,\n );\n skeletonSize.width = String(size.width);\n skeletonSize.height = String(size.height);\n } catch (err) {\n globalLogger.error(err);\n logger.error({error: err});\n }\n }\n return skeletonSize;\n}\n\nfunction calcSkeletonSize({width, height}: HTMLImageElement): {width: number; height: number} {\n if (height <= IMG_MAX_HEIGHT) return {width, height};\n\n const ratio = IMG_MAX_HEIGHT / height; // ratio<1\n return {height: IMG_MAX_HEIGHT, width: width * ratio};\n}\n\nfunction calcSkeletonSizeNew({width, height}: HTMLImageElement): {width: number; height: number} {\n return getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,iDAAiD,CAAC;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,KAAK,EAAE,UAAU,CAAC,KAAK;IACvB,MAAM,EAAE,UAAU,CAAC,MAAM;IACzB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import {ImsizeAttr} from '@diplodoc/transform/lib/plugins/imsize/const.js';\n\nexport const ImgSizeAttr = {\n Alt: ImsizeAttr.Alt,\n Src: ImsizeAttr.Src,\n Title: ImsizeAttr.Title,\n Width: ImsizeAttr.Width,\n Height: ImsizeAttr.Height,\n Loading: 'loading',\n} as const;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import log from '@diplodoc/transform/lib/log';
|
|
2
|
-
import imsize from '@diplodoc/transform/lib/plugins/imsize';
|
|
1
|
+
import log from '@diplodoc/transform/lib/log.js';
|
|
2
|
+
import imsize from '@diplodoc/transform/lib/plugins/imsize/index.js';
|
|
3
3
|
import isNumber from 'is-number';
|
|
4
4
|
import { imageNodeName } from "../../../markdown/Image/const.js";
|
|
5
5
|
import { ImgSizeAttr } from "./const.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport imsize from '@diplodoc/transform/lib/plugins/imsize/index.js';\nimport isNumber from 'is-number';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {imageNodeName} from '../../../markdown/Image/const';\n\nimport {ImgSizeAttr} from './const';\n\ntype ImsizeTypedAttributes = {\n [ImgSizeAttr.Src]: string;\n [ImgSizeAttr.Title]: string | null;\n [ImgSizeAttr.Alt]: string | null;\n [ImgSizeAttr.Width]: string | null;\n [ImgSizeAttr.Height]: string | null;\n [ImgSizeAttr.Loading]: string | null;\n};\n\nexport {ImgSizeAttr};\n\nexport type ImgSizeSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n placeholder?: NodeSpec['placeholder'];\n};\n\nexport const ImgSizeSpecs: ExtensionAuto<ImgSizeSpecsOptions> = (builder, opts) => {\n const placeholderContent = builder.context.get('placeholder')?.imgSize;\n\n builder.configureMd((md) => md.use(imsize, {log, enableInlineStyling: true}));\n builder.addNode(imageNodeName, () => ({\n spec: {\n inline: true,\n attrs: {\n [ImgSizeAttr.Src]: {},\n [ImgSizeAttr.Alt]: {default: null},\n [ImgSizeAttr.Title]: {default: null},\n [ImgSizeAttr.Height]: {default: null},\n [ImgSizeAttr.Width]: {default: null},\n [ImgSizeAttr.Loading]: {default: null},\n },\n placeholder: placeholderContent ? {content: placeholderContent} : opts.placeholder,\n group: 'inline',\n draggable: true,\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs(dom) {\n const height = (dom as Element).getAttribute(ImgSizeAttr.Height);\n const width = (dom as Element).getAttribute(ImgSizeAttr.Width);\n\n return {\n [ImgSizeAttr.Src]: (dom as Element).getAttribute(ImgSizeAttr.Src),\n [ImgSizeAttr.Alt]: (dom as Element).getAttribute(ImgSizeAttr.Alt),\n [ImgSizeAttr.Title]: (dom as Element).getAttribute(ImgSizeAttr.Title),\n [ImgSizeAttr.Loading]: (dom as Element).getAttribute(\n ImgSizeAttr.Loading,\n ),\n [ImgSizeAttr.Height]: isNumber(height) ? height : null,\n [ImgSizeAttr.Width]: isNumber(width) ? height : null,\n };\n },\n },\n ],\n toDOM(node) {\n return ['img', node.attrs];\n },\n },\n fromMd: {\n tokenSpec: {\n name: imageNodeName,\n type: 'node',\n getAttrs: (tok): ImsizeTypedAttributes => ({\n [ImgSizeAttr.Src]: tok.attrGet(ImgSizeAttr.Src)!,\n [ImgSizeAttr.Title]: tok.attrGet(ImgSizeAttr.Title),\n [ImgSizeAttr.Height]: tok.attrGet(ImgSizeAttr.Height),\n [ImgSizeAttr.Width]: tok.attrGet(ImgSizeAttr.Width),\n [ImgSizeAttr.Loading]: tok.attrGet(ImgSizeAttr.Loading),\n [ImgSizeAttr.Alt]: tok.children?.[0]?.content || null,\n }),\n },\n },\n toMd: (state, node) => {\n const attrs = node.attrs as ImsizeTypedAttributes;\n let result = ' {\n result += state.esc(attrs.src);\n }\n\n if (attrs.title) {\n result += ` ${state.quote(attrs.title)}`;\n }\n\n result += getSize(attrs);\n result += ')';\n\n state.write(result);\n },\n }));\n};\n\nfunction getSize({width, height}: ImsizeTypedAttributes): string {\n if (width || height) {\n return ` =${width || ''}x${height || ''}`;\n }\n\n return '';\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Node, NodeType } from 'prosemirror-model';
|
|
2
|
+
import { type Logger2 } from "../../../logger.js";
|
|
2
3
|
import { type UploadSuccessItem } from "../../../utils/index.js";
|
|
3
4
|
import { ImgSizeAttr } from "../../specs.js";
|
|
4
5
|
export declare function isImageNode(node: Node): boolean;
|
|
@@ -6,7 +7,7 @@ export type CreateImageNodeOptions = {
|
|
|
6
7
|
needDimensions: boolean;
|
|
7
8
|
enableNewImageSizeCalculation?: boolean;
|
|
8
9
|
};
|
|
9
|
-
export declare const createImageNode: (imgType: NodeType, opts: CreateImageNodeOptions) => ({ result, file }: UploadSuccessItem) => Promise<Node>;
|
|
10
|
+
export declare const createImageNode: (imgType: NodeType, opts: CreateImageNodeOptions, logger: Logger2.ILogger) => ({ result, file }: UploadSuccessItem) => Promise<Node>;
|
|
10
11
|
export declare function loadImage(imgFile: File): Promise<HTMLImageElement>;
|
|
11
12
|
export declare function getImageSize(img: HTMLImageElement): {
|
|
12
13
|
[ImgSizeAttr.Height]?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { globalLogger } from "../../../logger.js";
|
|
2
2
|
import { getProportionalSize } from "../../../utils/index.js";
|
|
3
3
|
import { imageNodeName } from "../../markdown/index.js";
|
|
4
4
|
import { ImgSizeAttr } from "../../specs.js";
|
|
@@ -6,7 +6,7 @@ import { IMG_MAX_HEIGHT } from "./const.js";
|
|
|
6
6
|
export function isImageNode(node) {
|
|
7
7
|
return node.type.name === imageNodeName;
|
|
8
8
|
}
|
|
9
|
-
export const createImageNode = (imgType, opts) => async ({ result, file }) => {
|
|
9
|
+
export const createImageNode = (imgType, opts, logger) => async ({ result, file }) => {
|
|
10
10
|
const attrs = {
|
|
11
11
|
[ImgSizeAttr.Src]: result.url,
|
|
12
12
|
[ImgSizeAttr.Alt]: result.name ?? file.name,
|
|
@@ -17,7 +17,8 @@ export const createImageNode = (imgType, opts) => async ({ result, file }) => {
|
|
|
17
17
|
Object.assign(attrs, sizes);
|
|
18
18
|
}
|
|
19
19
|
catch (err) {
|
|
20
|
-
|
|
20
|
+
globalLogger.error(err);
|
|
21
|
+
logger.error({ error: err });
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
return imgType.create(attrs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/ImgSize/utils.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/ImgSize/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,YAAY,EAAC,2BAAwB;AAC3D,OAAO,EAAyB,mBAAmB,EAAC,gCAAuB;AAC3E,OAAO,EAAC,aAAa,EAAC,gCAAuB;AAC7C,OAAO,EAAC,WAAW,EAAC,uBAAoB;AAExC,OAAO,EAAC,cAAc,EAAC,mBAAgB;AAEvC,MAAM,UAAU,WAAW,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AAC5C,CAAC;AAOD,MAAM,CAAC,MAAM,eAAe,GACxB,CAAC,OAAiB,EAAE,IAA4B,EAAE,MAAuB,EAAE,EAAE,CAC7E,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAoB,EAAE,EAAE;IACxC,MAAM,KAAK,GAA2B;QAClC,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;QAC7B,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;KAC9C,CAAC;IACF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CACpC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CACtE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEN,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAa;IACzC,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YACd,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAqB;IAC9C,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAI7D,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAC7B,KAAK;QACL,MAAM;QACN,YAAY,EAAE,cAAc;KAC/B,CAAC,CAAC;IACH,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;AACpE,CAAC","sourcesContent":["import type {Node, NodeType} from 'prosemirror-model';\n\nimport {type Logger2, globalLogger} from '../../../logger';\nimport {type UploadSuccessItem, getProportionalSize} from '../../../utils';\nimport {imageNodeName} from '../../markdown';\nimport {ImgSizeAttr} from '../../specs';\n\nimport {IMG_MAX_HEIGHT} from './const';\n\nexport function isImageNode(node: Node): boolean {\n return node.type.name === imageNodeName;\n}\n\nexport type CreateImageNodeOptions = {\n needDimensions: boolean;\n enableNewImageSizeCalculation?: boolean;\n};\n\nexport const createImageNode =\n (imgType: NodeType, opts: CreateImageNodeOptions, logger: Logger2.ILogger) =>\n async ({result, file}: UploadSuccessItem) => {\n const attrs: Record<string, string> = {\n [ImgSizeAttr.Src]: result.url,\n [ImgSizeAttr.Alt]: result.name ?? file.name,\n };\n if (opts.needDimensions) {\n try {\n const sizes = await loadImage(file).then(\n opts.enableNewImageSizeCalculation ? getImageSizeNew : getImageSize,\n );\n Object.assign(attrs, sizes);\n } catch (err) {\n globalLogger.error(err);\n logger.error({error: err});\n }\n }\n return imgType.create(attrs);\n };\n\nexport async function loadImage(imgFile: File) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const img = document.createElement('img');\n img.src = URL.createObjectURL(imgFile);\n img.onload = () => {\n URL.revokeObjectURL(img.src);\n resolve(img);\n };\n img.onerror = (_e, _s, _l, _c, error) => reject(error);\n });\n}\n\nexport function getImageSize(img: HTMLImageElement): {[ImgSizeAttr.Height]?: string} {\n return {height: String(Math.min(IMG_MAX_HEIGHT, img.height))};\n}\n\nexport function getImageSizeNew({width, height}: HTMLImageElement): {\n [ImgSizeAttr.Width]?: string;\n [ImgSizeAttr.Height]?: string;\n} {\n const size = getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n return {width: String(size.width), height: String(size.height)};\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import log from '@diplodoc/transform/lib/log';
|
|
2
|
-
import yfmPlugin from '@diplodoc/transform/lib/plugins/monospace';
|
|
1
|
+
import log from '@diplodoc/transform/lib/log.js';
|
|
2
|
+
import yfmPlugin from '@diplodoc/transform/lib/plugins/monospace.js';
|
|
3
3
|
import { markTypeFactory } from "../../../../utils/schema.js";
|
|
4
4
|
export const monospaceMarkName = 'monospace';
|
|
5
5
|
export const monospaceType = markTypeFactory(monospaceMarkName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Monospace/MonospaceSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Monospace/MonospaceSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gCAAgC,CAAC;AACjD,OAAO,SAAS,MAAM,8CAA8C,CAAC;AAGrE,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAkB,CAAC,OAAO,EAAE,EAAE;IACrD,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE;YACF,QAAQ,EAAE,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC;YACzB,KAAK;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,MAAM;aACf;SACJ;QACD,IAAI,EAAE;YACF,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,IAAI;SACjC;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/monospace.js';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {markTypeFactory} from '../../../../utils/schema';\n\nexport const monospaceMarkName = 'monospace';\nexport const monospaceType = markTypeFactory(monospaceMarkName);\n\nexport const MonospaceSpecs: ExtensionAuto = (builder) => {\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addMark(monospaceMarkName, () => ({\n spec: {\n parseDOM: [{tag: 'samp'}],\n toDOM() {\n return ['samp'];\n },\n },\n fromMd: {\n tokenSpec: {\n name: monospaceMarkName,\n type: 'mark',\n },\n },\n toMd: {\n open: '##',\n close: '##',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n }));\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import log from '@diplodoc/transform/lib/log';
|
|
1
|
+
import log from '@diplodoc/transform/lib/log.js';
|
|
2
2
|
import { VideoAttr, videoNodeName } from "./const.js";
|
|
3
3
|
import { VideoService, defaults, videoPlugin, } from "./md-video.js";
|
|
4
4
|
import { createViewStub, serializeNodeToString } from "./utils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {VideoAttr, videoNodeName} from './const';\nimport {\n type VideoPluginOptions,\n VideoService,\n type VideoToken,\n defaults,\n videoPlugin,\n} from './md-video';\nimport {createViewStub, serializeNodeToString} from './utils';\n\n// we don't support osf service\nconst availableServices: ReadonlySet<string> = new Set([\n VideoService.YouTube,\n VideoService.Vimeo,\n VideoService.Vine,\n VideoService.Prezi,\n]);\n\nexport {videoNodeName} from './const';\nexport {videoType} from './utils';\n\nexport type VideoSpecsOptions = VideoPluginOptions & {};\n\nexport const VideoSpecs: ExtensionAuto<VideoSpecsOptions> = (builder, opts) => {\n const options = {...defaults, ...opts, log};\n\n builder.configureMd((md) => md.use(videoPlugin, options));\n builder.addNode(videoNodeName, () => ({\n spec: {\n inline: true,\n atom: true,\n group: 'inline',\n attrs: {[VideoAttr.Service]: {}, [VideoAttr.VideoID]: {}},\n parseDOM: [\n {\n tag: `span[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n },\n {\n tag: `iframe[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n priority: 100,\n },\n ],\n toDOM(node) {\n const service = node.attrs[VideoAttr.Service];\n const videoId = node.attrs[VideoAttr.VideoID];\n\n if (availableServices.has(service) || !videoId) {\n let src = '';\n if (typeof options.videoUrl === 'function') {\n src = options.videoUrl(service, videoId, options);\n }\n return [\n 'div',\n {\n class: 'embed-responsive embed-responsive-16by9',\n },\n [\n 'iframe',\n {\n class: `embed-responsive-item ${service}-player`,\n type: 'text/html',\n width: String(options[service as VideoService].width),\n height: String(options[service as VideoService].height),\n src: src,\n frameborder: '0',\n webkitallowfullscreen: '',\n mozallowfullscreen: '',\n allowfullscreen: '',\n [VideoAttr.Service]: service,\n [VideoAttr.VideoID]: videoId,\n },\n ],\n ];\n }\n\n return createViewStub(node);\n },\n },\n fromMd: {\n tokenSpec: {\n name: videoNodeName,\n type: 'node',\n getAttrs: (tok) => ({\n [VideoAttr.Service]: (tok as VideoToken).service,\n [VideoAttr.VideoID]: (tok as VideoToken).videoID,\n }),\n },\n },\n toMd: (state, node) => {\n state.write(serializeNodeToString(node));\n },\n }));\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const videoPlugin: import("markdown-it").PluginWithOptions<Partial<import("@diplodoc/transform/lib/plugins/video/types").VideoFullOptions>>;
|
|
2
|
-
export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const';
|
|
3
|
-
export type { VideoPluginOptions, VideoToken } from '@diplodoc/transform/lib/plugins/video/types';
|
|
4
|
-
export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers';
|
|
1
|
+
export declare const videoPlugin: import("markdown-it").PluginWithOptions<Partial<import("@diplodoc/transform/lib/plugins/video/types.js").VideoFullOptions>>;
|
|
2
|
+
export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const.js';
|
|
3
|
+
export type { VideoPluginOptions, VideoToken } from '@diplodoc/transform/lib/plugins/video/types.js';
|
|
4
|
+
export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import video from '@diplodoc/transform/lib/plugins/video';
|
|
1
|
+
import video from '@diplodoc/transform/lib/plugins/video/index.js';
|
|
2
2
|
export const videoPlugin = video;
|
|
3
|
-
export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const';
|
|
4
|
-
export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers';
|
|
3
|
+
export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const.js';
|
|
4
|
+
export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers.js';
|
|
5
5
|
//# sourceMappingURL=md-video.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md-video.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/md-video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"md-video.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/md-video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gDAAgD,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC;AACjC,OAAO,EAAC,YAAY,EAAE,QAAQ,EAAC,MAAM,gDAAgD,CAAC;AAEtF,OAAO,EAAC,aAAa,EAAC,MAAM,kDAAkD,CAAC","sourcesContent":["import video from '@diplodoc/transform/lib/plugins/video/index.js';\nexport const videoPlugin = video;\nexport {VideoService, defaults} from '@diplodoc/transform/lib/plugins/video/const.js';\nexport type {VideoPluginOptions, VideoToken} from '@diplodoc/transform/lib/plugins/video/types.js';\nexport {parseVideoUrl} from '@diplodoc/transform/lib/plugins/video/parsers.js';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import '@diplodoc/transform/dist/js/base';
|
|
2
|
-
import '@diplodoc/transform/dist/js/_yfm-only';
|
|
1
|
+
import '@diplodoc/transform/dist/js/base.js';
|
|
2
|
+
import '@diplodoc/transform/dist/js/_yfm-only.js';
|
|
3
3
|
import type { ExtensionAuto } from "../../../core/index.js";
|
|
4
4
|
import { type YfmConfigsSpecsOptions } from "./YfmConfigsSpecs/index.js";
|
|
5
5
|
import '@diplodoc/transform/dist/css/base.css';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import '@diplodoc/transform/dist/js/base';
|
|
2
|
-
import '@diplodoc/transform/dist/js/_yfm-only'; // eslint-disable-line import/order
|
|
1
|
+
import '@diplodoc/transform/dist/js/base.js';
|
|
2
|
+
import '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order
|
|
3
3
|
import { Plugin } from 'prosemirror-state';
|
|
4
4
|
import { YfmConfigsSpecs } from "./YfmConfigsSpecs/index.js";
|
|
5
5
|
import '@diplodoc/transform/dist/css/base.css';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":"AAAA,OAAO,qCAAqC,CAAC;AAC7C,OAAO,0CAA0C,CAAC,CAAC,mCAAmC;AACtF,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAIzC,OAAO,EAAC,eAAe,EAA8B,mCAA0B;AAE/E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,4CAA4C,CAAC,CAAC,mCAAmC;AACxF,mBAAoB,CAAC,mCAAmC;AAIxD,MAAM,CAAC,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,MAAM,CAAC;QACP,KAAK,EAAE;YACH,UAAU,EAAE;gBACR,KAAK,EAAE,kCAAkC;aAC5C;SACJ;KACJ,CAAC,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import '@diplodoc/transform/dist/js/base.js';\nimport '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order\nimport {Plugin} from 'prosemirror-state';\n\nimport type {ExtensionAuto} from '../../../core';\n\nimport {YfmConfigsSpecs, type YfmConfigsSpecsOptions} from './YfmConfigsSpecs';\n\nimport '@diplodoc/transform/dist/css/base.css';\nimport '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order\nimport './yfm.scss'; // eslint-disable-line import/order\n\nexport type YfmConfigsOptions = YfmConfigsSpecsOptions & {};\n\nexport const YfmConfigs: ExtensionAuto<YfmConfigsOptions> = (builder, opts) => {\n // apply md-it-attrs plugin and ignore yfm lint token\n builder.use(YfmConfigsSpecs, opts);\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n attributes: {\n class: 'yfm yfm_no-list-reset yfm-editor',\n },\n },\n }),\n );\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ExtensionAuto } from "../../../../core/index.js";
|
|
2
2
|
import type { FileUploadHandler } from "../../../../utils/index.js";
|
|
3
3
|
export type YfmFilePasteOptions = {
|
|
4
4
|
fileUploadHandler: FileUploadHandler;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment, Slice } from 'prosemirror-model';
|
|
2
2
|
import { Plugin } from 'prosemirror-state';
|
|
3
3
|
import { dropPoint } from 'prosemirror-transform';
|
|
4
|
+
import { getLoggerFromState } from "../../../../core/index.js";
|
|
4
5
|
import { isFunction } from "../../../../lodash.js";
|
|
5
6
|
import { clipboardUtils } from "../../../behavior/Clipboard/index.js";
|
|
6
7
|
import { imageType } from "../../../markdown/index.js";
|
|
@@ -15,9 +16,15 @@ export const YfmFilePaste = (builder, opts) => {
|
|
|
15
16
|
props: {
|
|
16
17
|
handleDOMEvents: {
|
|
17
18
|
paste(view, e) {
|
|
19
|
+
const logger = getLoggerFromState(view.state);
|
|
18
20
|
const files = getPastedFiles(e.clipboardData);
|
|
19
21
|
if (files) {
|
|
20
22
|
e.preventDefault();
|
|
23
|
+
logger.event({
|
|
24
|
+
event: 'paste-files',
|
|
25
|
+
plugin: 'yfm-file-paste',
|
|
26
|
+
domEvent: 'paste',
|
|
27
|
+
});
|
|
21
28
|
new YfmFilesPasteUploadProcess(view, files, {
|
|
22
29
|
uploadHandler: opts.fileUploadHandler,
|
|
23
30
|
needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,
|
|
@@ -37,6 +44,13 @@ export const YfmFilePaste = (builder, opts) => {
|
|
|
37
44
|
if (dropPos === -1)
|
|
38
45
|
return false;
|
|
39
46
|
const posToInsert = dropPoint(view.state.doc, dropPos, createFakeFileSlice(view.state.schema));
|
|
47
|
+
const logger = getLoggerFromState(view.state);
|
|
48
|
+
logger.event({
|
|
49
|
+
event: 'drop-files',
|
|
50
|
+
plugin: 'yfm-file-paste',
|
|
51
|
+
domEvent: 'drop',
|
|
52
|
+
runProcess: posToInsert !== null,
|
|
53
|
+
});
|
|
40
54
|
if (posToInsert !== null) {
|
|
41
55
|
new YfmFilesPasteUploadProcess(view, files, {
|
|
42
56
|
pos: posToInsert,
|
|
@@ -74,7 +88,7 @@ class YfmFilesPasteUploadProcess extends YfmFilesUploadProcessBase {
|
|
|
74
88
|
if (imageType(schema)) {
|
|
75
89
|
this.createImage = createImageNode(imageType(schema), {
|
|
76
90
|
needDimensions: opts.needToSetDimensionsForUploadedImages,
|
|
77
|
-
});
|
|
91
|
+
}, this.logger);
|
|
78
92
|
}
|
|
79
93
|
}
|
|
80
94
|
getSkeletonInitPos() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmFile/YfmFilePaste/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAA0B,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmFile/YfmFilePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {type ExtensionAuto, getLoggerFromState} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler, UploadSuccessItem} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {imageType} from '../../../markdown';\nimport {createImageNode} from '../../ImgSize/utils'; // TODO: remove hard import\nimport {fileType} from '../YfmFileSpecs';\n\nimport {YfmFilesUploadProcessBase} from './upload';\n\nconst {isFilesOnly, isFilesFromHtml, isImageFile} = clipboardUtils;\n\nexport type YfmFilePasteOptions = {\n fileUploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nexport const YfmFilePaste: ExtensionAuto<YfmFilePasteOptions> = (builder, opts) => {\n if (!opts || !isFunction(opts.fileUploadHandler))\n throw new Error('YfmFilePaste extension: fileUploadHandler is not a function');\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const logger = getLoggerFromState(view.state);\n const files = getPastedFiles(e.clipboardData);\n if (files) {\n e.preventDefault();\n logger.event({\n event: 'paste-files',\n plugin: 'yfm-file-paste',\n domEvent: 'paste',\n });\n new YfmFilesPasteUploadProcess(view, files, {\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n return true;\n }\n return false;\n },\n drop(view, e) {\n // handle drop files from device\n if (view.dragging) return false;\n\n const files = getPastedFiles(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeFileSlice(view.state.schema),\n );\n\n const logger = getLoggerFromState(view.state);\n logger.event({\n event: 'drop-files',\n plugin: 'yfm-file-paste',\n domEvent: 'drop',\n runProcess: posToInsert !== null,\n });\n\n if (posToInsert !== null) {\n new YfmFilesPasteUploadProcess(view, files, {\n pos: posToInsert,\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n },\n }),\n builder.Priority.Low,\n );\n};\n\nfunction getPastedFiles(data: DataTransfer | null): File[] | null {\n if (!data) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n return Array.from(data.files);\n}\n\nfunction createFakeFileSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n fileType(schema).create({\n href: 'fake',\n download: 'file',\n }),\n ),\n 0,\n 0,\n );\n}\n\ntype YfmFilesPasteUploadProcessOptions = {\n pos?: number;\n uploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nclass YfmFilesPasteUploadProcess extends YfmFilesUploadProcessBase {\n protected readonly pos?: number;\n protected readonly createImage?;\n\n constructor(view: EditorView, files: readonly File[], opts: YfmFilesPasteUploadProcessOptions) {\n super(view, files, opts.uploadHandler);\n\n this.pos = opts.pos;\n\n const {schema} = this.view.state;\n if (imageType(schema)) {\n this.createImage = createImageNode(\n imageType(schema),\n {\n needDimensions: opts.needToSetDimensionsForUploadedImages,\n },\n this.logger,\n );\n }\n }\n\n protected getSkeletonInitPos(): number {\n return this.pos ?? this.view.state.tr.selection.from;\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return isImageFile(res.file) && this.createImage\n ? this.createImage(res)\n : this.createFile(res);\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import log from '@diplodoc/transform/lib/log';
|
|
2
|
-
import yfmPlugin from '@diplodoc/transform/lib/plugins/notes';
|
|
1
|
+
import log from '@diplodoc/transform/lib/log.js';
|
|
2
|
+
import yfmPlugin from '@diplodoc/transform/lib/plugins/notes/index.js';
|
|
3
3
|
import { NoteNode } from "./const.js";
|
|
4
4
|
import { parserTokens } from "./parser.js";
|
|
5
5
|
import { getSchemaSpecs } from "./schema.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gCAAgC,CAAC;AACjD,OAAO,SAAS,MAAM,gDAAgD,CAAC;AAKvE,OAAO,EAAC,QAAQ,EAAC,mBAAgB;AACjC,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAAC,cAAc,EAAC,oBAAiB;AACxC,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EAAC,QAAQ,IAAI,WAAW,EAAC,mBAAgB;AAChD,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,mBAAgB;AAShD,MAAM,CAAC,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;SACzC;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;SAC9C;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC5C,MAAM,EAAE;YACJ,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;SAChD;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/notes/index.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {NoteNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {NoteNode as YfmNoteNode} from './const';\nexport {noteType, noteTitleType} from './utils';\n\nexport type YfmNoteSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n yfmNoteTitlePlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const YfmNoteSpecs: ExtensionAuto<YfmNoteSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addNode(NoteNode.Note, () => ({\n spec: schemaSpecs[NoteNode.Note],\n toMd: serializerTokens[NoteNode.Note],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.Note],\n },\n }))\n .addNode(NoteNode.NoteTitle, () => ({\n spec: schemaSpecs[NoteNode.NoteTitle],\n toMd: serializerTokens[NoteNode.NoteTitle],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteTitle],\n },\n }))\n .addNode(NoteNode.NoteContent, () => ({\n spec: schemaSpecs[NoteNode.NoteContent],\n toMd: serializerTokens[NoteNode.NoteContent],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteContent],\n },\n }));\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import log from '@diplodoc/transform/lib/log';
|
|
2
|
-
import yfmTable from '@diplodoc/transform/lib/plugins/table';
|
|
1
|
+
import log from '@diplodoc/transform/lib/log.js';
|
|
2
|
+
import yfmTable from '@diplodoc/transform/lib/plugins/table/index.js';
|
|
3
3
|
import { YfmTableNode } from "./const.js";
|
|
4
4
|
import { parserTokens } from "./parser.js";
|
|
5
5
|
import { getSchemaSpecs } from "./schema.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gCAAgC,CAAC;AACjD,OAAO,QAAQ,MAAM,gDAAgD,CAAC;AAItE,OAAO,EAAC,YAAY,EAAC,mBAAgB;AACrC,OAAO,EAAC,YAAY,EAAC,oBAAiB;AACtC,OAAO,EAA6B,cAAc,EAAC,oBAAiB;AACpE,OAAO,EAAC,gBAAgB,EAAC,wBAAqB;AAE9C,OAAO,EAAC,YAAY,EAAC,mBAAgB;AACrC,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAC,mBAAgB;AAI1F,MAAM,CAAC,MAAM,aAAa,GAA+C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhF,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,GAAG,EAAC,CAAC,CAAC;SAC5C,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,EAAC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC;QACnC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC;QACxC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAC;KACtD,CAAC,CAAC;SACF,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmTable from '@diplodoc/transform/lib/plugins/table/index.js';\n\nimport type {ExtensionWithOptions} from '../../../../core';\n\nimport {YfmTableNode} from './const';\nimport {parserTokens} from './parser';\nimport {type YfmTableSchemaOptions, getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {YfmTableNode} from './const';\nexport {yfmTableType, yfmTableBodyType, yfmTableRowType, yfmTableCellType} from './utils';\n\nexport type YfmTableSpecsOptions = YfmTableSchemaOptions & {};\n\nexport const YfmTableSpecs: ExtensionWithOptions<YfmTableSpecsOptions> = (builder, options) => {\n const schemaSpecs = getSchemaSpecs(options, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmTable, {log}))\n .addNode(YfmTableNode.Table, () => ({\n spec: schemaSpecs[YfmTableNode.Table],\n toMd: serializerTokens[YfmTableNode.Table],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Table]},\n }))\n .addNode(YfmTableNode.Body, () => ({\n spec: schemaSpecs[YfmTableNode.Body],\n toMd: serializerTokens[YfmTableNode.Body],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Body]},\n }))\n .addNode(YfmTableNode.Row, () => ({\n spec: schemaSpecs[YfmTableNode.Row],\n toMd: serializerTokens[YfmTableNode.Row],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Row]},\n }))\n .addNode(YfmTableNode.Cell, () => ({\n spec: schemaSpecs[YfmTableNode.Cell],\n toMd: serializerTokens[YfmTableNode.Cell],\n fromMd: {tokenSpec: parserTokens[YfmTableNode.Cell]},\n }));\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { generateID } from '@diplodoc/transform/lib/plugins/utils';
|
|
1
|
+
import { generateID } from '@diplodoc/transform/lib/plugins/utils.js';
|
|
2
2
|
import { pType } from "../../base/BaseSchema/index.js";
|
|
3
3
|
import { TabAttrs, TabPanelAttrs, TabsAttrs, tabActiveClassname, tabPanelActiveClassname, tabPanelType, tabType, tabsListType, tabsType, } from "./const.js";
|
|
4
4
|
export const createYfmTabsCommand = (state, dispatch) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AAGpE,OAAO,EAAC,KAAK,EAAC,uCAA8B;AAE5C,OAAO,EACH,QAAQ,EACR,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,QAAQ,GACX,mBAAgB;AAEjB,MAAM,CAAC,MAAM,oBAAoB,GAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QAEvB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACjD;YACI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK;YACrC,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,OAAO;YAC3B,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,uBAAuB;SACjD,EACD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACxC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK;YACpB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB;YACpC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO;YAChC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM;YACvC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK;YAChC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAC,EAAE;YACvE,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YAClC,WAAW;SACd,CAAC,CAAC;QAEH,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,QAAQ,EAAE,oBAAoB;IAC9B,GAAG,EAAE,oBAAoB;CAC5B,CAAC","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils.js';\nimport type {Command} from 'prosemirror-state';\n\nimport {pType} from '../../base/BaseSchema';\n\nimport {\n TabAttrs,\n TabPanelAttrs,\n TabsAttrs,\n tabActiveClassname,\n tabPanelActiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\n\nexport const createYfmTabsCommand: Command = (state, dispatch) => {\n if (dispatch) {\n const {schema} = state;\n\n const tabId = generateID();\n const panelId = generateID();\n const yfmTabsList = tabsListType(schema);\n const yfmTabs = tabsType(schema);\n\n const yfmTabPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelActiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const yfmTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.class]: tabActiveClassname,\n [TabAttrs.ariaControls]: panelId,\n [TabAttrs.dataDiplodocIsActive]: 'true',\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n });\n\n const tabs = yfmTabs.create({[TabsAttrs.dataDiplodocGroup]: generateID()}, [\n yfmTabsList.create(null, [yfmTab]),\n yfmTabPanel,\n ]);\n\n dispatch(state.tr.replaceSelectionWith(tabs).scrollIntoView());\n }\n\n return true;\n};\n\nexport const createYfmTabs = {\n isEnable: createYfmTabsCommand,\n run: createYfmTabsCommand,\n};\n"]}
|