@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
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.YfmTableSpecs = exports.yfmTableCellType = exports.yfmTableRowType = exports.yfmTableBodyType = exports.yfmTableType = exports.YfmTableNode = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
5
|
+
const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
|
|
6
|
+
const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/table/index.js"));
|
|
7
7
|
const const_1 = require("./const.js");
|
|
8
8
|
const parser_1 = require("./parser.js");
|
|
9
9
|
const schema_1 = require("./schema.js");
|
|
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "yfmTableCellType", { enumerable: true, get: func
|
|
|
18
18
|
const YfmTableSpecs = (builder, options) => {
|
|
19
19
|
const schemaSpecs = (0, schema_1.getSchemaSpecs)(options, builder.context.get('placeholder'));
|
|
20
20
|
builder
|
|
21
|
-
.configureMd((md) => md.use(
|
|
21
|
+
.configureMd((md) => md.use(index_js_1.default, { log: log_js_1.default }))
|
|
22
22
|
.addNode(const_1.YfmTableNode.Table, () => ({
|
|
23
23
|
spec: schemaSpecs[const_1.YfmTableNode.Table],
|
|
24
24
|
toMd: serializer_1.serializerTokens[const_1.YfmTableNode.Table],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTable/YfmTableSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAiD;AACjD,sGAAsE;AAItE,sCAAqC;AACrC,wCAAsC;AACtC,wCAAoE;AACpE,gDAA8C;AAE9C,oCAAqC;AAA7B,qGAAA,YAAY,OAAA;AACpB,oCAA0F;AAAlF,qGAAA,YAAY,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAIlE,MAAM,aAAa,GAA+C,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IAC1F,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,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,kBAAQ,EAAE,EAAC,GAAG,EAAH,gBAAG,EAAC,CAAC,CAAC;SAC5C,OAAO,CAAC,oBAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,KAAK,CAAC;QAC1C,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,KAAK,CAAC,EAAC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,GAAG,CAAC;QACnC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,GAAG,CAAC;QACxC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,GAAG,CAAC,EAAC;KACtD,CAAC,CAAC;SACF,OAAO,CAAC,oBAAY,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,oBAAY,CAAC,IAAI,CAAC;QACpC,IAAI,EAAE,6BAAgB,CAAC,oBAAY,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,EAAC,SAAS,EAAE,qBAAY,CAAC,oBAAY,CAAC,IAAI,CAAC,EAAC;KACvD,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAzBW,QAAA,aAAa,iBAyBxB","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,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createYfmTabs = exports.createYfmTabsCommand = void 0;
|
|
4
|
-
const
|
|
4
|
+
const utils_js_1 = require("@diplodoc/transform/lib/plugins/utils.js");
|
|
5
5
|
const BaseSchema_1 = require("../../base/BaseSchema/index.js");
|
|
6
6
|
const const_1 = require("./const.js");
|
|
7
7
|
const createYfmTabsCommand = (state, dispatch) => {
|
|
8
8
|
if (dispatch) {
|
|
9
9
|
const { schema } = state;
|
|
10
|
-
const tabId = (0,
|
|
11
|
-
const panelId = (0,
|
|
10
|
+
const tabId = (0, utils_js_1.generateID)();
|
|
11
|
+
const panelId = (0, utils_js_1.generateID)();
|
|
12
12
|
const yfmTabsList = (0, const_1.tabsListType)(schema);
|
|
13
13
|
const yfmTabs = (0, const_1.tabsType)(schema);
|
|
14
14
|
const yfmTabPanel = (0, const_1.tabPanelType)(state.schema).create({
|
|
@@ -24,7 +24,7 @@ const createYfmTabsCommand = (state, dispatch) => {
|
|
|
24
24
|
[const_1.TabAttrs.dataDiplodocid]: tabId,
|
|
25
25
|
[const_1.TabAttrs.dataDiplodocKey]: tabId,
|
|
26
26
|
});
|
|
27
|
-
const tabs = yfmTabs.create({ [const_1.TabsAttrs.dataDiplodocGroup]: (0,
|
|
27
|
+
const tabs = yfmTabs.create({ [const_1.TabsAttrs.dataDiplodocGroup]: (0, utils_js_1.generateID)() }, [
|
|
28
28
|
yfmTabsList.create(null, [yfmTab]),
|
|
29
29
|
yfmTabPanel,
|
|
30
30
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/actions.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AAGpE,+DAA4C;AAE5C,sCAUiB;AAEV,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,IAAA,qBAAU,GAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAA,qBAAU,GAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,gBAAQ,EAAC,MAAM,CAAC,CAAC;QAEjC,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CACjD;YACI,CAAC,qBAAa,CAAC,cAAc,CAAC,EAAE,KAAK;YACrC,CAAC,qBAAa,CAAC,EAAE,CAAC,EAAE,OAAO;YAC3B,CAAC,qBAAa,CAAC,KAAK,CAAC,EAAE,+BAAuB;SACjD,EACD,IAAA,kBAAK,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;YACxC,CAAC,gBAAQ,CAAC,EAAE,CAAC,EAAE,KAAK;YACpB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,0BAAkB;YACpC,CAAC,gBAAQ,CAAC,YAAY,CAAC,EAAE,OAAO;YAChC,CAAC,gBAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM;YACvC,CAAC,gBAAQ,CAAC,cAAc,CAAC,EAAE,KAAK;YAChC,CAAC,gBAAQ,CAAC,eAAe,CAAC,EAAE,KAAK;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAC,CAAC,iBAAS,CAAC,iBAAiB,CAAC,EAAE,IAAA,qBAAU,GAAE,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;AAnCW,QAAA,oBAAoB,wBAmC/B;AAEW,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,4BAAoB;IAC9B,GAAG,EAAE,4BAAoB;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"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.joinBackwardToOpenTab = exports.removeTabWhenCursorAtTheStartOfTab = exports.removeTab = exports.createTab = exports.liftEmptyBlockFromTabPanel = exports.tabEnter = exports.tabPanelArrowDown = exports.dragAutoSwitch = void 0;
|
|
4
|
-
const
|
|
4
|
+
const utils_js_1 = require("@diplodoc/transform/lib/plugins/utils.js");
|
|
5
5
|
const prosemirror_state_1 = require("prosemirror-state");
|
|
6
6
|
const prosemirror_utils_1 = require("prosemirror-utils");
|
|
7
7
|
const __1 = require("../../index.js");
|
|
8
8
|
const lodash_1 = require("../../../lodash.js");
|
|
9
9
|
const helpers_1 = require("../../../table-utils/helpers.js");
|
|
10
|
-
const
|
|
10
|
+
const utils_1 = require("../../../utils/index.js");
|
|
11
11
|
const selection_1 = require("../../../utils/selection.js");
|
|
12
12
|
const const_1 = require("./YfmTabsSpecs/const.js");
|
|
13
13
|
const const_2 = require("./const.js");
|
|
14
|
-
const
|
|
14
|
+
const utils_2 = require("./utils.js");
|
|
15
15
|
const dragAutoSwitch = () => new prosemirror_state_1.Plugin({
|
|
16
16
|
view: TabsAutoSwitchOnDragOver.view,
|
|
17
17
|
});
|
|
@@ -64,7 +64,7 @@ class TabsAutoSwitchOnDragOver {
|
|
|
64
64
|
}
|
|
65
65
|
_switchTab() {
|
|
66
66
|
if (this._editorView.dragging && this._tabElem) {
|
|
67
|
-
(0,
|
|
67
|
+
(0, utils_2.switchTabByElem)(this._tabElem);
|
|
68
68
|
}
|
|
69
69
|
this._clear();
|
|
70
70
|
}
|
|
@@ -72,7 +72,7 @@ class TabsAutoSwitchOnDragOver {
|
|
|
72
72
|
const tabPanelArrowDown = (state, dispatch, view) => {
|
|
73
73
|
const { selection: sel } = state;
|
|
74
74
|
const tabsParentNode = (0, prosemirror_utils_1.findParentNodeOfType)((0, const_2.tabsType)(state.schema))(state.selection);
|
|
75
|
-
if ((0,
|
|
75
|
+
if ((0, utils_2.atEndOfPanel)(view) && view?.endOfTextblock('down')) {
|
|
76
76
|
const [direction, $cursor] = ['after', sel.$to];
|
|
77
77
|
let $pos;
|
|
78
78
|
if ((0, selection_1.isTextSelection)(sel)) {
|
|
@@ -105,8 +105,8 @@ const liftEmptyBlockFromTabPanel = (state, dispatch) => {
|
|
|
105
105
|
if (!$cursor || $cursor.parent.content.size)
|
|
106
106
|
return false;
|
|
107
107
|
if ($cursor.depth > 2 && // depth must be at least 3
|
|
108
|
-
(0,
|
|
109
|
-
(0,
|
|
108
|
+
(0, utils_1.isSameNodeType)($cursor.node(-1), (0, const_2.tabPanelType)(schema)) &&
|
|
109
|
+
(0, utils_1.isSameNodeType)($cursor.node(-2), (0, const_2.tabsType)(schema))) {
|
|
110
110
|
// current texblock is last child
|
|
111
111
|
if ($cursor.after() === $cursor.end(-1)) {
|
|
112
112
|
if (dispatch) {
|
|
@@ -131,8 +131,8 @@ const createTab = (afterTab, tabsParentNode) => (state, dispatch, view) => {
|
|
|
131
131
|
});
|
|
132
132
|
const afterPanelNode = tabPanels.filter((tabPanelNode) => tabPanelNode.node.attrs[const_1.TabPanelAttrs.ariaLabelledby] ===
|
|
133
133
|
afterTab.node.attrs[const_1.TabAttrs.dataDiplodocid])[0];
|
|
134
|
-
const tabId = (0,
|
|
135
|
-
const panelId = (0,
|
|
134
|
+
const tabId = (0, utils_js_1.generateID)();
|
|
135
|
+
const panelId = (0, utils_js_1.generateID)();
|
|
136
136
|
const newPanel = (0, const_2.tabPanelType)(state.schema).create({
|
|
137
137
|
[const_1.TabPanelAttrs.ariaLabelledby]: tabId,
|
|
138
138
|
[const_1.TabPanelAttrs.id]: panelId,
|
|
@@ -161,7 +161,7 @@ const createTab = (afterTab, tabsParentNode) => (state, dispatch, view) => {
|
|
|
161
161
|
.setSelection(prosemirror_state_1.TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1)));
|
|
162
162
|
view?.focus();
|
|
163
163
|
if (view) {
|
|
164
|
-
(0,
|
|
164
|
+
(0, utils_2.execAfterPaint)(() => (0, utils_2.switchTabById)(view.dom, tabId));
|
|
165
165
|
}
|
|
166
166
|
return true;
|
|
167
167
|
};
|
|
@@ -201,7 +201,7 @@ const removeTab = (tabToRemove, tabsParentNode) => (state, dispatch, view) => {
|
|
|
201
201
|
.setSelection(prosemirror_state_1.TextSelection.create(tr.doc, tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1)));
|
|
202
202
|
// Set new active tab
|
|
203
203
|
if (view)
|
|
204
|
-
(0,
|
|
204
|
+
(0, utils_2.execAfterPaint)(() => (0, utils_2.switchTabById)(view.dom, newActiveTabId));
|
|
205
205
|
}
|
|
206
206
|
dispatch(tr);
|
|
207
207
|
view?.focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/plugins.ts"],"names":[],"mappings":"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","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils';\nimport type {Node} from 'prosemirror-model';\nimport {type Command, Plugin, type PluginView, TextSelection} from 'prosemirror-state';\nimport {\n type NodeWithPos,\n findChildren,\n findDomRefAtPos,\n findParentNodeOfType,\n findParentNodeOfTypeClosestToPos,\n // @ts-ignore // TODO: fix cjs build\n} from 'prosemirror-utils';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {\n createFakeParagraph,\n findFakeParaPosClosestToPos,\n findFakeParaPosForTextSelection,\n isGapCursorSelection,\n pType,\n} from '../../';\nimport {throttle} from '../../../lodash';\nimport {findChildIndex} from '../../../table-utils/helpers';\nimport {isSameNodeType} from '../../../utils';\nimport {get$Cursor, isTextSelection} from '../../../utils/selection';\n\nimport {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const';\nimport {\n tabInactiveClassname,\n tabPanelActiveClassname,\n tabPanelInactiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\nimport {atEndOfPanel, execAfterPaint, switchTabByElem, switchTabById} from './utils';\n\nexport const dragAutoSwitch = () =>\n new Plugin({\n view: TabsAutoSwitchOnDragOver.view,\n });\n\nclass TabsAutoSwitchOnDragOver implements PluginView {\n private static readonly TAB_SELECTOR = '.yfm-tab:not([data-diplodoc-is-active=true])';\n private static readonly OPEN_TIMEOUT = 500; //ms\n private static readonly THROTTLE_WAIT = 50; //ms\n\n static readonly view = (view: EditorView): PluginView => new this(view);\n\n private _tabElem: HTMLElement | null = null;\n private _editorView: EditorView;\n private _timeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _docListener;\n\n constructor(view: EditorView) {\n this._editorView = view;\n this._docListener = throttle(\n this._onDocEvent.bind(this),\n TabsAutoSwitchOnDragOver.THROTTLE_WAIT,\n );\n document.addEventListener('mousemove', this._docListener);\n document.addEventListener('dragover', this._docListener);\n }\n\n destroy(): void {\n this._clear();\n this._docListener.cancel();\n document.removeEventListener('mousemove', this._docListener);\n document.removeEventListener('dragover', this._docListener);\n }\n\n private _onDocEvent(event: MouseEvent) {\n const view = this._editorView;\n if (!view.dragging) return;\n const pos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (pos) {\n const elem = findDomRefAtPos(pos.pos, view.domAtPos.bind(view)) as HTMLElement;\n const tabElem = elem.closest(TabsAutoSwitchOnDragOver.TAB_SELECTOR);\n if (tabElem === this._tabElem) return;\n this._clear();\n if (tabElem) this._setTabElem(tabElem as HTMLElement);\n }\n }\n\n private _clear() {\n if (this._timeout !== null) clearTimeout(this._timeout);\n this._timeout = null;\n this._tabElem = null;\n }\n\n private _setTabElem(elem: HTMLElement) {\n this._tabElem = elem;\n this._timeout = setTimeout(\n this._switchTab.bind(this),\n TabsAutoSwitchOnDragOver.OPEN_TIMEOUT,\n );\n }\n\n private _switchTab() {\n if (this._editorView.dragging && this._tabElem) {\n switchTabByElem(this._tabElem);\n }\n this._clear();\n }\n}\n\nexport const tabPanelArrowDown: Command = (state, dispatch, view) => {\n const {selection: sel} = state;\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (atEndOfPanel(view) && view?.endOfTextblock('down')) {\n const [direction, $cursor] = ['after', sel.$to] as const;\n let $pos;\n if (isTextSelection(sel)) {\n $pos =\n findFakeParaPosForTextSelection(sel, direction) ??\n findFakeParaPosClosestToPos($cursor, $cursor.depth - 2, direction);\n }\n if (isGapCursorSelection(sel) && tabsParentNode) {\n $pos = state.doc.resolve(tabsParentNode.pos + tabsParentNode.node.nodeSize);\n }\n if ($pos) {\n dispatch?.(createFakeParagraph(state.tr, $pos, direction).scrollIntoView());\n return true;\n }\n }\n\n return false;\n};\n\nexport const tabEnter: Command = (state) => {\n const $cursor = get$Cursor(state.selection);\n return $cursor?.node($cursor.depth).type === tabType(state.schema);\n};\n\nexport const liftEmptyBlockFromTabPanel: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), tabPanelType(schema)) &&\n isSameNodeType($cursor.node(-2), tabsType(schema))\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n const copeidNode = $cursor.parent.copy();\n const tabsAfter = $cursor.after(-2);\n\n const {tr} = state;\n\n tr.insert(tabsAfter, copeidNode)\n .delete($cursor.before(), $cursor.after())\n .setSelection(TextSelection.create(tr.doc, tr.mapping.map(tabsAfter)));\n\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nexport const createTab: (afterTab: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (afterTab, tabsParentNode) => (state, dispatch, view) => {\n const tabNodes = findChildren(\n tabsParentNode.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const afterPanelNode = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n afterTab.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n const tabId = generateID();\n const panelId = generateID();\n\n const newPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelInactiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const newTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n [TabAttrs.dataDiplodocIsActive]: 'false',\n [TabAttrs.class]: tabInactiveClassname,\n [TabAttrs.role]: 'tab',\n [TabAttrs.ariaControls]: panelId,\n });\n\n const {tr} = state;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n dispatch?.(\n tr\n .insert(afterPanelNode.pos + afterPanelNode.node.nodeSize, newPanel)\n .insert(afterTab.pos + afterTab.node.nodeSize, newTab)\n .setSelection(\n TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1),\n ),\n );\n\n view?.focus();\n\n if (view) {\n execAfterPaint(() => switchTabById(view.dom, tabId));\n }\n\n return true;\n };\n\nexport const removeTab: (tabToRemove: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (tabToRemove, tabsParentNode) => (state, dispatch, view) => {\n const tabList = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabsListType(state.schema).name;\n })[0];\n const tabToRemoveIdx = findChildIndex(tabList.node, tabToRemove.node);\n\n const tabNodes = findChildren(\n tabList.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const panelToRemove = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n tabToRemove.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n if (panelToRemove && dispatch) {\n const {tr} = state;\n\n if (tabNodes.length <= 1) {\n tr.delete(tabsParentNode.pos, tabsParentNode.pos + tabsParentNode.node.nodeSize);\n } else {\n const newTabIdx = tabToRemoveIdx - 1 < 0 ? 1 : tabToRemoveIdx - 1;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 2;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n const newTabNode = tabNodes[newTabIdx];\n const newActiveTabId: string = newTabNode.node.attrs[TabAttrs.dataDiplodocid];\n\n tr\n // Delete panel\n .delete(panelToRemove.pos, panelToRemove.pos + panelToRemove.node.nodeSize)\n // Delete tab\n .delete(tabToRemove.pos, tabToRemove.pos + tabToRemove.node.nodeSize)\n .setSelection(\n TextSelection.create(\n tr.doc,\n tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1),\n ),\n );\n\n // Set new active tab\n if (view) execAfterPaint(() => switchTabById(view.dom, newActiveTabId));\n }\n dispatch(tr);\n view?.focus();\n\n return true;\n }\n\n return false;\n };\n\nexport const removeTabWhenCursorAtTheStartOfTab: Command = (state, dispatch) => {\n const tabToRemove = findParentNodeOfType(tabType(state.schema))(state.selection);\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (\n tabsParentNode &&\n tabToRemove &&\n state.selection.from === tabToRemove.pos + 1 &&\n state.selection.from === state.selection.to\n ) {\n return removeTab(tabToRemove, tabsParentNode)(state, dispatch);\n }\n\n return false;\n};\n\nexport const joinBackwardToOpenTab: Command = (state, dispatch) => {\n const $cursor = get$Cursor(state.selection);\n if (!$cursor || $cursor.parentOffset !== 0) return false;\n // --> cursor at start of textblock\n const textBlockIndex = $cursor.index($cursor.depth - 1);\n if (textBlockIndex <= 0) return false;\n const nodeBefore = $cursor.node($cursor.depth - 1).child(textBlockIndex - 1);\n\n if (nodeBefore.type !== tabsType(state.schema)) {\n return false;\n }\n\n const tabsParent = findParentNodeOfTypeClosestToPos(\n state.doc.resolve($cursor.pos - 2),\n tabsType(state.schema),\n );\n\n if (!tabsParent) {\n return false;\n }\n const activePanel = findChildren(\n tabsParent.node,\n (n: Node) => n.attrs.class === tabPanelActiveClassname,\n )[0];\n\n if (dispatch) {\n const posEndOfLastLayoutCell = activePanel.pos + tabsParent.pos + activePanel.node.nodeSize;\n const tr = state.tr;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(posEndOfLastLayoutCell, $cursor.parent);\n tr.setSelection(TextSelection.create(tr.doc, posEndOfLastLayoutCell + 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmTabs/plugins.ts"],"names":[],"mappings":"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","sourcesContent":["import {generateID} from '@diplodoc/transform/lib/plugins/utils.js';\nimport type {Node} from 'prosemirror-model';\nimport {type Command, Plugin, type PluginView, TextSelection} from 'prosemirror-state';\nimport {\n type NodeWithPos,\n findChildren,\n findDomRefAtPos,\n findParentNodeOfType,\n findParentNodeOfTypeClosestToPos,\n // @ts-ignore // TODO: fix cjs build\n} from 'prosemirror-utils';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {\n createFakeParagraph,\n findFakeParaPosClosestToPos,\n findFakeParaPosForTextSelection,\n isGapCursorSelection,\n pType,\n} from '../../';\nimport {throttle} from '../../../lodash';\nimport {findChildIndex} from '../../../table-utils/helpers';\nimport {isSameNodeType} from '../../../utils';\nimport {get$Cursor, isTextSelection} from '../../../utils/selection';\n\nimport {TabAttrs, TabPanelAttrs} from './YfmTabsSpecs/const';\nimport {\n tabInactiveClassname,\n tabPanelActiveClassname,\n tabPanelInactiveClassname,\n tabPanelType,\n tabType,\n tabsListType,\n tabsType,\n} from './const';\nimport {atEndOfPanel, execAfterPaint, switchTabByElem, switchTabById} from './utils';\n\nexport const dragAutoSwitch = () =>\n new Plugin({\n view: TabsAutoSwitchOnDragOver.view,\n });\n\nclass TabsAutoSwitchOnDragOver implements PluginView {\n private static readonly TAB_SELECTOR = '.yfm-tab:not([data-diplodoc-is-active=true])';\n private static readonly OPEN_TIMEOUT = 500; //ms\n private static readonly THROTTLE_WAIT = 50; //ms\n\n static readonly view = (view: EditorView): PluginView => new this(view);\n\n private _tabElem: HTMLElement | null = null;\n private _editorView: EditorView;\n private _timeout: ReturnType<typeof setTimeout> | null = null;\n private readonly _docListener;\n\n constructor(view: EditorView) {\n this._editorView = view;\n this._docListener = throttle(\n this._onDocEvent.bind(this),\n TabsAutoSwitchOnDragOver.THROTTLE_WAIT,\n );\n document.addEventListener('mousemove', this._docListener);\n document.addEventListener('dragover', this._docListener);\n }\n\n destroy(): void {\n this._clear();\n this._docListener.cancel();\n document.removeEventListener('mousemove', this._docListener);\n document.removeEventListener('dragover', this._docListener);\n }\n\n private _onDocEvent(event: MouseEvent) {\n const view = this._editorView;\n if (!view.dragging) return;\n const pos = view.posAtCoords({left: event.clientX, top: event.clientY});\n if (pos) {\n const elem = findDomRefAtPos(pos.pos, view.domAtPos.bind(view)) as HTMLElement;\n const tabElem = elem.closest(TabsAutoSwitchOnDragOver.TAB_SELECTOR);\n if (tabElem === this._tabElem) return;\n this._clear();\n if (tabElem) this._setTabElem(tabElem as HTMLElement);\n }\n }\n\n private _clear() {\n if (this._timeout !== null) clearTimeout(this._timeout);\n this._timeout = null;\n this._tabElem = null;\n }\n\n private _setTabElem(elem: HTMLElement) {\n this._tabElem = elem;\n this._timeout = setTimeout(\n this._switchTab.bind(this),\n TabsAutoSwitchOnDragOver.OPEN_TIMEOUT,\n );\n }\n\n private _switchTab() {\n if (this._editorView.dragging && this._tabElem) {\n switchTabByElem(this._tabElem);\n }\n this._clear();\n }\n}\n\nexport const tabPanelArrowDown: Command = (state, dispatch, view) => {\n const {selection: sel} = state;\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (atEndOfPanel(view) && view?.endOfTextblock('down')) {\n const [direction, $cursor] = ['after', sel.$to] as const;\n let $pos;\n if (isTextSelection(sel)) {\n $pos =\n findFakeParaPosForTextSelection(sel, direction) ??\n findFakeParaPosClosestToPos($cursor, $cursor.depth - 2, direction);\n }\n if (isGapCursorSelection(sel) && tabsParentNode) {\n $pos = state.doc.resolve(tabsParentNode.pos + tabsParentNode.node.nodeSize);\n }\n if ($pos) {\n dispatch?.(createFakeParagraph(state.tr, $pos, direction).scrollIntoView());\n return true;\n }\n }\n\n return false;\n};\n\nexport const tabEnter: Command = (state) => {\n const $cursor = get$Cursor(state.selection);\n return $cursor?.node($cursor.depth).type === tabType(state.schema);\n};\n\nexport const liftEmptyBlockFromTabPanel: Command = (state, dispatch) => {\n const {selection, schema} = state;\n if (!isTextSelection(selection)) return false;\n\n const {$cursor} = selection;\n\n // cursor should be inside an empty textblock\n if (!$cursor || $cursor.parent.content.size) return false;\n\n if (\n $cursor.depth > 2 && // depth must be at least 3\n isSameNodeType($cursor.node(-1), tabPanelType(schema)) &&\n isSameNodeType($cursor.node(-2), tabsType(schema))\n ) {\n // current texblock is last child\n if ($cursor.after() === $cursor.end(-1)) {\n if (dispatch) {\n const copeidNode = $cursor.parent.copy();\n const tabsAfter = $cursor.after(-2);\n\n const {tr} = state;\n\n tr.insert(tabsAfter, copeidNode)\n .delete($cursor.before(), $cursor.after())\n .setSelection(TextSelection.create(tr.doc, tr.mapping.map(tabsAfter)));\n\n dispatch(tr.scrollIntoView());\n }\n return true;\n }\n }\n return false;\n};\n\nexport const createTab: (afterTab: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (afterTab, tabsParentNode) => (state, dispatch, view) => {\n const tabNodes = findChildren(\n tabsParentNode.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const afterPanelNode = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n afterTab.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n const tabId = generateID();\n const panelId = generateID();\n\n const newPanel = tabPanelType(state.schema).create(\n {\n [TabPanelAttrs.ariaLabelledby]: tabId,\n [TabPanelAttrs.id]: panelId,\n [TabPanelAttrs.class]: tabPanelInactiveClassname,\n },\n pType(state.schema).createAndFill(),\n );\n const newTab = tabType(state.schema).create({\n [TabAttrs.id]: tabId,\n [TabAttrs.dataDiplodocid]: tabId,\n [TabAttrs.dataDiplodocKey]: tabId,\n [TabAttrs.dataDiplodocIsActive]: 'false',\n [TabAttrs.class]: tabInactiveClassname,\n [TabAttrs.role]: 'tab',\n [TabAttrs.ariaControls]: panelId,\n });\n\n const {tr} = state;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n dispatch?.(\n tr\n .insert(afterPanelNode.pos + afterPanelNode.node.nodeSize, newPanel)\n .insert(afterTab.pos + afterTab.node.nodeSize, newTab)\n .setSelection(\n TextSelection.create(tr.doc, afterTab.pos + afterTab.node.nodeSize + 1),\n ),\n );\n\n view?.focus();\n\n if (view) {\n execAfterPaint(() => switchTabById(view.dom, tabId));\n }\n\n return true;\n };\n\nexport const removeTab: (tabToRemove: NodeWithPos, tabsParentNode: NodeWithPos) => Command =\n (tabToRemove, tabsParentNode) => (state, dispatch, view) => {\n const tabList = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabsListType(state.schema).name;\n })[0];\n const tabToRemoveIdx = findChildIndex(tabList.node, tabToRemove.node);\n\n const tabNodes = findChildren(\n tabList.node,\n (node: Node) => node.type.name === tabType(state.schema).name,\n );\n\n const tabPanels = findChildren(tabsParentNode.node, (tabNode: Node) => {\n return tabNode.type.name === tabPanelType(state.schema).name;\n });\n\n const panelToRemove = tabPanels.filter(\n (tabPanelNode: {node: Node}) =>\n tabPanelNode.node.attrs[TabPanelAttrs.ariaLabelledby] ===\n tabToRemove.node.attrs[TabAttrs.dataDiplodocid],\n )[0];\n\n if (panelToRemove && dispatch) {\n const {tr} = state;\n\n if (tabNodes.length <= 1) {\n tr.delete(tabsParentNode.pos, tabsParentNode.pos + tabsParentNode.node.nodeSize);\n } else {\n const newTabIdx = tabToRemoveIdx - 1 < 0 ? 1 : tabToRemoveIdx - 1;\n\n // Change relative pos to absolute\n tabNodes.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 2;\n });\n\n tabPanels.forEach((v: {pos: number}) => {\n v.pos = v.pos + tabsParentNode.pos + 1;\n });\n\n const newTabNode = tabNodes[newTabIdx];\n const newActiveTabId: string = newTabNode.node.attrs[TabAttrs.dataDiplodocid];\n\n tr\n // Delete panel\n .delete(panelToRemove.pos, panelToRemove.pos + panelToRemove.node.nodeSize)\n // Delete tab\n .delete(tabToRemove.pos, tabToRemove.pos + tabToRemove.node.nodeSize)\n .setSelection(\n TextSelection.create(\n tr.doc,\n tr.mapping.map(newTabNode.pos + newTabNode.node.nodeSize - 1),\n ),\n );\n\n // Set new active tab\n if (view) execAfterPaint(() => switchTabById(view.dom, newActiveTabId));\n }\n dispatch(tr);\n view?.focus();\n\n return true;\n }\n\n return false;\n };\n\nexport const removeTabWhenCursorAtTheStartOfTab: Command = (state, dispatch) => {\n const tabToRemove = findParentNodeOfType(tabType(state.schema))(state.selection);\n const tabsParentNode = findParentNodeOfType(tabsType(state.schema))(state.selection);\n\n if (\n tabsParentNode &&\n tabToRemove &&\n state.selection.from === tabToRemove.pos + 1 &&\n state.selection.from === state.selection.to\n ) {\n return removeTab(tabToRemove, tabsParentNode)(state, dispatch);\n }\n\n return false;\n};\n\nexport const joinBackwardToOpenTab: Command = (state, dispatch) => {\n const $cursor = get$Cursor(state.selection);\n if (!$cursor || $cursor.parentOffset !== 0) return false;\n // --> cursor at start of textblock\n const textBlockIndex = $cursor.index($cursor.depth - 1);\n if (textBlockIndex <= 0) return false;\n const nodeBefore = $cursor.node($cursor.depth - 1).child(textBlockIndex - 1);\n\n if (nodeBefore.type !== tabsType(state.schema)) {\n return false;\n }\n\n const tabsParent = findParentNodeOfTypeClosestToPos(\n state.doc.resolve($cursor.pos - 2),\n tabsType(state.schema),\n );\n\n if (!tabsParent) {\n return false;\n }\n const activePanel = findChildren(\n tabsParent.node,\n (n: Node) => n.attrs.class === tabPanelActiveClassname,\n )[0];\n\n if (dispatch) {\n const posEndOfLastLayoutCell = activePanel.pos + tabsParent.pos + activePanel.node.nodeSize;\n const tr = state.tr;\n tr.delete($cursor.before(), $cursor.after());\n tr.insert(posEndOfLastLayoutCell, $cursor.parent);\n tr.setSelection(TextSelection.create(tr.doc, posEndOfLastLayoutCell + 1));\n dispatch(tr.scrollIntoView());\n }\n\n return true;\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const i18n: <G extends "
|
|
1
|
+
export declare const i18n: <G extends "info" | "remove" | "alert" | "tip" | "warning", S extends string>(key: G | (string extends S ? S : never), params?: {
|
|
2
2
|
[key: string]: any;
|
|
3
3
|
}) => S extends G ? {
|
|
4
4
|
info: string;
|
package/build/cjs/logger.d.ts
CHANGED
|
@@ -1,16 +1,82 @@
|
|
|
1
|
+
import { type Listener, type Receiver } from "./utils/event-emitter.js";
|
|
2
|
+
type MsgObj = {
|
|
3
|
+
msg: string;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
};
|
|
6
|
+
type ErrObj = {
|
|
7
|
+
error: any;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
type EventObj = {
|
|
11
|
+
event: string;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
};
|
|
14
|
+
export declare namespace Logger2 {
|
|
15
|
+
type LogData = MsgObj;
|
|
16
|
+
type WarnData = MsgObj;
|
|
17
|
+
type ErrorData = ErrObj;
|
|
18
|
+
type ActionData = MdEditorLogger.ActionData;
|
|
19
|
+
type MetricsData = MdEditorLogger.MetricsData;
|
|
20
|
+
type EventData = EventObj;
|
|
21
|
+
type ReceiverDataMap = {
|
|
22
|
+
log: LogData;
|
|
23
|
+
warn: WarnData;
|
|
24
|
+
error: ErrorData;
|
|
25
|
+
event: EventData;
|
|
26
|
+
action: ActionData;
|
|
27
|
+
metrics: MetricsData;
|
|
28
|
+
};
|
|
29
|
+
interface LogReceiver extends Receiver<ReceiverDataMap> {
|
|
30
|
+
}
|
|
31
|
+
interface LogEmitter {
|
|
32
|
+
/** Log a regular message */
|
|
33
|
+
log(msg: string, ...data: object[]): void;
|
|
34
|
+
/** Log a warning message */
|
|
35
|
+
warn(msg: string, ...data: object[]): void;
|
|
36
|
+
/** Log an error */
|
|
37
|
+
error(err: string | Error | unknown, ...data: object[]): void;
|
|
38
|
+
/** Log an event triggered in editor. For example, changing mode, pasting, or otherwise */
|
|
39
|
+
event(data: Logger2.EventData): void;
|
|
40
|
+
/** Log the action called in editor and its source (from toolbar, or hotkeys, etc.) */
|
|
41
|
+
action(data: Logger2.ActionData): void;
|
|
42
|
+
/** Log metric data, such as parsing or execution time */
|
|
43
|
+
metrics(data: Logger2.MetricsData): void;
|
|
44
|
+
}
|
|
45
|
+
interface ILogger extends Logger2.LogEmitter, Logger2.LogReceiver {
|
|
46
|
+
/** Create nested logger with bound parameters */
|
|
47
|
+
nested(params: object): ILogger;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export declare class Logger2 implements Logger2.ILogger {
|
|
51
|
+
#private;
|
|
52
|
+
log(msg: string, ...data: object[]): void;
|
|
53
|
+
warn(msg: string, ...data: object[]): void;
|
|
54
|
+
error(err: string | Error | unknown, ...data: object[]): void;
|
|
55
|
+
action(data: Logger2.ActionData): void;
|
|
56
|
+
metrics(data: Logger2.MetricsData): void;
|
|
57
|
+
event(data: Logger2.EventData): void;
|
|
58
|
+
nested(params: object): Logger2.ILogger;
|
|
59
|
+
on<K extends keyof Logger2.ReceiverDataMap>(type: K, listener: Listener<Logger2.ReceiverDataMap[K]>): void;
|
|
60
|
+
off<K extends keyof Logger2.ReceiverDataMap>(type: K, listener: Listener<Logger2.ReceiverDataMap[K]>): void;
|
|
61
|
+
}
|
|
1
62
|
declare global {
|
|
63
|
+
/** @deprecated */
|
|
2
64
|
namespace MdEditorLogger {
|
|
65
|
+
/** @deprecated */
|
|
3
66
|
type MetricsData = {
|
|
4
67
|
component: string;
|
|
5
68
|
event: string;
|
|
6
69
|
duration?: number;
|
|
7
70
|
meta?: Record<string, any>;
|
|
71
|
+
[key: string]: any;
|
|
8
72
|
};
|
|
73
|
+
/** @deprecated */
|
|
9
74
|
interface ActionData {
|
|
10
75
|
action: string;
|
|
11
76
|
source: string;
|
|
12
77
|
[key: string]: any;
|
|
13
78
|
}
|
|
79
|
+
/** @deprecated */
|
|
14
80
|
interface Logger {
|
|
15
81
|
log(...data: any[]): void;
|
|
16
82
|
info(...data: any[]): void;
|
|
@@ -19,10 +85,12 @@ declare global {
|
|
|
19
85
|
metrics(data: MetricsData): void;
|
|
20
86
|
action(data: ActionData): void;
|
|
21
87
|
}
|
|
88
|
+
/** @deprecated */
|
|
22
89
|
interface Settings extends Partial<Logger> {
|
|
23
90
|
}
|
|
24
91
|
}
|
|
25
92
|
}
|
|
93
|
+
/** @deprecated */
|
|
26
94
|
declare class Logger implements MdEditorLogger.Logger {
|
|
27
95
|
#private;
|
|
28
96
|
get log(): (...data: any[]) => void;
|
|
@@ -39,5 +107,12 @@ declare class Logger implements MdEditorLogger.Logger {
|
|
|
39
107
|
*/
|
|
40
108
|
createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger;
|
|
41
109
|
}
|
|
110
|
+
/** @deprecated */
|
|
42
111
|
export declare const logger: Logger;
|
|
112
|
+
/**
|
|
113
|
+
* Alias for global singleton logger instance
|
|
114
|
+
*
|
|
115
|
+
* @deprecated
|
|
116
|
+
*/
|
|
117
|
+
export declare const globalLogger: Logger;
|
|
43
118
|
export {};
|
package/build/cjs/logger.js
CHANGED
|
@@ -1,7 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logger = void 0;
|
|
3
|
+
exports.globalLogger = exports.logger = exports.Logger2 = void 0;
|
|
4
|
+
const event_emitter_1 = require("./utils/event-emitter.js");
|
|
5
|
+
class Logger2 {
|
|
6
|
+
#emitter = new event_emitter_1.SafeEventEmitter();
|
|
7
|
+
log(msg, ...data) {
|
|
8
|
+
const obj = Object.assign({}, ...data);
|
|
9
|
+
const logData = Object.assign(obj, { msg });
|
|
10
|
+
this.#emitter.emit('log', logData);
|
|
11
|
+
}
|
|
12
|
+
warn(msg, ...data) {
|
|
13
|
+
const obj = Object.assign({}, ...data);
|
|
14
|
+
const warnData = Object.assign(obj, { msg });
|
|
15
|
+
this.#emitter.emit('warn', warnData);
|
|
16
|
+
}
|
|
17
|
+
error(err, ...data) {
|
|
18
|
+
const error = typeof err === 'string' ? Error(err) : err;
|
|
19
|
+
const obj = Object.assign({}, ...data);
|
|
20
|
+
const errorData = Object.assign(obj, { error });
|
|
21
|
+
this.#emitter.emit('error', errorData);
|
|
22
|
+
}
|
|
23
|
+
action(data) {
|
|
24
|
+
this.#emitter.emit('action', data);
|
|
25
|
+
}
|
|
26
|
+
metrics(data) {
|
|
27
|
+
this.#emitter.emit('metrics', data);
|
|
28
|
+
}
|
|
29
|
+
event(data) {
|
|
30
|
+
this.#emitter.emit('event', data);
|
|
31
|
+
}
|
|
32
|
+
nested(params) {
|
|
33
|
+
const self = this;
|
|
34
|
+
const paramsKey = Symbol();
|
|
35
|
+
const logger = {
|
|
36
|
+
[paramsKey]: params,
|
|
37
|
+
log(msg, ...data) {
|
|
38
|
+
if (self.#emitter.countOf('log'))
|
|
39
|
+
self.log(msg, this[paramsKey], ...data);
|
|
40
|
+
},
|
|
41
|
+
warn(msg, ...data) {
|
|
42
|
+
if (self.#emitter.countOf('warn'))
|
|
43
|
+
self.warn(msg, this[paramsKey], ...data);
|
|
44
|
+
},
|
|
45
|
+
error(err, ...data) {
|
|
46
|
+
if (self.#emitter.countOf('error'))
|
|
47
|
+
self.error(err, this[paramsKey], ...data);
|
|
48
|
+
},
|
|
49
|
+
action(data) {
|
|
50
|
+
if (self.#emitter.countOf('action'))
|
|
51
|
+
self.action({ ...this[paramsKey], ...data });
|
|
52
|
+
},
|
|
53
|
+
metrics(data) {
|
|
54
|
+
if (self.#emitter.countOf('metrics'))
|
|
55
|
+
self.metrics({ ...this[paramsKey], ...data });
|
|
56
|
+
},
|
|
57
|
+
event(data) {
|
|
58
|
+
if (self.#emitter.countOf('event'))
|
|
59
|
+
self.event({ ...this[paramsKey], ...data });
|
|
60
|
+
},
|
|
61
|
+
nested(nestedParams) {
|
|
62
|
+
return {
|
|
63
|
+
...this,
|
|
64
|
+
[paramsKey]: {
|
|
65
|
+
...this[paramsKey],
|
|
66
|
+
...nestedParams,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
on: self.on.bind(self),
|
|
71
|
+
off: self.off.bind(self),
|
|
72
|
+
};
|
|
73
|
+
return logger;
|
|
74
|
+
}
|
|
75
|
+
on(type, listener) {
|
|
76
|
+
this.#emitter.on(type, listener);
|
|
77
|
+
}
|
|
78
|
+
off(type, listener) {
|
|
79
|
+
this.#emitter.off(type, listener);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.Logger2 = Logger2;
|
|
83
|
+
// MAJOR: remove old logger implementation
|
|
4
84
|
const noop = () => { };
|
|
85
|
+
/** @deprecated */
|
|
5
86
|
class Logger {
|
|
6
87
|
#logger = this.createLogger({});
|
|
7
88
|
get log() {
|
|
@@ -41,5 +122,12 @@ class Logger {
|
|
|
41
122
|
};
|
|
42
123
|
}
|
|
43
124
|
}
|
|
125
|
+
/** @deprecated */
|
|
44
126
|
exports.logger = new Logger();
|
|
127
|
+
/**
|
|
128
|
+
* Alias for global singleton logger instance
|
|
129
|
+
*
|
|
130
|
+
* @deprecated
|
|
131
|
+
*/
|
|
132
|
+
exports.globalLogger = exports.logger;
|
|
45
133
|
//# sourceMappingURL=logger.js.map
|
package/build/cjs/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"../../src","sources":["logger.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AA8BtB,MAAM,MAAM;IACR,OAAO,GAA0B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEvD,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,WAAoC,EAAE;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,QAAiC;QAC1C,OAAO;YACH,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,IAAI;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;YAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;YAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI;SAClC,CAAC;IACN,CAAC;CACJ;AAEY,QAAA,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC","sourcesContent":["const noop = () => {};\n\ndeclare global {\n namespace MdEditorLogger {\n type MetricsData = {\n component: string;\n event: string;\n duration?: number;\n meta?: Record<string, any>;\n };\n\n interface ActionData {\n action: string;\n source: string;\n [key: string]: any;\n }\n\n interface Logger {\n log(...data: any[]): void;\n info(...data: any[]): void;\n error(...data: any[]): void;\n warn(...data: any[]): void;\n metrics(data: MetricsData): void;\n action(data: ActionData): void;\n }\n\n interface Settings extends Partial<Logger> {}\n }\n}\n\nclass Logger implements MdEditorLogger.Logger {\n #logger: MdEditorLogger.Logger = this.createLogger({});\n\n get log() {\n return this.#logger.log;\n }\n\n get info() {\n return this.#logger.info;\n }\n\n get error() {\n return this.#logger.error;\n }\n\n get warn() {\n return this.#logger.warn;\n }\n\n get metrics() {\n return this.#logger.metrics;\n }\n\n get action() {\n return this.#logger.action;\n }\n\n setLogger(settings: MdEditorLogger.Settings = {}) {\n this.#logger = this.createLogger(settings);\n }\n\n /**\n * @inner\n *\n * To override the default logger, use setLogger\n */\n createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger {\n return {\n log: settings.log ?? noop,\n info: settings.info ?? noop,\n warn: settings.warn ?? noop,\n error: settings.error ?? noop,\n metrics: settings.metrics ?? noop,\n action: settings.action ?? noop,\n };\n }\n}\n\nexport const logger = new Logger();\n"]}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"../../src","sources":["logger.ts"],"names":[],"mappings":"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","sourcesContent":["import {type Listener, type Receiver, SafeEventEmitter} from './utils/event-emitter';\n\ntype MsgObj = {\n msg: string;\n [key: string]: unknown;\n};\n\ntype ErrObj = {\n error: any;\n [key: string]: unknown;\n};\n\ntype EventObj = {\n event: string;\n [key: string]: unknown;\n};\n\n// MAJOR: rename Logger2 to Logger (namespace and class)\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Logger2 {\n export type LogData = MsgObj;\n export type WarnData = MsgObj;\n export type ErrorData = ErrObj;\n export type ActionData = MdEditorLogger.ActionData;\n export type MetricsData = MdEditorLogger.MetricsData;\n export type EventData = EventObj;\n\n export type ReceiverDataMap = {\n log: LogData;\n warn: WarnData;\n error: ErrorData;\n event: EventData;\n action: ActionData;\n metrics: MetricsData;\n };\n\n export interface LogReceiver extends Receiver<ReceiverDataMap> {}\n\n export interface LogEmitter {\n /** Log a regular message */\n log(msg: string, ...data: object[]): void;\n /** Log a warning message */\n warn(msg: string, ...data: object[]): void;\n /** Log an error */\n error(err: string | Error | unknown, ...data: object[]): void;\n /** Log an event triggered in editor. For example, changing mode, pasting, or otherwise */\n event(data: Logger2.EventData): void;\n /** Log the action called in editor and its source (from toolbar, or hotkeys, etc.) */\n action(data: Logger2.ActionData): void;\n /** Log metric data, such as parsing or execution time */\n metrics(data: Logger2.MetricsData): void;\n }\n\n export interface ILogger extends Logger2.LogEmitter, Logger2.LogReceiver {\n /** Create nested logger with bound parameters */\n nested(params: object): ILogger;\n }\n}\n\nexport class Logger2 implements Logger2.ILogger {\n readonly #emitter = new SafeEventEmitter<Logger2.ReceiverDataMap>();\n\n log(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const logData = Object.assign(obj, {msg});\n this.#emitter.emit('log', logData);\n }\n\n warn(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const warnData = Object.assign(obj, {msg});\n this.#emitter.emit('warn', warnData);\n }\n\n error(err: string | Error | unknown, ...data: object[]): void {\n const error = typeof err === 'string' ? Error(err) : err;\n const obj: object = Object.assign({}, ...data);\n const errorData = Object.assign(obj, {error});\n this.#emitter.emit('error', errorData);\n }\n\n action(data: Logger2.ActionData): void {\n this.#emitter.emit('action', data);\n }\n\n metrics(data: Logger2.MetricsData): void {\n this.#emitter.emit('metrics', data);\n }\n\n event(data: Logger2.EventData): void {\n this.#emitter.emit('event', data);\n }\n\n nested(params: object): Logger2.ILogger {\n const self = this;\n const paramsKey = Symbol();\n\n const logger: Logger2.ILogger & {[paramsKey]: object} = {\n [paramsKey]: params,\n log(msg, ...data) {\n if (self.#emitter.countOf('log')) self.log(msg, this[paramsKey], ...data);\n },\n warn(msg, ...data) {\n if (self.#emitter.countOf('warn')) self.warn(msg, this[paramsKey], ...data);\n },\n error(err, ...data) {\n if (self.#emitter.countOf('error')) self.error(err, this[paramsKey], ...data);\n },\n action(data) {\n if (self.#emitter.countOf('action')) self.action({...this[paramsKey], ...data});\n },\n metrics(data) {\n if (self.#emitter.countOf('metrics')) self.metrics({...this[paramsKey], ...data});\n },\n event(data) {\n if (self.#emitter.countOf('event')) self.event({...this[paramsKey], ...data});\n },\n nested(nestedParams) {\n return {\n ...this,\n [paramsKey]: {\n ...this[paramsKey],\n ...nestedParams,\n },\n };\n },\n on: self.on.bind(self),\n off: self.off.bind(self),\n };\n\n return logger;\n }\n\n on<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.on(type, listener);\n }\n\n off<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.off(type, listener);\n }\n}\n\n// MAJOR: remove old logger implementation\n\nconst noop = () => {};\n\ndeclare global {\n /** @deprecated */\n namespace MdEditorLogger {\n /** @deprecated */\n type MetricsData = {\n component: string;\n event: string;\n duration?: number;\n meta?: Record<string, any>;\n [key: string]: any;\n };\n\n /** @deprecated */\n interface ActionData {\n action: string;\n source: string;\n [key: string]: any;\n }\n\n /** @deprecated */\n interface Logger {\n log(...data: any[]): void;\n info(...data: any[]): void;\n error(...data: any[]): void;\n warn(...data: any[]): void;\n metrics(data: MetricsData): void;\n action(data: ActionData): void;\n }\n\n /** @deprecated */\n interface Settings extends Partial<Logger> {}\n }\n}\n\n/** @deprecated */\nclass Logger implements MdEditorLogger.Logger {\n #logger: MdEditorLogger.Logger = this.createLogger({});\n\n get log() {\n return this.#logger.log;\n }\n\n get info() {\n return this.#logger.info;\n }\n\n get error() {\n return this.#logger.error;\n }\n\n get warn() {\n return this.#logger.warn;\n }\n\n get metrics() {\n return this.#logger.metrics;\n }\n\n get action() {\n return this.#logger.action;\n }\n\n setLogger(settings: MdEditorLogger.Settings = {}) {\n this.#logger = this.createLogger(settings);\n }\n\n /**\n * @inner\n *\n * To override the default logger, use setLogger\n */\n createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger {\n return {\n log: settings.log ?? noop,\n info: settings.info ?? noop,\n warn: settings.warn ?? noop,\n error: settings.error ?? noop,\n metrics: settings.metrics ?? noop,\n action: settings.action ?? noop,\n };\n }\n}\n\n/** @deprecated */\nexport const logger = new Logger();\n/**\n * Alias for global singleton logger instance\n *\n * @deprecated\n */\nexport const globalLogger = logger;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import emoji from 'markdown-it-emoji';
|
|
2
|
-
import bare from 'markdown-it-emoji/bare';
|
|
3
|
-
import light from 'markdown-it-emoji/light';
|
|
2
|
+
import bare from 'markdown-it-emoji/bare.js';
|
|
3
|
+
import light from 'markdown-it-emoji/light.js';
|
|
4
4
|
export default emoji;
|
|
5
5
|
export { bare, light };
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.light = exports.bare = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const markdown_it_emoji_1 = tslib_1.__importDefault(require("markdown-it-emoji"));
|
|
6
|
-
const
|
|
7
|
-
exports.bare =
|
|
8
|
-
const
|
|
9
|
-
exports.light =
|
|
6
|
+
const bare_js_1 = tslib_1.__importDefault(require("markdown-it-emoji/bare.js"));
|
|
7
|
+
exports.bare = bare_js_1.default;
|
|
8
|
+
const light_js_1 = tslib_1.__importDefault(require("markdown-it-emoji/light.js"));
|
|
9
|
+
exports.light = light_js_1.default;
|
|
10
10
|
exports.default = markdown_it_emoji_1.default;
|
|
11
11
|
//# sourceMappingURL=emoji.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji.js","sourceRoot":"../../../src","sources":["markdown-it/emoji.ts"],"names":[],"mappings":";;;;AAAA,kFAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"emoji.js","sourceRoot":"../../../src","sources":["markdown-it/emoji.ts"],"names":[],"mappings":";;;;AAAA,kFAAsC;AACtC,gFAA6C;AAKrC,eALD,iBAAI,CAKC;AAJZ,kFAA+C;AAIjC,gBAJP,kBAAK,CAIO;AAFnB,kBAAe,2BAAK,CAAC","sourcesContent":["import emoji from 'markdown-it-emoji';\nimport bare from 'markdown-it-emoji/bare.js';\nimport light from 'markdown-it-emoji/light.js';\n\nexport default emoji;\n\nexport {bare, light};\n"]}
|
|
@@ -4,6 +4,7 @@ import { EditorView, type EditorViewConfig, type KeyBinding, placeholder } from
|
|
|
4
4
|
import type { ParseInsertedUrlAsImage } from "../../bundle/index.js";
|
|
5
5
|
import type { EventMap } from "../../bundle/Editor.js";
|
|
6
6
|
import type { ReactRenderStorage } from "../../extensions/index.js";
|
|
7
|
+
import { type Logger2 } from "../../logger.js";
|
|
7
8
|
import type { Receiver } from "../../utils/index.js";
|
|
8
9
|
import type { DirectiveSyntaxContext } from "../../utils/directive.js";
|
|
9
10
|
import { type FileUploadHandler } from "./files-upload-facet.js";
|
|
@@ -13,6 +14,7 @@ type Autocompletion = Parameters<typeof autocompletion>[0];
|
|
|
13
14
|
export type CreateCodemirrorParams = {
|
|
14
15
|
doc: EditorViewConfig['doc'];
|
|
15
16
|
placeholder: Parameters<typeof placeholder>[0];
|
|
17
|
+
logger: Logger2.ILogger;
|
|
16
18
|
onCancel: () => void;
|
|
17
19
|
onSubmit: () => void;
|
|
18
20
|
onChange: () => void;
|