@witchcraft/editor 0.0.3 → 0.0.5
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/dist/module.d.cts +2 -0
- package/dist/module.d.mts +2 -15
- package/dist/module.json +1 -1
- package/dist/module.mjs +13 -72
- package/dist/types.d.mts +12 -2
- package/package.json +228 -237
- package/src/module.ts +1 -2
- package/src/runtime/assets/handle-border-circles.svg +0 -0
- package/src/runtime/components/Editor.vue +0 -0
- package/src/runtime/pm/features/Blocks/components/ItemNodeView.vue +1 -1
- package/src/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +0 -2
- package/src/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +1 -3
- package/src/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -3
- package/src/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -1
- package/src/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +1 -4
- package/src/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -3
- package/src/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -1
- package/src/runtime/pm/schema.ts +0 -0
- package/src/runtime/pm/utils/createDropIndicator.ts +9 -3
- package/src/runtime/pm/utils/getElPropertyAsInt.ts +3 -0
- package/src/runtime/pm/utils/internal/debugSel.ts +0 -0
- package/src/runtime/pm/utils/internal/recurse.ts +0 -0
- package/dist/runtime/assets/base.css +0 -1
- package/dist/runtime/assets/handle-arrow.svg +0 -16
- package/dist/runtime/assets/handle-border-circles-single.svg +0 -44
- package/dist/runtime/assets/handle-border-circles.svg +0 -27
- package/dist/runtime/assets/handle-temp.svg +0 -1
- package/dist/runtime/assets/utils.css +0 -1
- package/dist/runtime/components/CodeBlockThemePicker.d.vue.ts +0 -12
- package/dist/runtime/components/CodeBlockThemePicker.vue +0 -123
- package/dist/runtime/components/CodeBlockThemePicker.vue.d.ts +0 -12
- package/dist/runtime/components/Commands.d.vue.ts +0 -10
- package/dist/runtime/components/Commands.vue +0 -60
- package/dist/runtime/components/Commands.vue.d.ts +0 -10
- package/dist/runtime/components/Editor.d.vue.ts +0 -40
- package/dist/runtime/components/Editor.vue +0 -208
- package/dist/runtime/components/Editor.vue.d.ts +0 -40
- package/dist/runtime/components/EditorDemoApp.d.vue.ts +0 -2
- package/dist/runtime/components/EditorDemoApp.vue +0 -104
- package/dist/runtime/components/EditorDemoApp.vue.d.ts +0 -2
- package/dist/runtime/components/EditorDemoControls.d.vue.ts +0 -12
- package/dist/runtime/components/EditorDemoControls.vue +0 -36
- package/dist/runtime/components/EditorDemoControls.vue.d.ts +0 -12
- package/dist/runtime/components/TestWrapper.d.vue.ts +0 -11
- package/dist/runtime/components/TestWrapper.vue +0 -63
- package/dist/runtime/components/TestWrapper.vue.d.ts +0 -11
- package/dist/runtime/composables/useEditor.d.ts +0 -9
- package/dist/runtime/composables/useEditor.js +0 -21
- package/dist/runtime/composables/useWindowDebugging.d.ts +0 -3
- package/dist/runtime/composables/useWindowDebugging.js +0 -16
- package/dist/runtime/demo/App.d.vue.ts +0 -2
- package/dist/runtime/demo/App.vue +0 -101
- package/dist/runtime/demo/App.vue.d.ts +0 -2
- package/dist/runtime/demo/README.md +0 -1
- package/dist/runtime/demo/main.d.ts +0 -1
- package/dist/runtime/demo/main.js +0 -4
- package/dist/runtime/demo/tailwind.css +0 -1
- package/dist/runtime/env.d.ts +0 -2
- package/dist/runtime/injectionKeys.d.ts +0 -6
- package/dist/runtime/injectionKeys.js +0 -3
- package/dist/runtime/main.lib.d.ts +0 -2
- package/dist/runtime/main.lib.js +0 -2
- package/dist/runtime/pm/commands/backspace.d.ts +0 -12
- package/dist/runtime/pm/commands/backspace.js +0 -26
- package/dist/runtime/pm/commands/changeAttrs.d.ts +0 -9
- package/dist/runtime/pm/commands/changeAttrs.js +0 -15
- package/dist/runtime/pm/commands/deleteSelection.d.ts +0 -9
- package/dist/runtime/pm/commands/deleteSelection.js +0 -8
- package/dist/runtime/pm/commands/enter.d.ts +0 -14
- package/dist/runtime/pm/commands/enter.js +0 -9
- package/dist/runtime/pm/commands/insertBreak.d.ts +0 -9
- package/dist/runtime/pm/commands/insertBreak.js +0 -22
- package/dist/runtime/pm/features/Base/Base.d.ts +0 -4
- package/dist/runtime/pm/features/Base/Base.js +0 -32
- package/dist/runtime/pm/features/Base/commands/deleteNodes.d.ts +0 -10
- package/dist/runtime/pm/features/Base/commands/deleteNodes.js +0 -29
- package/dist/runtime/pm/features/Base/commands/setCursorVisible.d.ts +0 -12
- package/dist/runtime/pm/features/Base/commands/setCursorVisible.js +0 -7
- package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.d.ts +0 -9
- package/dist/runtime/pm/features/Base/plugins/debugSelectionPlugin.js +0 -48
- package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.d.ts +0 -3
- package/dist/runtime/pm/features/Base/plugins/isCursorVisiblePlugin.js +0 -26
- package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.d.ts +0 -3
- package/dist/runtime/pm/features/Base/plugins/isUsingTouchPlugin.js +0 -38
- package/dist/runtime/pm/features/Base/plugins/selectingIndicator.d.ts +0 -5
- package/dist/runtime/pm/features/Base/plugins/selectingIndicator.js +0 -35
- package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.d.ts +0 -33
- package/dist/runtime/pm/features/Base/plugins/unfocusedSelectionIndicatorPlugin.js +0 -66
- package/dist/runtime/pm/features/Base/types.d.ts +0 -3
- package/dist/runtime/pm/features/Base/types.js +0 -0
- package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.d.ts +0 -3
- package/dist/runtime/pm/features/BaseShortcuts/BaseShortcuts.js +0 -34
- package/dist/runtime/pm/features/Blockquote/Blockquote.d.ts +0 -5
- package/dist/runtime/pm/features/Blockquote/Blockquote.js +0 -65
- package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.d.ts +0 -11
- package/dist/runtime/pm/features/Blockquote/commands/blockquoteEnter.js +0 -31
- package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.d.ts +0 -11
- package/dist/runtime/pm/features/Blockquote/commands/blockquoteShiftEnter.js +0 -12
- package/dist/runtime/pm/features/Blocks/Blocks.d.ts +0 -2
- package/dist/runtime/pm/features/Blocks/Blocks.js +0 -2
- package/dist/runtime/pm/features/Blocks/Item.d.ts +0 -11
- package/dist/runtime/pm/features/Blocks/Item.js +0 -157
- package/dist/runtime/pm/features/Blocks/List.d.ts +0 -4
- package/dist/runtime/pm/features/Blocks/List.js +0 -59
- package/dist/runtime/pm/features/Blocks/commands/changeItemType.d.ts +0 -20
- package/dist/runtime/pm/features/Blocks/commands/changeItemType.js +0 -40
- package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.d.ts +0 -14
- package/dist/runtime/pm/features/Blocks/commands/changeTypeAttr.js +0 -28
- package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.d.ts +0 -23
- package/dist/runtime/pm/features/Blocks/commands/copyOrMoveItem.js +0 -124
- package/dist/runtime/pm/features/Blocks/commands/deleteItem.d.ts +0 -12
- package/dist/runtime/pm/features/Blocks/commands/deleteItem.js +0 -8
- package/dist/runtime/pm/features/Blocks/commands/indentItem.d.ts +0 -12
- package/dist/runtime/pm/features/Blocks/commands/indentItem.js +0 -58
- package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.d.ts +0 -18
- package/dist/runtime/pm/features/Blocks/commands/itemMenuCommands.js +0 -40
- package/dist/runtime/pm/features/Blocks/commands/moveItem.d.ts +0 -12
- package/dist/runtime/pm/features/Blocks/commands/moveItem.js +0 -80
- package/dist/runtime/pm/features/Blocks/commands/setNode.d.ts +0 -20
- package/dist/runtime/pm/features/Blocks/commands/setNode.js +0 -87
- package/dist/runtime/pm/features/Blocks/commands/splitItem.d.ts +0 -17
- package/dist/runtime/pm/features/Blocks/commands/splitItem.js +0 -87
- package/dist/runtime/pm/features/Blocks/commands/unindentItem.d.ts +0 -12
- package/dist/runtime/pm/features/Blocks/commands/unindentItem.js +0 -42
- package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.d.vue.ts +0 -0
- package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue +0 -122
- package/dist/runtime/pm/features/Blocks/components/DragTreeHandle.vue.d.ts +0 -0
- package/dist/runtime/pm/features/Blocks/components/ItemMenu.d.vue.ts +0 -6
- package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue +0 -78
- package/dist/runtime/pm/features/Blocks/components/ItemMenu.vue.d.ts +0 -6
- package/dist/runtime/pm/features/Blocks/components/ItemNodeView.d.vue.ts +0 -92
- package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue +0 -350
- package/dist/runtime/pm/features/Blocks/components/ItemNodeView.vue.d.ts +0 -92
- package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.d.ts +0 -5
- package/dist/runtime/pm/features/Blocks/components/defaultItemMenu.js +0 -42
- package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.d.ts +0 -1
- package/dist/runtime/pm/features/Blocks/composables/useDragWithThreshold.js +0 -0
- package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.d.ts +0 -5
- package/dist/runtime/pm/features/Blocks/composables/useHandleHeight.js +0 -22
- package/dist/runtime/pm/features/Blocks/composables/useHasChildren.d.ts +0 -5
- package/dist/runtime/pm/features/Blocks/composables/useHasChildren.js +0 -10
- package/dist/runtime/pm/features/Blocks/composables/useNodeStates.d.ts +0 -7
- package/dist/runtime/pm/features/Blocks/composables/useNodeStates.js +0 -20
- package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.d.ts +0 -20
- package/dist/runtime/pm/features/Blocks/itemMenuMenuItems.js +0 -138
- package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.d.ts +0 -11
- package/dist/runtime/pm/features/Blocks/plugins/ensureLastItemIsContentPlugin.js +0 -36
- package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.d.ts +0 -8
- package/dist/runtime/pm/features/Blocks/plugins/itemBlockIdPlugin.js +0 -30
- package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.d.ts +0 -3
- package/dist/runtime/pm/features/Blocks/plugins/itemHasSingularSelectionPlugin.js +0 -30
- package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.d.ts +0 -4
- package/dist/runtime/pm/features/Blocks/plugins/itemMenuPlugin.js +0 -17
- package/dist/runtime/pm/features/Blocks/states/stateful.d.ts +0 -2
- package/dist/runtime/pm/features/Blocks/states/stateful.js +0 -37
- package/dist/runtime/pm/features/Blocks/states/task/cancelled.svg +0 -32
- package/dist/runtime/pm/features/Blocks/states/task/checked.svg +0 -27
- package/dist/runtime/pm/features/Blocks/states/task/checked2.svg +0 -24
- package/dist/runtime/pm/features/Blocks/states/task/partial.svg +0 -24
- package/dist/runtime/pm/features/Blocks/states/task/partial2.svg +0 -31
- package/dist/runtime/pm/features/Blocks/states/task/unchecked.svg +0 -20
- package/dist/runtime/pm/features/Blocks/types.d.ts +0 -43
- package/dist/runtime/pm/features/Blocks/types.js +0 -2
- package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.d.ts +0 -3
- package/dist/runtime/pm/features/Blocks/utils/createItemMenuCommandExecuter.js +0 -24
- package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.d.ts +0 -4
- package/dist/runtime/pm/features/Blocks/utils/fixBlockIds.js +0 -23
- package/dist/runtime/pm/features/Blocks/utils/isValidId.d.ts +0 -2
- package/dist/runtime/pm/features/Blocks/utils/isValidId.js +0 -7
- package/dist/runtime/pm/features/CodeBlock/CodeBlock.d.ts +0 -16
- package/dist/runtime/pm/features/CodeBlock/CodeBlock.js +0 -91
- package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.d.ts +0 -1
- package/dist/runtime/pm/features/CodeBlock/build/generateHighlightJsInfo.js +0 -63
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.d.ts +0 -9
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockEnterOrSplit.js +0 -28
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.d.ts +0 -9
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockIndent.js +0 -39
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.d.ts +0 -9
- package/dist/runtime/pm/features/CodeBlock/commands/codeBlockUnindent.js +0 -50
- package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.d.ts +0 -9
- package/dist/runtime/pm/features/CodeBlock/commands/focusCodeBlockLanguage.js +0 -27
- package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.d.vue.ts +0 -92
- package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue +0 -112
- package/dist/runtime/pm/features/CodeBlock/components/CodeBlockView.vue.d.ts +0 -92
- package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.d.ts +0 -28
- package/dist/runtime/pm/features/CodeBlock/composables/useAsyncCodeBlockHighlighting.js +0 -137
- package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.d.ts +0 -37
- package/dist/runtime/pm/features/CodeBlock/composables/useHighlightJsTheme.js +0 -101
- package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.d.ts +0 -17
- package/dist/runtime/pm/features/CodeBlock/highlightJsInfo.js +0 -711
- package/dist/runtime/pm/features/CodeBlock/types.d.ts +0 -4
- package/dist/runtime/pm/features/CodeBlock/types.js +0 -2
- package/dist/runtime/pm/features/Collaboration/Collaboration.d.ts +0 -66
- package/dist/runtime/pm/features/Collaboration/Collaboration.js +0 -169
- package/dist/runtime/pm/features/CommandsMenus/CommandBar.d.ts +0 -19
- package/dist/runtime/pm/features/CommandsMenus/CommandBar.js +0 -97
- package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.d.ts +0 -20
- package/dist/runtime/pm/features/CommandsMenus/commandBarMenuItems.js +0 -188
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.d.vue.ts +0 -8
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue +0 -58
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBar.vue.d.ts +0 -8
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.d.vue.ts +0 -12
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue +0 -42
- package/dist/runtime/pm/features/CommandsMenus/components/CommandBarItem.vue.d.ts +0 -12
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.d.vue.ts +0 -10
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue +0 -55
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuGroup.vue.d.ts +0 -10
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.d.vue.ts +0 -11
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue +0 -58
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuItem.vue.d.ts +0 -11
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.d.vue.ts +0 -11
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue +0 -54
- package/dist/runtime/pm/features/CommandsMenus/components/CommandMenuList.vue.d.ts +0 -11
- package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.d.vue.ts +0 -5
- package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue +0 -13
- package/dist/runtime/pm/features/CommandsMenus/components/TextIcon.vue.d.ts +0 -5
- package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.d.vue.ts +0 -8
- package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue +0 -45
- package/dist/runtime/pm/features/CommandsMenus/icons/HighlightIcon.vue.d.ts +0 -8
- package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.d.vue.ts +0 -2
- package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue +0 -5
- package/dist/runtime/pm/features/CommandsMenus/icons/SubscriptIcon.vue.d.ts +0 -2
- package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.d.vue.ts +0 -2
- package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue +0 -5
- package/dist/runtime/pm/features/CommandsMenus/icons/SuperscriptIcon.vue.d.ts +0 -2
- package/dist/runtime/pm/features/CommandsMenus/types.d.ts +0 -61
- package/dist/runtime/pm/features/CommandsMenus/types.js +0 -5
- package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.d.ts +0 -3
- package/dist/runtime/pm/features/CommandsMenus/utils/defaultCommandExecutor.js +0 -11
- package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.d.ts +0 -10
- package/dist/runtime/pm/features/CommandsMenus/utils/findCommand.js +0 -16
- package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.d.ts +0 -5
- package/dist/runtime/pm/features/CommandsMenus/utils/popupPositionModifier.js +0 -9
- package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.d.ts +0 -5
- package/dist/runtime/pm/features/CommandsMenus/utils/popupVerticalPositioner.js +0 -11
- package/dist/runtime/pm/features/Document/Document.d.ts +0 -3
- package/dist/runtime/pm/features/Document/Document.js +0 -6
- package/dist/runtime/pm/features/DocumentApi/DocumentApi.d.ts +0 -86
- package/dist/runtime/pm/features/DocumentApi/DocumentApi.js +0 -170
- package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.d.ts +0 -13
- package/dist/runtime/pm/features/DocumentApi/composables/useEditorContent.js +0 -76
- package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.d.ts +0 -23
- package/dist/runtime/pm/features/DocumentApi/composables/useTestDocumentApi.js +0 -70
- package/dist/runtime/pm/features/DocumentApi/types.d.ts +0 -133
- package/dist/runtime/pm/features/DocumentApi/types.js +0 -1
- package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.d.ts +0 -3
- package/dist/runtime/pm/features/DocumentApi/utils/convertFullTransactionForPartialState.js +0 -37
- package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.d.ts +0 -4
- package/dist/runtime/pm/features/DocumentApi/utils/convertTrForInstance.js +0 -13
- package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.d.ts +0 -2
- package/dist/runtime/pm/features/DocumentApi/utils/convertTransactionForFullState.js +0 -22
- package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.d.ts +0 -2
- package/dist/runtime/pm/features/DocumentApi/utils/copyMeta.js +0 -6
- package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.d.ts +0 -1
- package/dist/runtime/pm/features/DocumentApi/utils/getEmbedJson.js +0 -14
- package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.d.ts +0 -1
- package/dist/runtime/pm/features/DocumentApi/utils/getEmbedNodeFromDoc.js +0 -14
- package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.d.ts +0 -9
- package/dist/runtime/pm/features/DocumentApi/utils/getStateEmbedRange.js +0 -19
- package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.d.ts +0 -2
- package/dist/runtime/pm/features/DocumentApi/utils/isEmbedId.js +0 -3
- package/dist/runtime/pm/features/EmbeddedDocument/Embedded.d.ts +0 -24
- package/dist/runtime/pm/features/EmbeddedDocument/Embedded.js +0 -73
- package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.d.ts +0 -23
- package/dist/runtime/pm/features/EmbeddedDocument/EmbeddedDocument.js +0 -70
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.d.vue.ts +0 -14
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue +0 -171
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedDocumentPicker.vue.d.ts +0 -14
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.d.vue.ts +0 -92
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue +0 -172
- package/dist/runtime/pm/features/EmbeddedDocument/components/EmbeddedNodeView.vue.d.ts +0 -92
- package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.d.ts +0 -31
- package/dist/runtime/pm/features/EmbeddedDocument/composables/useEmbeddedEditor.js +0 -199
- package/dist/runtime/pm/features/EmbeddedDocument/types.d.ts +0 -49
- package/dist/runtime/pm/features/EmbeddedDocument/types.js +0 -6
- package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.d.ts +0 -9
- package/dist/runtime/pm/features/EmbeddedDocument/utils/isEmbeddedBlock.js +0 -3
- package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.d.ts +0 -28
- package/dist/runtime/pm/features/EmbeddedDocument/utils/redirectFromEmbedded.js +0 -17
- package/dist/runtime/pm/features/FileLoader/FileLoader.d.ts +0 -16
- package/dist/runtime/pm/features/FileLoader/FileLoader.js +0 -99
- package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.d.ts +0 -28
- package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/FileLoaderHandler.js +0 -69
- package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.d.ts +0 -11
- package/dist/runtime/pm/features/FileLoader/FileLoaderHandler/TestFileLoaderHandler.js +0 -49
- package/dist/runtime/pm/features/FileLoader/commands/insertFile.d.ts +0 -17
- package/dist/runtime/pm/features/FileLoader/commands/insertFile.js +0 -39
- package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.d.vue.ts +0 -92
- package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue +0 -38
- package/dist/runtime/pm/features/FileLoader/components/FileLoaderNodeView.vue.d.ts +0 -92
- package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.d.ts +0 -5
- package/dist/runtime/pm/features/FileLoader/plugins/fileLoaderPlugin.js +0 -61
- package/dist/runtime/pm/features/FileLoader/types.d.ts +0 -73
- package/dist/runtime/pm/features/FileLoader/types.js +0 -0
- package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.d.ts +0 -4
- package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNode.js +0 -27
- package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.d.ts +0 -9
- package/dist/runtime/pm/features/FileLoader/utils/cleanupFileLoaderNodes.js +0 -22
- package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.d.ts +0 -2
- package/dist/runtime/pm/features/FileLoader/utils/findLoadingNodePos.js +0 -11
- package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.d.ts +0 -3
- package/dist/runtime/pm/features/FileLoader/utils/optionsCheck.js +0 -8
- package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.d.ts +0 -1
- package/dist/runtime/pm/features/FileLoader/utils/readAsDataUrl.js +0 -12
- package/dist/runtime/pm/features/HardBreak/HardBreak.d.ts +0 -5
- package/dist/runtime/pm/features/HardBreak/HardBreak.js +0 -14
- package/dist/runtime/pm/features/Heading/Heading.d.ts +0 -24
- package/dist/runtime/pm/features/Heading/Heading.js +0 -85
- package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.d.ts +0 -16
- package/dist/runtime/pm/features/Heading/commands/changeLevelAttr.js +0 -33
- package/dist/runtime/pm/features/Heading/types.d.ts +0 -14
- package/dist/runtime/pm/features/Heading/types.js +0 -0
- package/dist/runtime/pm/features/Highlight/Highlight.d.ts +0 -72
- package/dist/runtime/pm/features/Highlight/Highlight.js +0 -163
- package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.d.ts +0 -3
- package/dist/runtime/pm/features/Highlight/retyped/tiptapHighlight.js +0 -5
- package/dist/runtime/pm/features/Highlight/types.d.ts +0 -27
- package/dist/runtime/pm/features/Highlight/types.js +0 -2
- package/dist/runtime/pm/features/History/History.d.ts +0 -35
- package/dist/runtime/pm/features/History/History.js +0 -63
- package/dist/runtime/pm/features/Iframe/Iframe.d.ts +0 -21
- package/dist/runtime/pm/features/Iframe/Iframe.js +0 -127
- package/dist/runtime/pm/features/Iframe/IframeParsers.d.ts +0 -37
- package/dist/runtime/pm/features/Iframe/IframeParsers.js +0 -88
- package/dist/runtime/pm/features/Iframe/components/IframeNodeView.d.vue.ts +0 -92
- package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue +0 -82
- package/dist/runtime/pm/features/Iframe/components/IframeNodeView.vue.d.ts +0 -92
- package/dist/runtime/pm/features/Iframe/types.d.ts +0 -5
- package/dist/runtime/pm/features/Iframe/types.js +0 -0
- package/dist/runtime/pm/features/Image/Image.d.ts +0 -2
- package/dist/runtime/pm/features/Image/Image.js +0 -13
- package/dist/runtime/pm/features/Link/Link.d.ts +0 -38
- package/dist/runtime/pm/features/Link/Link.js +0 -241
- package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.d.vue.ts +0 -28
- package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue +0 -114
- package/dist/runtime/pm/features/Link/components/BubbleMenuExternalLink.vue.d.ts +0 -28
- package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.d.vue.ts +0 -29
- package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue +0 -107
- package/dist/runtime/pm/features/Link/components/BubbleMenuInternalLink.vue.d.ts +0 -29
- package/dist/runtime/pm/features/Link/components/BubbleMenuLink.d.vue.ts +0 -11
- package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue +0 -126
- package/dist/runtime/pm/features/Link/components/BubbleMenuLink.vue.d.ts +0 -11
- package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.d.vue.ts +0 -18
- package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue +0 -57
- package/dist/runtime/pm/features/Link/components/BubbleMenuLinkActions.vue.d.ts +0 -18
- package/dist/runtime/pm/features/Link/types.d.ts +0 -44
- package/dist/runtime/pm/features/Link/types.js +0 -3
- package/dist/runtime/pm/features/Menus/Menus.d.ts +0 -45
- package/dist/runtime/pm/features/Menus/Menus.js +0 -142
- package/dist/runtime/pm/features/Menus/components/MarkMenuManager.d.vue.ts +0 -6
- package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue +0 -166
- package/dist/runtime/pm/features/Menus/components/MarkMenuManager.vue.d.ts +0 -6
- package/dist/runtime/pm/features/Menus/types.d.ts +0 -51
- package/dist/runtime/pm/features/Menus/types.js +0 -3
- package/dist/runtime/pm/features/Menus/utils/isMarkMenu.d.ts +0 -2
- package/dist/runtime/pm/features/Menus/utils/isMarkMenu.js +0 -3
- package/dist/runtime/pm/features/Tables/commands/tableEnter.d.ts +0 -15
- package/dist/runtime/pm/features/Tables/commands/tableEnter.js +0 -19
- package/dist/runtime/pm/features/Tables/index.d.ts +0 -9
- package/dist/runtime/pm/features/Tables/index.js +0 -44
- package/dist/runtime/pm/schema.d.ts +0 -4
- package/dist/runtime/pm/schema.js +0 -80
- package/dist/runtime/pm/testSchema.d.ts +0 -5
- package/dist/runtime/pm/testSchema.js +0 -30
- package/dist/runtime/pm/utils/createDropIndicator.d.ts +0 -23
- package/dist/runtime/pm/utils/createDropIndicator.js +0 -32
- package/dist/runtime/pm/utils/createStateOnlyPluginApply.d.ts +0 -2
- package/dist/runtime/pm/utils/createStateOnlyPluginApply.js +0 -9
- package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.d.ts +0 -2
- package/dist/runtime/pm/utils/createStateOnlyPluginObjApply.js +0 -14
- package/dist/runtime/pm/utils/dropPointInfo.d.ts +0 -56
- package/dist/runtime/pm/utils/dropPointInfo.js +0 -28
- package/dist/runtime/pm/utils/findUpwards.d.ts +0 -20
- package/dist/runtime/pm/utils/findUpwards.js +0 -18
- package/dist/runtime/pm/utils/getChildChunks.d.ts +0 -3
- package/dist/runtime/pm/utils/getChildChunks.js +0 -15
- package/dist/runtime/pm/utils/getDiffReplacementRange.d.ts +0 -20
- package/dist/runtime/pm/utils/getDiffReplacementRange.js +0 -9
- package/dist/runtime/pm/utils/getElMaxVisualSize.d.ts +0 -9
- package/dist/runtime/pm/utils/getElMaxVisualSize.js +0 -7
- package/dist/runtime/pm/utils/getElPropertyAsInt.d.ts +0 -1
- package/dist/runtime/pm/utils/getElPropertyAsInt.js +0 -8
- package/dist/runtime/pm/utils/getGroupNodeNames.d.ts +0 -2
- package/dist/runtime/pm/utils/getGroupNodeNames.js +0 -7
- package/dist/runtime/pm/utils/getMarkPosition.d.ts +0 -11
- package/dist/runtime/pm/utils/getMarkPosition.js +0 -34
- package/dist/runtime/pm/utils/getMarksInSelection.d.ts +0 -3
- package/dist/runtime/pm/utils/getMarksInSelection.js +0 -16
- package/dist/runtime/pm/utils/getTypeByName.d.ts +0 -2
- package/dist/runtime/pm/utils/getTypeByName.js +0 -5
- package/dist/runtime/pm/utils/index.d.ts +0 -15
- package/dist/runtime/pm/utils/index.js +0 -15
- package/dist/runtime/pm/utils/internal/createNodeTypesList.d.ts +0 -2
- package/dist/runtime/pm/utils/internal/createNodeTypesList.js +0 -17
- package/dist/runtime/pm/utils/internal/debugMap.d.ts +0 -7
- package/dist/runtime/pm/utils/internal/debugMap.js +0 -24
- package/dist/runtime/pm/utils/internal/debugNode.d.ts +0 -2
- package/dist/runtime/pm/utils/internal/debugNode.js +0 -18
- package/dist/runtime/pm/utils/internal/debugSel.d.ts +0 -5
- package/dist/runtime/pm/utils/internal/debugSel.js +0 -8
- package/dist/runtime/pm/utils/internal/recurse.d.ts +0 -2
- package/dist/runtime/pm/utils/internal/recurse.js +0 -39
- package/dist/runtime/pm/utils/internal/stripBlockId.d.ts +0 -2
- package/dist/runtime/pm/utils/internal/stripBlockId.js +0 -9
- package/dist/runtime/pm/utils/mapSelection.d.ts +0 -8
- package/dist/runtime/pm/utils/mapSelection.js +0 -12
- package/dist/runtime/pm/utils/nodesBetween.d.ts +0 -21
- package/dist/runtime/pm/utils/nodesBetween.js +0 -21
- package/dist/runtime/pm/utils/pointToPmPoint.d.ts +0 -2
- package/dist/runtime/pm/utils/pointToPmPoint.js +0 -3
- package/dist/runtime/pm/utils/splitIntoChunks.d.ts +0 -32
- package/dist/runtime/pm/utils/splitIntoChunks.js +0 -31
- package/dist/runtime/testDocuments.d.ts +0 -53
- package/dist/runtime/testDocuments.js +0 -122
- package/dist/runtime/types/index.d.ts +0 -53
- package/dist/runtime/types/index.js +0 -9
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { mergeAttributes, Node } from "@tiptap/core";
|
|
2
|
-
import { insertFile } from "./commands/insertFile.js";
|
|
3
|
-
import { fileLoaderPlugin } from "./plugins/fileLoaderPlugin.js";
|
|
4
|
-
import { optionsCheck } from "./utils/optionsCheck.js";
|
|
5
|
-
import { isValidId } from "../Blocks/utils/isValidId.js";
|
|
6
|
-
export const FileLoader = Node.create({
|
|
7
|
-
name: "fileLoader",
|
|
8
|
-
content: "",
|
|
9
|
-
marks: "",
|
|
10
|
-
group: "block",
|
|
11
|
-
addOptions() {
|
|
12
|
-
return {
|
|
13
|
-
cleanupOnLoad: true,
|
|
14
|
-
onDrop: void 0,
|
|
15
|
-
onPaste: void 0,
|
|
16
|
-
// there are checks on init to throw if the user didn't configure a handler
|
|
17
|
-
handler: void 0,
|
|
18
|
-
embeddedBlockCommandRedirect: void 0,
|
|
19
|
-
HTMLAttributes: {
|
|
20
|
-
class: `
|
|
21
|
-
rounded-sm
|
|
22
|
-
animate-pulse
|
|
23
|
-
bg-accent-200
|
|
24
|
-
text-accent-800
|
|
25
|
-
dark:bg-accent-700
|
|
26
|
-
dark:text-accent-300
|
|
27
|
-
px-2
|
|
28
|
-
`
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
addAttributes() {
|
|
33
|
-
return {
|
|
34
|
-
HTMLAttributes: {
|
|
35
|
-
default: {}
|
|
36
|
-
},
|
|
37
|
-
/** For the optional FileLoaderNodeView. */
|
|
38
|
-
preview: {
|
|
39
|
-
default: void 0
|
|
40
|
-
},
|
|
41
|
-
fileName: {
|
|
42
|
-
default: void 0
|
|
43
|
-
},
|
|
44
|
-
loading: {
|
|
45
|
-
default: true
|
|
46
|
-
},
|
|
47
|
-
loadingId: {
|
|
48
|
-
default: void 0
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
},
|
|
52
|
-
parseHTML() {
|
|
53
|
-
return [
|
|
54
|
-
{
|
|
55
|
-
tag: `div[type=${this.name}]`,
|
|
56
|
-
getAttrs: (dom) => {
|
|
57
|
-
const fileName = dom.getAttribute("file-name");
|
|
58
|
-
const loading = dom.getAttribute("file-loading");
|
|
59
|
-
const loadingId = dom.getAttribute("file-loading-id");
|
|
60
|
-
return {
|
|
61
|
-
fileName,
|
|
62
|
-
loadingId: isValidId(loadingId, 10) ? loadingId : void 0,
|
|
63
|
-
loading: loading === "true"
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
];
|
|
68
|
-
},
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
70
|
-
renderHTML({ node, HTMLAttributes }) {
|
|
71
|
-
return [
|
|
72
|
-
"div",
|
|
73
|
-
mergeAttributes(
|
|
74
|
-
this.options.HTMLAttributes,
|
|
75
|
-
HTMLAttributes,
|
|
76
|
-
{
|
|
77
|
-
"file-loading-id": node.attrs.loadingId,
|
|
78
|
-
"file-name": node.attrs.fileName,
|
|
79
|
-
"file-loading": node.attrs.loading,
|
|
80
|
-
type: this.name
|
|
81
|
-
}
|
|
82
|
-
),
|
|
83
|
-
`Loading "${node.attrs.fileName ?? "Unknown"}" ...`
|
|
84
|
-
];
|
|
85
|
-
},
|
|
86
|
-
addCommands() {
|
|
87
|
-
optionsCheck(this.editor, this.options);
|
|
88
|
-
const self = this;
|
|
89
|
-
return {
|
|
90
|
-
insertFile: insertFile(self.options.handler)
|
|
91
|
-
};
|
|
92
|
-
},
|
|
93
|
-
addProseMirrorPlugins() {
|
|
94
|
-
const self = this;
|
|
95
|
-
return [
|
|
96
|
-
fileLoaderPlugin(self.editor, self.options)
|
|
97
|
-
];
|
|
98
|
-
}
|
|
99
|
-
});
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { MakeOptional } from "@alanscodelog/utils/types";
|
|
2
|
-
import type { Editor } from "@tiptap/core";
|
|
3
|
-
import type { IFileLoaderHandler } from "../types.js.js";
|
|
4
|
-
/**
|
|
5
|
-
* A partial implementation of {@link IFileLoaderHandler}.
|
|
6
|
-
*
|
|
7
|
-
* Using the defaults of this class, you only need to specify the handler's `loadFile` and `replaceLoadingNode` properties.
|
|
8
|
-
*
|
|
9
|
-
* It assumes the use of the {@link Item} extension since it uses the node to wrap the fileLoader node.
|
|
10
|
-
*
|
|
11
|
-
* To identify each fileLoader node and fetch it again once the file is loaded, it uses a 10 character nanoid.
|
|
12
|
-
*/
|
|
13
|
-
export declare class FileLoaderHandler<TFile extends File, T = {
|
|
14
|
-
file: TFile;
|
|
15
|
-
result: string | ArrayBuffer | null;
|
|
16
|
-
}, TKey = string> implements IFileLoaderHandler<TFile, T, TKey> {
|
|
17
|
-
loadFile: IFileLoaderHandler<TFile, T, TKey>["loadFile"];
|
|
18
|
-
onLoadError: IFileLoaderHandler<TFile, T, TKey>["onLoadError"];
|
|
19
|
-
insertPosition: IFileLoaderHandler<TFile, T, TKey>["insertPosition"];
|
|
20
|
-
insertLoadingNode: IFileLoaderHandler<TFile, T, TKey>["insertLoadingNode"];
|
|
21
|
-
replaceLoadingNode: IFileLoaderHandler<TFile, T, TKey>["replaceLoadingNode"];
|
|
22
|
-
filterFile: IFileLoaderHandler<TFile, T, TKey>["filterFile"];
|
|
23
|
-
constructor(opts: MakeOptional<IFileLoaderHandler<TFile, T, TKey>, "onLoadError" | "insertPosition" | "insertLoadingNode">);
|
|
24
|
-
defaultFilterFile(file: File): TFile | undefined;
|
|
25
|
-
defaultInsertPosition(_file: TFile, editor: Editor, pos?: number): number | undefined;
|
|
26
|
-
defaultOnLoadError(_file: TFile, editor: Editor, pos: number | undefined): void;
|
|
27
|
-
defaultInsertLoadingNode(file: TFile, editor: Editor, insertPos: number): TKey;
|
|
28
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { unreachable } from "@alanscodelog/utils/unreachable";
|
|
2
|
-
import { nanoid } from "nanoid";
|
|
3
|
-
import { findUpwards } from "../../../utils/findUpwards.js";
|
|
4
|
-
import { cleanupFileLoaderNode } from "../utils/cleanupFileLoaderNode.js";
|
|
5
|
-
export class FileLoaderHandler {
|
|
6
|
-
loadFile;
|
|
7
|
-
onLoadError;
|
|
8
|
-
insertPosition;
|
|
9
|
-
insertLoadingNode;
|
|
10
|
-
replaceLoadingNode;
|
|
11
|
-
filterFile;
|
|
12
|
-
constructor(opts) {
|
|
13
|
-
this.loadFile = opts.loadFile;
|
|
14
|
-
this.replaceLoadingNode = opts.replaceLoadingNode;
|
|
15
|
-
if (opts.onLoadError) this.onLoadError = opts.onLoadError;
|
|
16
|
-
else this.onLoadError = this.defaultOnLoadError;
|
|
17
|
-
if (opts.insertPosition) this.insertPosition = opts.insertPosition;
|
|
18
|
-
else this.insertPosition = this.defaultInsertPosition;
|
|
19
|
-
if (opts.insertLoadingNode) this.insertLoadingNode = opts.insertLoadingNode;
|
|
20
|
-
else this.insertLoadingNode = this.defaultInsertLoadingNode;
|
|
21
|
-
if (opts.filterFile) this.filterFile = opts.filterFile;
|
|
22
|
-
else this.filterFile = this.defaultFilterFile;
|
|
23
|
-
}
|
|
24
|
-
defaultFilterFile(file) {
|
|
25
|
-
return file;
|
|
26
|
-
}
|
|
27
|
-
defaultInsertPosition(_file, editor, pos) {
|
|
28
|
-
const position = pos ?? editor.state.selection.anchor;
|
|
29
|
-
const $insertionNode = findUpwards(editor.state.doc, position, ($node) => {
|
|
30
|
-
if ($node.node().type.name === "item") {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
}).$pos;
|
|
35
|
-
return $insertionNode ? $insertionNode.end() + 1 : void 0;
|
|
36
|
-
}
|
|
37
|
-
defaultOnLoadError(_file, editor, pos) {
|
|
38
|
-
if (pos === void 0) unreachable();
|
|
39
|
-
editor.commands.command(({ tr }) => {
|
|
40
|
-
cleanupFileLoaderNode(
|
|
41
|
-
tr,
|
|
42
|
-
pos,
|
|
43
|
-
editor.schema.nodes.fileLoader,
|
|
44
|
-
[
|
|
45
|
-
editor.state.schema.nodes.item,
|
|
46
|
-
editor.state.schema.nodes.list
|
|
47
|
-
],
|
|
48
|
-
editor.schema.nodes.paragraph
|
|
49
|
-
);
|
|
50
|
-
return true;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
defaultInsertLoadingNode(file, editor, insertPos) {
|
|
54
|
-
const attrs = {
|
|
55
|
-
loadingId: nanoid(10),
|
|
56
|
-
fileName: file.name,
|
|
57
|
-
loading: true
|
|
58
|
-
};
|
|
59
|
-
editor.commands.command(({ tr }) => {
|
|
60
|
-
const pm = editor.schema.nodes;
|
|
61
|
-
tr.insert(insertPos, pm.item.create(
|
|
62
|
-
{},
|
|
63
|
-
pm.fileLoader.create(attrs)
|
|
64
|
-
));
|
|
65
|
-
return true;
|
|
66
|
-
});
|
|
67
|
-
return attrs.loadingId;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { FileLoaderHandler } from "./FileLoaderHandler.js.js";
|
|
2
|
-
export declare const testFileLoaderDelay = 2000;
|
|
3
|
-
/** Instance of {@link FileLoaderHandler} for testing. */
|
|
4
|
-
export declare const TestFileLoaderHandler: FileLoaderHandler<File & {
|
|
5
|
-
parsedMime: string;
|
|
6
|
-
}, {
|
|
7
|
-
file: File & {
|
|
8
|
-
parsedMime: string;
|
|
9
|
-
};
|
|
10
|
-
result: string | ArrayBuffer | null;
|
|
11
|
-
}, string>;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { delay } from "@alanscodelog/utils/delay";
|
|
2
|
-
import mime from "mime/lite";
|
|
3
|
-
import { FileLoaderHandler } from "./FileLoaderHandler.js";
|
|
4
|
-
import { findLoadingNodePos } from "../utils/findLoadingNodePos.js";
|
|
5
|
-
import { readAsDataUrl } from "../utils/readAsDataUrl.js";
|
|
6
|
-
export const testFileLoaderDelay = 2e3;
|
|
7
|
-
export const TestFileLoaderHandler = new FileLoaderHandler({
|
|
8
|
-
filterFile: (file) => {
|
|
9
|
-
const mimeExtension = mime.getExtension(file.type);
|
|
10
|
-
if (!mimeExtension) return void 0;
|
|
11
|
-
const normalizedMimeType = mime.getType(mimeExtension);
|
|
12
|
-
file.parsedMime = normalizedMimeType;
|
|
13
|
-
if (!normalizedMimeType?.startsWith("image")) return void 0;
|
|
14
|
-
return file;
|
|
15
|
-
},
|
|
16
|
-
replaceLoadingNode(editor, pos, res) {
|
|
17
|
-
const pm = editor.schema.nodes;
|
|
18
|
-
const parsedMime = res.file.parsedMime;
|
|
19
|
-
const returnVal = editor.commands.command(({ tr }) => {
|
|
20
|
-
if (parsedMime.startsWith("image")) {
|
|
21
|
-
tr.replaceWith(pos, pos + 1, pm.image.create({
|
|
22
|
-
src: res.result
|
|
23
|
-
}));
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
tr.delete(pos, pos + 1);
|
|
27
|
-
return false;
|
|
28
|
-
});
|
|
29
|
-
return returnVal;
|
|
30
|
-
},
|
|
31
|
-
loadFile: async (file, insertId, editor) => {
|
|
32
|
-
const result = await readAsDataUrl(file);
|
|
33
|
-
const replacePos = findLoadingNodePos(editor.state, insertId);
|
|
34
|
-
if (replacePos !== void 0) {
|
|
35
|
-
editor.commands.command(({ tr }) => {
|
|
36
|
-
tr.setNodeAttribute(replacePos, "preview", result);
|
|
37
|
-
return true;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
if (file.parsedMime.startsWith("image")) {
|
|
41
|
-
await delay(testFileLoaderDelay * Math.random());
|
|
42
|
-
return {
|
|
43
|
-
file,
|
|
44
|
-
result
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return void 0;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Command } from "@tiptap/core";
|
|
2
|
-
import type { IFileLoaderHandler } from "../types.js.js";
|
|
3
|
-
declare module "@tiptap/core" {
|
|
4
|
-
interface Commands<ReturnType> {
|
|
5
|
-
fileLoader: {
|
|
6
|
-
/**
|
|
7
|
-
* Insert a file into the editor using the FileLoader extension. The configured {@link IFileLoaderHandler} determines where exactly it's inserted (in an item node after by default).
|
|
8
|
-
*
|
|
9
|
-
* You can technically test if this will work with `can` but it's not 100% accurate. We only check if at least one file passes the file filter, not everything else.
|
|
10
|
-
*
|
|
11
|
-
* @redirectable
|
|
12
|
-
*/
|
|
13
|
-
insertFile(files: File[], pos?: number): ReturnType;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export declare const insertFile: (handler: IFileLoaderHandler<any, any>, debug?: boolean) => (files: File[], pos?: number) => Command;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { redirectFromEmbedded } from "../../EmbeddedDocument/utils/redirectFromEmbedded.js";
|
|
2
|
-
import { findLoadingNodePos } from "../utils/findLoadingNodePos.js";
|
|
3
|
-
export const insertFile = (handler, debug = false) => (files, pos) => ({ tr, editor, view, commands, dispatch }) => {
|
|
4
|
-
const redirect = redirectFromEmbedded(view, "insertFile", { args: [files, pos], view, commands });
|
|
5
|
-
if (redirect.redirected) {
|
|
6
|
-
return redirect.result;
|
|
7
|
-
}
|
|
8
|
-
if (dispatch) tr.setMeta("fileLoaderIgnore", true);
|
|
9
|
-
if (!dispatch) {
|
|
10
|
-
return files.some((file) => handler.filterFile?.(file) ?? true);
|
|
11
|
-
}
|
|
12
|
-
void Promise.allSettled(files.reverse().map(async (file) => {
|
|
13
|
-
if (debug) console.log(`insertFile for ${file.name}`, file);
|
|
14
|
-
const f = handler.filterFile ? handler.filterFile(file) : file;
|
|
15
|
-
if (!f) return;
|
|
16
|
-
if (debug) console.log(`filterFile for ${file.name}`, f);
|
|
17
|
-
const insertPosition = handler.insertPosition(f, editor, pos);
|
|
18
|
-
if (debug) console.log(`insertPosition for ${file.name}`, insertPosition);
|
|
19
|
-
if (insertPosition === void 0) return;
|
|
20
|
-
const insertLoadingNode = handler.insertLoadingNode;
|
|
21
|
-
const insertId = insertLoadingNode(f, editor, insertPosition, pos);
|
|
22
|
-
if (debug) console.log(`insertId for ${file.name}`, insertId);
|
|
23
|
-
if (!insertId) return;
|
|
24
|
-
const res = await handler.loadFile?.(f, insertId, editor);
|
|
25
|
-
if (debug) console.log(`result for ${file.name}`, res);
|
|
26
|
-
if (!res) {
|
|
27
|
-
return handler.onLoadError(f, editor, void 0, new Error("fileLoader returned nothing."), insertId);
|
|
28
|
-
}
|
|
29
|
-
const replacePos = findLoadingNodePos(editor.state, insertId);
|
|
30
|
-
if (debug) console.log(`replacePos for ${file.name}`, replacePos);
|
|
31
|
-
if (replacePos === void 0) {
|
|
32
|
-
return handler.onLoadError(f, editor, replacePos, new Error("Could not find node to replace."), insertId);
|
|
33
|
-
}
|
|
34
|
-
const replaceRes = handler.replaceLoadingNode(editor, replacePos, res, insertId);
|
|
35
|
-
if (debug) console.log(`called replaceLoadingNode for ${file.name}, replaced node:`, replaceRes);
|
|
36
|
-
})).then(() => {
|
|
37
|
-
});
|
|
38
|
-
return true;
|
|
39
|
-
};
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
-
editor: {
|
|
3
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
|
|
4
|
-
required: true;
|
|
5
|
-
};
|
|
6
|
-
node: {
|
|
7
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
|
|
8
|
-
required: true;
|
|
9
|
-
};
|
|
10
|
-
decorations: {
|
|
11
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
|
|
12
|
-
required: true;
|
|
13
|
-
};
|
|
14
|
-
selected: {
|
|
15
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
|
|
16
|
-
required: true;
|
|
17
|
-
};
|
|
18
|
-
extension: {
|
|
19
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
|
|
20
|
-
required: true;
|
|
21
|
-
};
|
|
22
|
-
getPos: {
|
|
23
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
|
|
24
|
-
required: true;
|
|
25
|
-
};
|
|
26
|
-
updateAttributes: {
|
|
27
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
|
|
28
|
-
required: true;
|
|
29
|
-
};
|
|
30
|
-
deleteNode: {
|
|
31
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
|
|
32
|
-
required: true;
|
|
33
|
-
};
|
|
34
|
-
view: {
|
|
35
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
|
|
36
|
-
required: true;
|
|
37
|
-
};
|
|
38
|
-
innerDecorations: {
|
|
39
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
|
|
40
|
-
required: true;
|
|
41
|
-
};
|
|
42
|
-
HTMLAttributes: {
|
|
43
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
|
|
44
|
-
required: true;
|
|
45
|
-
};
|
|
46
|
-
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
47
|
-
editor: {
|
|
48
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
|
|
49
|
-
required: true;
|
|
50
|
-
};
|
|
51
|
-
node: {
|
|
52
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
|
|
53
|
-
required: true;
|
|
54
|
-
};
|
|
55
|
-
decorations: {
|
|
56
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
|
|
57
|
-
required: true;
|
|
58
|
-
};
|
|
59
|
-
selected: {
|
|
60
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
|
|
61
|
-
required: true;
|
|
62
|
-
};
|
|
63
|
-
extension: {
|
|
64
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
|
|
65
|
-
required: true;
|
|
66
|
-
};
|
|
67
|
-
getPos: {
|
|
68
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
|
|
69
|
-
required: true;
|
|
70
|
-
};
|
|
71
|
-
updateAttributes: {
|
|
72
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
|
|
73
|
-
required: true;
|
|
74
|
-
};
|
|
75
|
-
deleteNode: {
|
|
76
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
|
|
77
|
-
required: true;
|
|
78
|
-
};
|
|
79
|
-
view: {
|
|
80
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
|
|
81
|
-
required: true;
|
|
82
|
-
};
|
|
83
|
-
innerDecorations: {
|
|
84
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
|
|
85
|
-
required: true;
|
|
86
|
-
};
|
|
87
|
-
HTMLAttributes: {
|
|
88
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
|
|
89
|
-
required: true;
|
|
90
|
-
};
|
|
91
|
-
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
92
|
-
export default _default;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<!-- @vue-expect-error contenteditable exists -->
|
|
3
|
-
<node-view-wrapper
|
|
4
|
-
:class="twMerge(
|
|
5
|
-
`
|
|
6
|
-
group/file-loader
|
|
7
|
-
rounded-sm
|
|
8
|
-
animate-pulse
|
|
9
|
-
bg-accent-200
|
|
10
|
-
text-accent-800
|
|
11
|
-
dark:bg-accent-700
|
|
12
|
-
dark:text-accent-300
|
|
13
|
-
px-2
|
|
14
|
-
flex
|
|
15
|
-
flex-col
|
|
16
|
-
items-center
|
|
17
|
-
gap-2
|
|
18
|
-
`
|
|
19
|
-
)"
|
|
20
|
-
contenteditable="false"
|
|
21
|
-
>
|
|
22
|
-
<div class="self-start">
|
|
23
|
-
{{ `Loading "${node.attrs.fileName ?? `Unknown`}" ...` }}
|
|
24
|
-
</div>
|
|
25
|
-
<img
|
|
26
|
-
v-if="node.attrs.preview"
|
|
27
|
-
class="!max-h-[200px] !max-w-[200px] mb-2"
|
|
28
|
-
:src="node.attrs.preview"
|
|
29
|
-
alt="Loading Image"
|
|
30
|
-
>
|
|
31
|
-
</node-view-wrapper>
|
|
32
|
-
</template>
|
|
33
|
-
|
|
34
|
-
<script setup>
|
|
35
|
-
import { nodeViewProps, NodeViewWrapper } from "@tiptap/vue-3";
|
|
36
|
-
import { twMerge } from "tailwind-merge";
|
|
37
|
-
defineProps(nodeViewProps);
|
|
38
|
-
</script>
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
-
editor: {
|
|
3
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
|
|
4
|
-
required: true;
|
|
5
|
-
};
|
|
6
|
-
node: {
|
|
7
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
|
|
8
|
-
required: true;
|
|
9
|
-
};
|
|
10
|
-
decorations: {
|
|
11
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
|
|
12
|
-
required: true;
|
|
13
|
-
};
|
|
14
|
-
selected: {
|
|
15
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
|
|
16
|
-
required: true;
|
|
17
|
-
};
|
|
18
|
-
extension: {
|
|
19
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
|
|
20
|
-
required: true;
|
|
21
|
-
};
|
|
22
|
-
getPos: {
|
|
23
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
|
|
24
|
-
required: true;
|
|
25
|
-
};
|
|
26
|
-
updateAttributes: {
|
|
27
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
|
|
28
|
-
required: true;
|
|
29
|
-
};
|
|
30
|
-
deleteNode: {
|
|
31
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
|
|
32
|
-
required: true;
|
|
33
|
-
};
|
|
34
|
-
view: {
|
|
35
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
|
|
36
|
-
required: true;
|
|
37
|
-
};
|
|
38
|
-
innerDecorations: {
|
|
39
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
|
|
40
|
-
required: true;
|
|
41
|
-
};
|
|
42
|
-
HTMLAttributes: {
|
|
43
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
|
|
44
|
-
required: true;
|
|
45
|
-
};
|
|
46
|
-
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
47
|
-
editor: {
|
|
48
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["editor"]>;
|
|
49
|
-
required: true;
|
|
50
|
-
};
|
|
51
|
-
node: {
|
|
52
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["node"]>;
|
|
53
|
-
required: true;
|
|
54
|
-
};
|
|
55
|
-
decorations: {
|
|
56
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["decorations"]>;
|
|
57
|
-
required: true;
|
|
58
|
-
};
|
|
59
|
-
selected: {
|
|
60
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["selected"]>;
|
|
61
|
-
required: true;
|
|
62
|
-
};
|
|
63
|
-
extension: {
|
|
64
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["extension"]>;
|
|
65
|
-
required: true;
|
|
66
|
-
};
|
|
67
|
-
getPos: {
|
|
68
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["getPos"]>;
|
|
69
|
-
required: true;
|
|
70
|
-
};
|
|
71
|
-
updateAttributes: {
|
|
72
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["updateAttributes"]>;
|
|
73
|
-
required: true;
|
|
74
|
-
};
|
|
75
|
-
deleteNode: {
|
|
76
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["deleteNode"]>;
|
|
77
|
-
required: true;
|
|
78
|
-
};
|
|
79
|
-
view: {
|
|
80
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["view"]>;
|
|
81
|
-
required: true;
|
|
82
|
-
};
|
|
83
|
-
innerDecorations: {
|
|
84
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["innerDecorations"]>;
|
|
85
|
-
required: true;
|
|
86
|
-
};
|
|
87
|
-
HTMLAttributes: {
|
|
88
|
-
type: import("vue").PropType<import("@tiptap/core").NodeViewProps["HTMLAttributes"]>;
|
|
89
|
-
required: true;
|
|
90
|
-
};
|
|
91
|
-
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
92
|
-
export default _default;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { Editor } from "@tiptap/core";
|
|
2
|
-
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
3
|
-
import type { FileLoaderExtensionOptions } from "../types.js.js";
|
|
4
|
-
export declare const fileLoaderPluginKey: PluginKey<any>;
|
|
5
|
-
export declare function fileLoaderPlugin(editor: Editor, options: Pick<FileLoaderExtensionOptions, "cleanupOnLoad">): Plugin<any>;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
2
|
-
import { cleanupFileLoaderNodes } from "../utils/cleanupFileLoaderNodes.js";
|
|
3
|
-
export const fileLoaderPluginKey = new PluginKey("fileLoader");
|
|
4
|
-
export function fileLoaderPlugin(editor, options) {
|
|
5
|
-
let cleaned = false;
|
|
6
|
-
return new Plugin({
|
|
7
|
-
key: fileLoaderPluginKey,
|
|
8
|
-
/** See {@link DocumentApi} */
|
|
9
|
-
stateInit: (tr) => {
|
|
10
|
-
if (!options.cleanupOnLoad) return;
|
|
11
|
-
cleaned = true;
|
|
12
|
-
return cleanupFileLoaderNodes(
|
|
13
|
-
tr,
|
|
14
|
-
editor.schema,
|
|
15
|
-
editor.state.schema.nodes.fileLoader,
|
|
16
|
-
[
|
|
17
|
-
editor.state.schema.nodes.item,
|
|
18
|
-
editor.state.schema.nodes.list
|
|
19
|
-
],
|
|
20
|
-
editor.state.schema.nodes.paragraph
|
|
21
|
-
);
|
|
22
|
-
},
|
|
23
|
-
// in case the documentApi isn't being used to load documents
|
|
24
|
-
appendTransaction: (_, _oldState, newState) => {
|
|
25
|
-
if (!newState.tr.getMeta("cleanFileLoaders") && (!options.cleanupOnLoad || cleaned)) return;
|
|
26
|
-
cleaned = true;
|
|
27
|
-
return cleanupFileLoaderNodes(
|
|
28
|
-
newState.tr,
|
|
29
|
-
editor.schema,
|
|
30
|
-
editor.state.schema.nodes.fileLoader,
|
|
31
|
-
[
|
|
32
|
-
editor.state.schema.nodes.item,
|
|
33
|
-
editor.state.schema.nodes.list
|
|
34
|
-
],
|
|
35
|
-
editor.state.schema.nodes.paragraph
|
|
36
|
-
);
|
|
37
|
-
},
|
|
38
|
-
filterTransaction: (tr) => {
|
|
39
|
-
if (tr.getMeta("fileLoaderIgnore")) return false;
|
|
40
|
-
return true;
|
|
41
|
-
},
|
|
42
|
-
props: {
|
|
43
|
-
handleDOMEvents: {
|
|
44
|
-
drop: (view, event) => {
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
const pos = view.posAtCoords({ left: event.clientX, top: event.clientY });
|
|
47
|
-
if (!pos) return;
|
|
48
|
-
const position = pos.inside > 0 ? pos.inside : pos.pos - 1;
|
|
49
|
-
const files = Array.from(event.dataTransfer?.files ?? []);
|
|
50
|
-
void editor.commands.insertFile(files, position);
|
|
51
|
-
},
|
|
52
|
-
paste: (_view, event) => {
|
|
53
|
-
const files = Array.from(event.clipboardData?.files ?? []);
|
|
54
|
-
const htmlContent = event.clipboardData?.getData("text/html");
|
|
55
|
-
if (htmlContent) return;
|
|
56
|
-
void editor.commands.insertFile(files);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|