@tiptap/vue-2 2.6.2 → 3.0.0-next.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/dist/index.cjs +395 -346
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +97 -0
- package/dist/index.d.ts +97 -0
- package/dist/index.js +353 -330
- package/dist/index.js.map +1 -1
- package/package.json +10 -12
- package/src/BubbleMenu.ts +16 -5
- package/src/FloatingMenu.ts +9 -4
- package/dist/index.umd.js +0 -379
- package/dist/index.umd.js.map +0 -1
- package/dist/packages/core/src/CommandManager.d.ts +0 -20
- package/dist/packages/core/src/Editor.d.ts +0 -163
- package/dist/packages/core/src/EventEmitter.d.ts +0 -11
- package/dist/packages/core/src/Extension.d.ts +0 -344
- package/dist/packages/core/src/ExtensionManager.d.ts +0 -55
- package/dist/packages/core/src/InputRule.d.ts +0 -42
- package/dist/packages/core/src/Mark.d.ts +0 -452
- package/dist/packages/core/src/Node.d.ts +0 -612
- package/dist/packages/core/src/NodePos.d.ts +0 -44
- package/dist/packages/core/src/NodeView.d.ts +0 -31
- package/dist/packages/core/src/PasteRule.d.ts +0 -50
- package/dist/packages/core/src/Tracker.d.ts +0 -11
- package/dist/packages/core/src/commands/blur.d.ts +0 -13
- package/dist/packages/core/src/commands/clearContent.d.ts +0 -14
- package/dist/packages/core/src/commands/clearNodes.d.ts +0 -13
- package/dist/packages/core/src/commands/command.d.ts +0 -18
- package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -13
- package/dist/packages/core/src/commands/cut.d.ts +0 -20
- package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +0 -13
- package/dist/packages/core/src/commands/deleteNode.d.ts +0 -15
- package/dist/packages/core/src/commands/deleteRange.d.ts +0 -14
- package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -13
- package/dist/packages/core/src/commands/enter.d.ts +0 -13
- package/dist/packages/core/src/commands/exitCode.d.ts +0 -13
- package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -25
- package/dist/packages/core/src/commands/first.d.ts +0 -14
- package/dist/packages/core/src/commands/focus.d.ts +0 -27
- package/dist/packages/core/src/commands/forEach.d.ts +0 -14
- package/dist/packages/core/src/commands/index.d.ts +0 -55
- package/dist/packages/core/src/commands/insertContent.d.ts +0 -34
- package/dist/packages/core/src/commands/insertContentAt.d.ts +0 -47
- package/dist/packages/core/src/commands/join.d.ts +0 -41
- package/dist/packages/core/src/commands/joinItemBackward.d.ts +0 -13
- package/dist/packages/core/src/commands/joinItemForward.d.ts +0 -13
- package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +0 -12
- package/dist/packages/core/src/commands/joinTextblockForward.d.ts +0 -12
- package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -14
- package/dist/packages/core/src/commands/lift.d.ts +0 -17
- package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -13
- package/dist/packages/core/src/commands/liftListItem.d.ts +0 -15
- package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -13
- package/dist/packages/core/src/commands/resetAttributes.d.ts +0 -16
- package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -13
- package/dist/packages/core/src/commands/selectAll.d.ts +0 -13
- package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -13
- package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -13
- package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -13
- package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +0 -13
- package/dist/packages/core/src/commands/selectTextblockStart.d.ts +0 -13
- package/dist/packages/core/src/commands/setContent.d.ts +0 -40
- package/dist/packages/core/src/commands/setMark.d.ts +0 -15
- package/dist/packages/core/src/commands/setMeta.d.ts +0 -16
- package/dist/packages/core/src/commands/setNode.d.ts +0 -16
- package/dist/packages/core/src/commands/setNodeSelection.d.ts +0 -14
- package/dist/packages/core/src/commands/setTextSelection.d.ts +0 -14
- package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -15
- package/dist/packages/core/src/commands/splitBlock.d.ts +0 -17
- package/dist/packages/core/src/commands/splitListItem.d.ts +0 -16
- package/dist/packages/core/src/commands/toggleList.d.ts +0 -18
- package/dist/packages/core/src/commands/toggleMark.d.ts +0 -30
- package/dist/packages/core/src/commands/toggleNode.d.ts +0 -17
- package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -16
- package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -13
- package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -13
- package/dist/packages/core/src/commands/unsetMark.d.ts +0 -25
- package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -24
- package/dist/packages/core/src/commands/wrapIn.d.ts +0 -16
- package/dist/packages/core/src/commands/wrapInList.d.ts +0 -16
- package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -5
- package/dist/packages/core/src/extensions/commands.d.ts +0 -3
- package/dist/packages/core/src/extensions/editable.d.ts +0 -2
- package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
- package/dist/packages/core/src/extensions/index.d.ts +0 -6
- package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
- package/dist/packages/core/src/extensions/tabindex.d.ts +0 -2
- package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +0 -10
- package/dist/packages/core/src/helpers/createChainableState.d.ts +0 -10
- package/dist/packages/core/src/helpers/createDocument.d.ts +0 -12
- package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -15
- package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +0 -7
- package/dist/packages/core/src/helpers/findChildren.d.ts +0 -9
- package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +0 -10
- package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -16
- package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -17
- package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -8
- package/dist/packages/core/src/helpers/generateJSON.d.ts +0 -8
- package/dist/packages/core/src/helpers/generateText.d.ts +0 -12
- package/dist/packages/core/src/helpers/getAttributes.d.ts +0 -9
- package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
- package/dist/packages/core/src/helpers/getChangedRanges.d.ts +0 -11
- package/dist/packages/core/src/helpers/getDebugJSON.d.ts +0 -8
- package/dist/packages/core/src/helpers/getExtensionField.d.ts +0 -9
- package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
- package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
- package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
- package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
- package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +0 -11
- package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
- package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getSchema.d.ts +0 -4
- package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +0 -10
- package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -8
- package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -8
- package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -9
- package/dist/packages/core/src/helpers/getText.d.ts +0 -15
- package/dist/packages/core/src/helpers/getTextBetween.d.ts +0 -14
- package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +0 -8
- package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +0 -8
- package/dist/packages/core/src/helpers/index.d.ts +0 -50
- package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
- package/dist/packages/core/src/helpers/isActive.d.ts +0 -2
- package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +0 -2
- package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +0 -2
- package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +0 -2
- package/dist/packages/core/src/helpers/isList.d.ts +0 -2
- package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -3
- package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -3
- package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -14
- package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
- package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
- package/dist/packages/core/src/helpers/posToDOMRect.d.ts +0 -2
- package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +0 -4
- package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
- package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
- package/dist/packages/core/src/index.d.ts +0 -24
- package/dist/packages/core/src/inputRules/index.d.ts +0 -5
- package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -13
- package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -23
- package/dist/packages/core/src/inputRules/textInputRule.d.ts +0 -10
- package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +0 -15
- package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +0 -28
- package/dist/packages/core/src/pasteRules/index.d.ts +0 -3
- package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -13
- package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +0 -14
- package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +0 -10
- package/dist/packages/core/src/style.d.ts +0 -1
- package/dist/packages/core/src/types.d.ts +0 -253
- package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -9
- package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
- package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -6
- package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
- package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +0 -1
- package/dist/packages/core/src/utilities/findDuplicates.d.ts +0 -1
- package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
- package/dist/packages/core/src/utilities/index.d.ts +0 -20
- package/dist/packages/core/src/utilities/isAndroid.d.ts +0 -1
- package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
- package/dist/packages/core/src/utilities/isFunction.d.ts +0 -1
- package/dist/packages/core/src/utilities/isMacOS.d.ts +0 -1
- package/dist/packages/core/src/utilities/isNumber.d.ts +0 -1
- package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
- package/dist/packages/core/src/utilities/isRegExp.d.ts +0 -1
- package/dist/packages/core/src/utilities/isString.d.ts +0 -1
- package/dist/packages/core/src/utilities/isiOS.d.ts +0 -1
- package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -1
- package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -1
- package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
- package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -8
- package/dist/packages/core/src/utilities/removeDuplicates.d.ts +0 -8
- package/dist/packages/extension-bubble-menu/src/bubble-menu-plugin.d.ts +0 -76
- package/dist/packages/extension-bubble-menu/src/bubble-menu.d.ts +0 -15
- package/dist/packages/extension-bubble-menu/src/index.d.ts +0 -4
- package/dist/packages/extension-floating-menu/src/floating-menu-plugin.d.ts +0 -66
- package/dist/packages/extension-floating-menu/src/floating-menu.d.ts +0 -15
- package/dist/packages/extension-floating-menu/src/index.d.ts +0 -4
- package/dist/packages/vue-2/src/BubbleMenu.d.ts +0 -10
- package/dist/packages/vue-2/src/Editor.d.ts +0 -5
- package/dist/packages/vue-2/src/EditorContent.d.ts +0 -6
- package/dist/packages/vue-2/src/FloatingMenu.d.ts +0 -9
- package/dist/packages/vue-2/src/NodeViewContent.d.ts +0 -5
- package/dist/packages/vue-2/src/NodeViewWrapper.d.ts +0 -9
- package/dist/packages/vue-2/src/VueNodeViewRenderer.d.ts +0 -37
- package/dist/packages/vue-2/src/VueRenderer.d.ts +0 -12
- package/dist/packages/vue-2/src/index.d.ts +0 -9
package/dist/index.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../src/BubbleMenu.ts","../src/Editor.ts","../src/EditorContent.ts","../src/FloatingMenu.ts","../src/NodeViewContent.ts","../src/NodeViewWrapper.ts","../src/VueRenderer.ts","../src/VueNodeViewRenderer.ts"],"sourcesContent":["import { BubbleMenuPlugin, BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu'\nimport Vue, { Component, CreateElement, PropType } from 'vue'\n\nexport interface BubbleMenuInterface extends Vue {\n pluginKey: BubbleMenuPluginProps['pluginKey'],\n editor: BubbleMenuPluginProps['editor'],\n tippyOptions: BubbleMenuPluginProps['tippyOptions'],\n updateDelay: BubbleMenuPluginProps['updateDelay'],\n shouldShow: BubbleMenuPluginProps['shouldShow'],\n}\n\nexport const BubbleMenu: Component = {\n name: 'BubbleMenu',\n\n props: {\n pluginKey: {\n type: [String, Object as PropType<Exclude<BubbleMenuPluginProps['pluginKey'], string>>],\n default: 'bubbleMenu',\n },\n\n editor: {\n type: Object as PropType<BubbleMenuPluginProps['editor']>,\n required: true,\n },\n\n updateDelay: {\n type: Number as PropType<BubbleMenuPluginProps['updateDelay']>,\n },\n\n tippyOptions: {\n type: Object as PropType<BubbleMenuPluginProps['tippyOptions']>,\n default: () => ({}),\n },\n\n shouldShow: {\n type: Function as PropType<Exclude<BubbleMenuPluginProps['shouldShow'], null>>,\n default: null,\n },\n },\n\n watch: {\n editor: {\n immediate: true,\n handler(this: BubbleMenuInterface, editor: BubbleMenuPluginProps['editor']) {\n if (!editor) {\n return\n }\n\n this.$nextTick(() => {\n editor.registerPlugin(BubbleMenuPlugin({\n updateDelay: this.updateDelay,\n editor,\n element: this.$el as HTMLElement,\n pluginKey: this.pluginKey,\n shouldShow: this.shouldShow,\n tippyOptions: this.tippyOptions,\n }))\n })\n },\n },\n },\n\n render(this: BubbleMenuInterface, createElement: CreateElement) {\n return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default)\n },\n\n beforeDestroy(this: BubbleMenuInterface) {\n this.editor.unregisterPlugin(this.pluginKey)\n },\n}\n","import { Editor as CoreEditor } from '@tiptap/core'\nimport Vue from 'vue'\n\nexport class Editor extends CoreEditor {\n public contentComponent: Vue | null = null\n}\n","import Vue, { Component, CreateElement, PropType } from 'vue'\n\nimport { Editor } from './Editor.js'\n\nexport interface EditorContentInterface extends Vue {\n editor: Editor,\n}\n\nexport const EditorContent: Component = {\n name: 'EditorContent',\n\n props: {\n editor: {\n default: null,\n type: Object as PropType<Editor>,\n },\n },\n\n watch: {\n editor: {\n immediate: true,\n handler(this: EditorContentInterface, editor: Editor) {\n if (editor && editor.options.element) {\n this.$nextTick(() => {\n const element = this.$el\n\n if (!element || !editor.options.element.firstChild) {\n return\n }\n\n element.append(...editor.options.element.childNodes)\n editor.contentComponent = this\n\n editor.setOptions({\n element,\n })\n\n editor.createNodeViews()\n })\n }\n },\n },\n },\n\n render(createElement: CreateElement) {\n return createElement('div')\n },\n\n beforeDestroy(this: EditorContentInterface) {\n const { editor } = this\n\n if (!editor) {\n return\n }\n\n if (!editor.isDestroyed) {\n editor.view.setProps({\n nodeViews: {},\n })\n }\n\n editor.contentComponent = null\n\n if (!editor.options.element.firstChild) {\n return\n }\n\n const newElement = document.createElement('div')\n\n newElement.append(...editor.options.element.childNodes)\n\n editor.setOptions({\n element: newElement,\n })\n },\n}\n","import { FloatingMenuPlugin, FloatingMenuPluginProps } from '@tiptap/extension-floating-menu'\nimport Vue, { Component, CreateElement, PropType } from 'vue'\n\nexport interface FloatingMenuInterface extends Vue {\n pluginKey: FloatingMenuPluginProps['pluginKey'],\n tippyOptions: FloatingMenuPluginProps['tippyOptions'],\n editor: FloatingMenuPluginProps['editor'],\n shouldShow: FloatingMenuPluginProps['shouldShow'],\n}\n\nexport const FloatingMenu: Component = {\n name: 'FloatingMenu',\n\n props: {\n pluginKey: {\n type: [String, Object as PropType<Exclude<FloatingMenuPluginProps['pluginKey'], string>>],\n default: 'floatingMenu',\n },\n\n editor: {\n type: Object as PropType<FloatingMenuPluginProps['editor']>,\n required: true,\n },\n\n tippyOptions: {\n type: Object as PropType<FloatingMenuPluginProps['tippyOptions']>,\n default: () => ({}),\n },\n\n shouldShow: {\n type: Function as PropType<Exclude<FloatingMenuPluginProps['shouldShow'], null>>,\n default: null,\n },\n },\n\n watch: {\n editor: {\n immediate: true,\n handler(this: FloatingMenuInterface, editor: FloatingMenuPluginProps['editor']) {\n if (!editor) {\n return\n }\n\n this.$nextTick(() => {\n editor.registerPlugin(FloatingMenuPlugin({\n pluginKey: this.pluginKey,\n editor,\n element: this.$el as HTMLElement,\n tippyOptions: this.tippyOptions,\n shouldShow: this.shouldShow,\n }))\n })\n },\n },\n },\n\n render(this: FloatingMenuInterface, createElement: CreateElement) {\n return createElement('div', { style: { visibility: 'hidden' } }, this.$slots.default)\n },\n\n beforeDestroy(this: FloatingMenuInterface) {\n this.editor.unregisterPlugin(this.pluginKey)\n },\n}\n","import Vue, { Component, CreateElement } from 'vue'\n\nexport interface NodeViewContentInterface extends Vue {\n as: string,\n}\n\nexport const NodeViewContent: Component = {\n props: {\n as: {\n type: String,\n default: 'div',\n },\n },\n\n render(this: NodeViewContentInterface, createElement: CreateElement) {\n return createElement(this.as, {\n style: {\n whiteSpace: 'pre-wrap',\n },\n attrs: {\n 'data-node-view-content': '',\n },\n })\n },\n}\n","import Vue, { Component, CreateElement } from 'vue'\n\nexport interface NodeViewWrapperInterface extends Vue {\n as: string,\n decorationClasses: {\n value: string,\n },\n onDragStart: Function,\n}\n\nexport const NodeViewWrapper: Component = {\n props: {\n as: {\n type: String,\n default: 'div',\n },\n },\n\n inject: ['onDragStart', 'decorationClasses'],\n\n render(this: NodeViewWrapperInterface, createElement: CreateElement) {\n return createElement(\n this.as,\n {\n class: this.decorationClasses.value,\n style: {\n whiteSpace: 'normal',\n },\n attrs: {\n 'data-node-view-wrapper': '',\n },\n on: {\n dragstart: this.onDragStart,\n },\n },\n this.$slots.default,\n )\n },\n}\n","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/umd'\n\n/**\n * The VueRenderer class is responsible for rendering a Vue component as a ProseMirror node view.\n */\nexport class VueRenderer {\n ref!: Vue\n\n constructor(component: Vue | VueConstructor, props: any) {\n const Component = (typeof component === 'function') ? component : Vue.extend(component)\n\n this.ref = new Component(props).$mount()\n }\n\n get element(): Element {\n return this.ref.$el\n }\n\n updateProps(props: Record<string, any> = {}): void {\n if (!this.ref.$props) {\n return\n }\n\n // prevents `Avoid mutating a prop directly` error message\n // Fix: `VueNodeViewRenderer` change vue Constructor `config.silent` not working\n const currentVueConstructor = this.ref.$props.editor?.contentComponent?.$options._base ?? Vue // eslint-disable-line\n const originalSilent = currentVueConstructor.config.silent\n\n currentVueConstructor.config.silent = true\n\n Object\n .entries(props)\n .forEach(([key, value]) => {\n this.ref.$props[key] = value\n })\n\n currentVueConstructor.config.silent = originalSilent\n }\n\n destroy(): void {\n this.ref.$destroy()\n }\n}\n","import {\n DecorationWithType,\n NodeView,\n NodeViewProps,\n NodeViewRenderer,\n NodeViewRendererOptions,\n NodeViewRendererProps,\n} from '@tiptap/core'\nimport { Node as ProseMirrorNode } from '@tiptap/pm/model'\nimport { Decoration, NodeView as ProseMirrorNodeView } from '@tiptap/pm/view'\nimport Vue from 'vue'\nimport { VueConstructor } from 'vue/types/umd'\nimport { booleanProp, functionProp, objectProp } from 'vue-ts-types'\n\nimport { Editor } from './Editor.js'\nimport { VueRenderer } from './VueRenderer.js'\n\nexport const nodeViewProps = {\n editor: objectProp<NodeViewProps['editor']>().required,\n node: objectProp<NodeViewProps['node']>().required,\n decorations: objectProp<NodeViewProps['decorations']>().required,\n selected: booleanProp().required,\n extension: objectProp<NodeViewProps['extension']>().required,\n getPos: functionProp<NodeViewProps['getPos']>().required,\n updateAttributes: functionProp<NodeViewProps['updateAttributes']>().required,\n deleteNode: functionProp<NodeViewProps['deleteNode']>().required,\n}\n\nexport interface VueNodeViewRendererOptions extends NodeViewRendererOptions {\n update:\n | ((props: {\n oldNode: ProseMirrorNode\n oldDecorations: Decoration[]\n newNode: ProseMirrorNode\n newDecorations: Decoration[]\n updateProps: () => void\n }) => boolean)\n | null\n}\n\nclass VueNodeView extends NodeView<Vue | VueConstructor, Editor, VueNodeViewRendererOptions> {\n renderer!: VueRenderer\n\n decorationClasses!: {\n value: string\n }\n\n mount() {\n const props: NodeViewProps = {\n editor: this.editor,\n node: this.node,\n decorations: this.decorations,\n selected: false,\n extension: this.extension,\n getPos: () => this.getPos(),\n updateAttributes: (attributes = {}) => this.updateAttributes(attributes),\n deleteNode: () => this.deleteNode(),\n }\n\n const onDragStart = this.onDragStart.bind(this)\n\n this.decorationClasses = Vue.observable({\n value: this.getDecorationClasses(),\n })\n\n // @ts-ignore\n const vue = this.editor.contentComponent?.$options._base ?? Vue // eslint-disable-line\n\n const Component = vue.extend(this.component).extend({\n props: Object.keys(props),\n provide: () => {\n return {\n onDragStart,\n decorationClasses: this.decorationClasses,\n }\n },\n })\n\n this.renderer = new VueRenderer(Component, {\n parent: this.editor.contentComponent,\n propsData: props,\n })\n }\n\n get dom() {\n if (!this.renderer.element.hasAttribute('data-node-view-wrapper')) {\n throw Error('Please use the NodeViewWrapper component for your node view.')\n }\n\n return this.renderer.element as HTMLElement\n }\n\n get contentDOM() {\n if (this.node.isLeaf) {\n return null\n }\n\n const contentElement = this.dom.querySelector('[data-node-view-content]')\n\n return (contentElement || this.dom) as HTMLElement | null\n }\n\n update(node: ProseMirrorNode, decorations: DecorationWithType[]) {\n const updateProps = (props?: Record<string, any>) => {\n this.decorationClasses.value = this.getDecorationClasses()\n this.renderer.updateProps(props)\n }\n\n if (typeof this.options.update === 'function') {\n const oldNode = this.node\n const oldDecorations = this.decorations\n\n this.node = node\n this.decorations = decorations\n\n return this.options.update({\n oldNode,\n oldDecorations,\n newNode: node,\n newDecorations: decorations,\n updateProps: () => updateProps({ node, decorations }),\n })\n }\n\n if (node.type !== this.node.type) {\n return false\n }\n\n if (node === this.node && this.decorations === decorations) {\n return true\n }\n\n this.node = node\n this.decorations = decorations\n\n updateProps({ node, decorations })\n\n return true\n }\n\n selectNode() {\n this.renderer.updateProps({\n selected: true,\n })\n this.renderer.element.classList.add('ProseMirror-selectednode')\n }\n\n deselectNode() {\n this.renderer.updateProps({\n selected: false,\n })\n this.renderer.element.classList.remove('ProseMirror-selectednode')\n }\n\n getDecorationClasses() {\n return (\n this.decorations\n // @ts-ignore\n .map(item => item.type.attrs.class)\n .flat()\n .join(' ')\n )\n }\n\n destroy() {\n this.renderer.destroy()\n }\n}\n\nexport function VueNodeViewRenderer(\n component: Vue | VueConstructor,\n options?: Partial<VueNodeViewRendererOptions>,\n): NodeViewRenderer {\n return (props: NodeViewRendererProps) => {\n // try to get the parent component\n // this is important for vue devtools to show the component hierarchy correctly\n // maybe it’s `undefined` because <editor-content> isn’t rendered yet\n if (!(props.editor as Editor).contentComponent) {\n return {}\n }\n\n return new VueNodeView(component, props, options) as unknown as ProseMirrorNodeView\n }\n}\n"],"names":["BubbleMenuPlugin","CoreEditor","FloatingMenuPlugin","objectProp","booleanProp","functionProp","NodeView"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { EditorState, Transaction } from '@tiptap/pm/state';
|
|
2
|
-
import { Editor } from './Editor.js';
|
|
3
|
-
import { AnyCommands, CanCommands, ChainedCommands, CommandProps, SingleCommands } from './types.js';
|
|
4
|
-
export declare class CommandManager {
|
|
5
|
-
editor: Editor;
|
|
6
|
-
rawCommands: AnyCommands;
|
|
7
|
-
customState?: EditorState;
|
|
8
|
-
constructor(props: {
|
|
9
|
-
editor: Editor;
|
|
10
|
-
state?: EditorState;
|
|
11
|
-
});
|
|
12
|
-
get hasCustomState(): boolean;
|
|
13
|
-
get state(): EditorState;
|
|
14
|
-
get commands(): SingleCommands;
|
|
15
|
-
get chain(): () => ChainedCommands;
|
|
16
|
-
get can(): () => CanCommands;
|
|
17
|
-
createChain(startTr?: Transaction, shouldDispatch?: boolean): ChainedCommands;
|
|
18
|
-
createCan(startTr?: Transaction): CanCommands;
|
|
19
|
-
buildProps(tr: Transaction, shouldDispatch?: boolean): CommandProps;
|
|
20
|
-
}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { MarkType, NodeType, Schema } from '@tiptap/pm/model';
|
|
2
|
-
import { EditorState, Plugin, PluginKey, Transaction } from '@tiptap/pm/state';
|
|
3
|
-
import { EditorView } from '@tiptap/pm/view';
|
|
4
|
-
import { EventEmitter } from './EventEmitter.js';
|
|
5
|
-
import { ExtensionManager } from './ExtensionManager.js';
|
|
6
|
-
import { NodePos } from './NodePos.js';
|
|
7
|
-
import { CanCommands, ChainedCommands, EditorEvents, EditorOptions, JSONContent, SingleCommands, TextSerializer } from './types.js';
|
|
8
|
-
export * as extensions from './extensions/index.js';
|
|
9
|
-
export interface TiptapEditorHTMLElement extends HTMLElement {
|
|
10
|
-
editor?: Editor;
|
|
11
|
-
}
|
|
12
|
-
export declare class Editor extends EventEmitter<EditorEvents> {
|
|
13
|
-
private commandManager;
|
|
14
|
-
extensionManager: ExtensionManager;
|
|
15
|
-
private css;
|
|
16
|
-
schema: Schema;
|
|
17
|
-
view: EditorView;
|
|
18
|
-
isFocused: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* The editor is considered initialized after the `create` event has been emitted.
|
|
21
|
-
*/
|
|
22
|
-
isInitialized: boolean;
|
|
23
|
-
extensionStorage: Record<string, any>;
|
|
24
|
-
options: EditorOptions;
|
|
25
|
-
constructor(options?: Partial<EditorOptions>);
|
|
26
|
-
/**
|
|
27
|
-
* Returns the editor storage.
|
|
28
|
-
*/
|
|
29
|
-
get storage(): Record<string, any>;
|
|
30
|
-
/**
|
|
31
|
-
* An object of all registered commands.
|
|
32
|
-
*/
|
|
33
|
-
get commands(): SingleCommands;
|
|
34
|
-
/**
|
|
35
|
-
* Create a command chain to call multiple commands at once.
|
|
36
|
-
*/
|
|
37
|
-
chain(): ChainedCommands;
|
|
38
|
-
/**
|
|
39
|
-
* Check if a command or a command chain can be executed. Without executing it.
|
|
40
|
-
*/
|
|
41
|
-
can(): CanCommands;
|
|
42
|
-
/**
|
|
43
|
-
* Inject CSS styles.
|
|
44
|
-
*/
|
|
45
|
-
private injectCSS;
|
|
46
|
-
/**
|
|
47
|
-
* Update editor options.
|
|
48
|
-
*
|
|
49
|
-
* @param options A list of options
|
|
50
|
-
*/
|
|
51
|
-
setOptions(options?: Partial<EditorOptions>): void;
|
|
52
|
-
/**
|
|
53
|
-
* Update editable state of the editor.
|
|
54
|
-
*/
|
|
55
|
-
setEditable(editable: boolean, emitUpdate?: boolean): void;
|
|
56
|
-
/**
|
|
57
|
-
* Returns whether the editor is editable.
|
|
58
|
-
*/
|
|
59
|
-
get isEditable(): boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Returns the editor state.
|
|
62
|
-
*/
|
|
63
|
-
get state(): EditorState;
|
|
64
|
-
/**
|
|
65
|
-
* Register a ProseMirror plugin.
|
|
66
|
-
*
|
|
67
|
-
* @param plugin A ProseMirror plugin
|
|
68
|
-
* @param handlePlugins Control how to merge the plugin into the existing plugins.
|
|
69
|
-
*/
|
|
70
|
-
registerPlugin(plugin: Plugin, handlePlugins?: (newPlugin: Plugin, plugins: Plugin[]) => Plugin[]): void;
|
|
71
|
-
/**
|
|
72
|
-
* Unregister a ProseMirror plugin.
|
|
73
|
-
*
|
|
74
|
-
* @param nameOrPluginKey The plugins name
|
|
75
|
-
*/
|
|
76
|
-
unregisterPlugin(nameOrPluginKey: string | PluginKey): void;
|
|
77
|
-
/**
|
|
78
|
-
* Creates an extension manager.
|
|
79
|
-
*/
|
|
80
|
-
private createExtensionManager;
|
|
81
|
-
/**
|
|
82
|
-
* Creates an command manager.
|
|
83
|
-
*/
|
|
84
|
-
private createCommandManager;
|
|
85
|
-
/**
|
|
86
|
-
* Creates a ProseMirror schema.
|
|
87
|
-
*/
|
|
88
|
-
private createSchema;
|
|
89
|
-
/**
|
|
90
|
-
* Creates a ProseMirror view.
|
|
91
|
-
*/
|
|
92
|
-
private createView;
|
|
93
|
-
/**
|
|
94
|
-
* Creates all node views.
|
|
95
|
-
*/
|
|
96
|
-
createNodeViews(): void;
|
|
97
|
-
/**
|
|
98
|
-
* Prepend class name to element.
|
|
99
|
-
*/
|
|
100
|
-
prependClass(): void;
|
|
101
|
-
isCapturingTransaction: boolean;
|
|
102
|
-
private capturedTransaction;
|
|
103
|
-
captureTransaction(fn: Function): Transaction | null;
|
|
104
|
-
/**
|
|
105
|
-
* The callback over which to send transactions (state updates) produced by the view.
|
|
106
|
-
*
|
|
107
|
-
* @param transaction An editor state transaction
|
|
108
|
-
*/
|
|
109
|
-
private dispatchTransaction;
|
|
110
|
-
/**
|
|
111
|
-
* Get attributes of the currently selected node or mark.
|
|
112
|
-
*/
|
|
113
|
-
getAttributes(nameOrType: string | NodeType | MarkType): Record<string, any>;
|
|
114
|
-
/**
|
|
115
|
-
* Returns if the currently selected node or mark is active.
|
|
116
|
-
*
|
|
117
|
-
* @param name Name of the node or mark
|
|
118
|
-
* @param attributes Attributes of the node or mark
|
|
119
|
-
*/
|
|
120
|
-
isActive(name: string, attributes?: {}): boolean;
|
|
121
|
-
isActive(attributes: {}): boolean;
|
|
122
|
-
/**
|
|
123
|
-
* Get the document as JSON.
|
|
124
|
-
*/
|
|
125
|
-
getJSON(): JSONContent;
|
|
126
|
-
/**
|
|
127
|
-
* Get the document as HTML.
|
|
128
|
-
*/
|
|
129
|
-
getHTML(): string;
|
|
130
|
-
/**
|
|
131
|
-
* Get the document as text.
|
|
132
|
-
*/
|
|
133
|
-
getText(options?: {
|
|
134
|
-
blockSeparator?: string;
|
|
135
|
-
textSerializers?: Record<string, TextSerializer>;
|
|
136
|
-
}): string;
|
|
137
|
-
/**
|
|
138
|
-
* Check if there is no content.
|
|
139
|
-
*/
|
|
140
|
-
get isEmpty(): boolean;
|
|
141
|
-
/**
|
|
142
|
-
* Get the number of characters for the current document.
|
|
143
|
-
*
|
|
144
|
-
* @deprecated
|
|
145
|
-
*/
|
|
146
|
-
getCharacterCount(): number;
|
|
147
|
-
/**
|
|
148
|
-
* Destroy the editor.
|
|
149
|
-
*/
|
|
150
|
-
destroy(): void;
|
|
151
|
-
/**
|
|
152
|
-
* Check if the editor is already destroyed.
|
|
153
|
-
*/
|
|
154
|
-
get isDestroyed(): boolean;
|
|
155
|
-
$node(selector: string, attributes?: {
|
|
156
|
-
[key: string]: any;
|
|
157
|
-
}): NodePos | null;
|
|
158
|
-
$nodes(selector: string, attributes?: {
|
|
159
|
-
[key: string]: any;
|
|
160
|
-
}): NodePos[] | null;
|
|
161
|
-
$pos(pos: number): NodePos;
|
|
162
|
-
get $doc(): NodePos;
|
|
163
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
type StringKeyOf<T> = Extract<keyof T, string>;
|
|
2
|
-
type CallbackType<T extends Record<string, any>, EventName extends StringKeyOf<T>> = T[EventName] extends any[] ? T[EventName] : [T[EventName]];
|
|
3
|
-
type CallbackFunction<T extends Record<string, any>, EventName extends StringKeyOf<T>> = (...props: CallbackType<T, EventName>) => any;
|
|
4
|
-
export declare class EventEmitter<T extends Record<string, any>> {
|
|
5
|
-
private callbacks;
|
|
6
|
-
on<EventName extends StringKeyOf<T>>(event: EventName, fn: CallbackFunction<T, EventName>): this;
|
|
7
|
-
emit<EventName extends StringKeyOf<T>>(event: EventName, ...args: CallbackType<T, EventName>): this;
|
|
8
|
-
off<EventName extends StringKeyOf<T>>(event: EventName, fn?: CallbackFunction<T, EventName>): this;
|
|
9
|
-
removeAllListeners(): void;
|
|
10
|
-
}
|
|
11
|
-
export {};
|
|
@@ -1,344 +0,0 @@
|
|
|
1
|
-
import { Plugin, Transaction } from '@tiptap/pm/state';
|
|
2
|
-
import { Editor } from './Editor.js';
|
|
3
|
-
import { ExtensionConfig } from './index.js';
|
|
4
|
-
import { InputRule } from './InputRule.js';
|
|
5
|
-
import { Mark } from './Mark.js';
|
|
6
|
-
import { Node } from './Node.js';
|
|
7
|
-
import { PasteRule } from './PasteRule.js';
|
|
8
|
-
import { Extensions, GlobalAttributes, KeyboardShortcutCommand, ParentConfig, RawCommands } from './types.js';
|
|
9
|
-
declare module '@tiptap/core' {
|
|
10
|
-
interface ExtensionConfig<Options = any, Storage = any> {
|
|
11
|
-
[key: string]: any;
|
|
12
|
-
/**
|
|
13
|
-
* The extension name - this must be unique.
|
|
14
|
-
* It will be used to identify the extension.
|
|
15
|
-
*
|
|
16
|
-
* @example 'myExtension'
|
|
17
|
-
*/
|
|
18
|
-
name: string;
|
|
19
|
-
/**
|
|
20
|
-
* The priority of your extension. The higher, the earlier it will be called
|
|
21
|
-
* and will take precedence over other extensions with a lower priority.
|
|
22
|
-
* @default 100
|
|
23
|
-
* @example 101
|
|
24
|
-
*/
|
|
25
|
-
priority?: number;
|
|
26
|
-
/**
|
|
27
|
-
* The default options for this extension.
|
|
28
|
-
* @example
|
|
29
|
-
* defaultOptions: {
|
|
30
|
-
* myOption: 'foo',
|
|
31
|
-
* myOtherOption: 10,
|
|
32
|
-
* }
|
|
33
|
-
*/
|
|
34
|
-
defaultOptions?: Options;
|
|
35
|
-
/**
|
|
36
|
-
* This method will add options to this extension
|
|
37
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#settings
|
|
38
|
-
* @example
|
|
39
|
-
* addOptions() {
|
|
40
|
-
* return {
|
|
41
|
-
* myOption: 'foo',
|
|
42
|
-
* myOtherOption: 10,
|
|
43
|
-
* }
|
|
44
|
-
*/
|
|
45
|
-
addOptions?: (this: {
|
|
46
|
-
name: string;
|
|
47
|
-
parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addOptions'], undefined>;
|
|
48
|
-
}) => Options;
|
|
49
|
-
/**
|
|
50
|
-
* The default storage this extension can save data to.
|
|
51
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#storage
|
|
52
|
-
* @example
|
|
53
|
-
* defaultStorage: {
|
|
54
|
-
* prefetchedUsers: [],
|
|
55
|
-
* loading: false,
|
|
56
|
-
* }
|
|
57
|
-
*/
|
|
58
|
-
addStorage?: (this: {
|
|
59
|
-
name: string;
|
|
60
|
-
options: Options;
|
|
61
|
-
parent: Exclude<ParentConfig<ExtensionConfig<Options, Storage>>['addStorage'], undefined>;
|
|
62
|
-
}) => Storage;
|
|
63
|
-
/**
|
|
64
|
-
* This function adds globalAttributes to specific nodes.
|
|
65
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#global-attributes
|
|
66
|
-
* @example
|
|
67
|
-
* addGlobalAttributes() {
|
|
68
|
-
* return [
|
|
69
|
-
* {
|
|
70
|
-
// Extend the following extensions
|
|
71
|
-
* types: [
|
|
72
|
-
* 'heading',
|
|
73
|
-
* 'paragraph',
|
|
74
|
-
* ],
|
|
75
|
-
* // … with those attributes
|
|
76
|
-
* attributes: {
|
|
77
|
-
* textAlign: {
|
|
78
|
-
* default: 'left',
|
|
79
|
-
* renderHTML: attributes => ({
|
|
80
|
-
* style: `text-align: ${attributes.textAlign}`,
|
|
81
|
-
* }),
|
|
82
|
-
* parseHTML: element => element.style.textAlign || 'left',
|
|
83
|
-
* },
|
|
84
|
-
* },
|
|
85
|
-
* },
|
|
86
|
-
* ]
|
|
87
|
-
* }
|
|
88
|
-
*/
|
|
89
|
-
addGlobalAttributes?: (this: {
|
|
90
|
-
name: string;
|
|
91
|
-
options: Options;
|
|
92
|
-
storage: Storage;
|
|
93
|
-
extensions: (Node | Mark)[];
|
|
94
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addGlobalAttributes'];
|
|
95
|
-
}) => GlobalAttributes;
|
|
96
|
-
/**
|
|
97
|
-
* This function adds commands to the editor
|
|
98
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#commands
|
|
99
|
-
* @example
|
|
100
|
-
* addCommands() {
|
|
101
|
-
* return {
|
|
102
|
-
* myCommand: () => ({ chain }) => chain().setMark('type', 'foo').run(),
|
|
103
|
-
* }
|
|
104
|
-
* }
|
|
105
|
-
*/
|
|
106
|
-
addCommands?: (this: {
|
|
107
|
-
name: string;
|
|
108
|
-
options: Options;
|
|
109
|
-
storage: Storage;
|
|
110
|
-
editor: Editor;
|
|
111
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addCommands'];
|
|
112
|
-
}) => Partial<RawCommands>;
|
|
113
|
-
/**
|
|
114
|
-
* This function registers keyboard shortcuts.
|
|
115
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#keyboard-shortcuts
|
|
116
|
-
* @example
|
|
117
|
-
* addKeyboardShortcuts() {
|
|
118
|
-
* return {
|
|
119
|
-
* 'Mod-l': () => this.editor.commands.toggleBulletList(),
|
|
120
|
-
* }
|
|
121
|
-
* },
|
|
122
|
-
*/
|
|
123
|
-
addKeyboardShortcuts?: (this: {
|
|
124
|
-
name: string;
|
|
125
|
-
options: Options;
|
|
126
|
-
storage: Storage;
|
|
127
|
-
editor: Editor;
|
|
128
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addKeyboardShortcuts'];
|
|
129
|
-
}) => {
|
|
130
|
-
[key: string]: KeyboardShortcutCommand;
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* This function adds input rules to the editor.
|
|
134
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#input-rules
|
|
135
|
-
* @example
|
|
136
|
-
* addInputRules() {
|
|
137
|
-
* return [
|
|
138
|
-
* markInputRule({
|
|
139
|
-
* find: inputRegex,
|
|
140
|
-
* type: this.type,
|
|
141
|
-
* }),
|
|
142
|
-
* ]
|
|
143
|
-
* },
|
|
144
|
-
*/
|
|
145
|
-
addInputRules?: (this: {
|
|
146
|
-
name: string;
|
|
147
|
-
options: Options;
|
|
148
|
-
storage: Storage;
|
|
149
|
-
editor: Editor;
|
|
150
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addInputRules'];
|
|
151
|
-
}) => InputRule[];
|
|
152
|
-
/**
|
|
153
|
-
* This function adds paste rules to the editor.
|
|
154
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#paste-rules
|
|
155
|
-
* @example
|
|
156
|
-
* addPasteRules() {
|
|
157
|
-
* return [
|
|
158
|
-
* markPasteRule({
|
|
159
|
-
* find: pasteRegex,
|
|
160
|
-
* type: this.type,
|
|
161
|
-
* }),
|
|
162
|
-
* ]
|
|
163
|
-
* },
|
|
164
|
-
*/
|
|
165
|
-
addPasteRules?: (this: {
|
|
166
|
-
name: string;
|
|
167
|
-
options: Options;
|
|
168
|
-
storage: Storage;
|
|
169
|
-
editor: Editor;
|
|
170
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addPasteRules'];
|
|
171
|
-
}) => PasteRule[];
|
|
172
|
-
/**
|
|
173
|
-
* This function adds Prosemirror plugins to the editor
|
|
174
|
-
* @see https://tiptap.dev/docs/editor/guide/custom-extensions#prosemirror-plugins
|
|
175
|
-
* @example
|
|
176
|
-
* addProseMirrorPlugins() {
|
|
177
|
-
* return [
|
|
178
|
-
* customPlugin(),
|
|
179
|
-
* ]
|
|
180
|
-
* }
|
|
181
|
-
*/
|
|
182
|
-
addProseMirrorPlugins?: (this: {
|
|
183
|
-
name: string;
|
|
184
|
-
options: Options;
|
|
185
|
-
storage: Storage;
|
|
186
|
-
editor: Editor;
|
|
187
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addProseMirrorPlugins'];
|
|
188
|
-
}) => Plugin[];
|
|
189
|
-
/**
|
|
190
|
-
* This function adds additional extensions to the editor. This is useful for
|
|
191
|
-
* building extension kits.
|
|
192
|
-
* @example
|
|
193
|
-
* addExtensions() {
|
|
194
|
-
* return [
|
|
195
|
-
* BulletList,
|
|
196
|
-
* OrderedList,
|
|
197
|
-
* ListItem
|
|
198
|
-
* ]
|
|
199
|
-
* }
|
|
200
|
-
*/
|
|
201
|
-
addExtensions?: (this: {
|
|
202
|
-
name: string;
|
|
203
|
-
options: Options;
|
|
204
|
-
storage: Storage;
|
|
205
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['addExtensions'];
|
|
206
|
-
}) => Extensions;
|
|
207
|
-
/**
|
|
208
|
-
* This function extends the schema of the node.
|
|
209
|
-
* @example
|
|
210
|
-
* extendNodeSchema() {
|
|
211
|
-
* return {
|
|
212
|
-
* group: 'inline',
|
|
213
|
-
* selectable: false,
|
|
214
|
-
* }
|
|
215
|
-
* }
|
|
216
|
-
*/
|
|
217
|
-
extendNodeSchema?: ((this: {
|
|
218
|
-
name: string;
|
|
219
|
-
options: Options;
|
|
220
|
-
storage: Storage;
|
|
221
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendNodeSchema'];
|
|
222
|
-
}, extension: Node) => Record<string, any>) | null;
|
|
223
|
-
/**
|
|
224
|
-
* This function extends the schema of the mark.
|
|
225
|
-
* @example
|
|
226
|
-
* extendMarkSchema() {
|
|
227
|
-
* return {
|
|
228
|
-
* group: 'inline',
|
|
229
|
-
* selectable: false,
|
|
230
|
-
* }
|
|
231
|
-
* }
|
|
232
|
-
*/
|
|
233
|
-
extendMarkSchema?: ((this: {
|
|
234
|
-
name: string;
|
|
235
|
-
options: Options;
|
|
236
|
-
storage: Storage;
|
|
237
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['extendMarkSchema'];
|
|
238
|
-
}, extension: Mark) => Record<string, any>) | null;
|
|
239
|
-
/**
|
|
240
|
-
* The editor is not ready yet.
|
|
241
|
-
*/
|
|
242
|
-
onBeforeCreate?: ((this: {
|
|
243
|
-
name: string;
|
|
244
|
-
options: Options;
|
|
245
|
-
storage: Storage;
|
|
246
|
-
editor: Editor;
|
|
247
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBeforeCreate'];
|
|
248
|
-
}) => void) | null;
|
|
249
|
-
/**
|
|
250
|
-
* The editor is ready.
|
|
251
|
-
*/
|
|
252
|
-
onCreate?: ((this: {
|
|
253
|
-
name: string;
|
|
254
|
-
options: Options;
|
|
255
|
-
storage: Storage;
|
|
256
|
-
editor: Editor;
|
|
257
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onCreate'];
|
|
258
|
-
}) => void) | null;
|
|
259
|
-
/**
|
|
260
|
-
* The content has changed.
|
|
261
|
-
*/
|
|
262
|
-
onUpdate?: ((this: {
|
|
263
|
-
name: string;
|
|
264
|
-
options: Options;
|
|
265
|
-
storage: Storage;
|
|
266
|
-
editor: Editor;
|
|
267
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onUpdate'];
|
|
268
|
-
}) => void) | null;
|
|
269
|
-
/**
|
|
270
|
-
* The selection has changed.
|
|
271
|
-
*/
|
|
272
|
-
onSelectionUpdate?: ((this: {
|
|
273
|
-
name: string;
|
|
274
|
-
options: Options;
|
|
275
|
-
storage: Storage;
|
|
276
|
-
editor: Editor;
|
|
277
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onSelectionUpdate'];
|
|
278
|
-
}) => void) | null;
|
|
279
|
-
/**
|
|
280
|
-
* The editor state has changed.
|
|
281
|
-
*/
|
|
282
|
-
onTransaction?: ((this: {
|
|
283
|
-
name: string;
|
|
284
|
-
options: Options;
|
|
285
|
-
storage: Storage;
|
|
286
|
-
editor: Editor;
|
|
287
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onTransaction'];
|
|
288
|
-
}, props: {
|
|
289
|
-
editor: Editor;
|
|
290
|
-
transaction: Transaction;
|
|
291
|
-
}) => void) | null;
|
|
292
|
-
/**
|
|
293
|
-
* The editor is focused.
|
|
294
|
-
*/
|
|
295
|
-
onFocus?: ((this: {
|
|
296
|
-
name: string;
|
|
297
|
-
options: Options;
|
|
298
|
-
storage: Storage;
|
|
299
|
-
editor: Editor;
|
|
300
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onFocus'];
|
|
301
|
-
}, props: {
|
|
302
|
-
event: FocusEvent;
|
|
303
|
-
}) => void) | null;
|
|
304
|
-
/**
|
|
305
|
-
* The editor isn’t focused anymore.
|
|
306
|
-
*/
|
|
307
|
-
onBlur?: ((this: {
|
|
308
|
-
name: string;
|
|
309
|
-
options: Options;
|
|
310
|
-
storage: Storage;
|
|
311
|
-
editor: Editor;
|
|
312
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onBlur'];
|
|
313
|
-
}, props: {
|
|
314
|
-
event: FocusEvent;
|
|
315
|
-
}) => void) | null;
|
|
316
|
-
/**
|
|
317
|
-
* The editor is destroyed.
|
|
318
|
-
*/
|
|
319
|
-
onDestroy?: ((this: {
|
|
320
|
-
name: string;
|
|
321
|
-
options: Options;
|
|
322
|
-
storage: Storage;
|
|
323
|
-
editor: Editor;
|
|
324
|
-
parent: ParentConfig<ExtensionConfig<Options, Storage>>['onDestroy'];
|
|
325
|
-
}) => void) | null;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* The Extension class is the base class for all extensions.
|
|
330
|
-
* @see https://tiptap.dev/api/extensions#create-a-new-extension
|
|
331
|
-
*/
|
|
332
|
-
export declare class Extension<Options = any, Storage = any> {
|
|
333
|
-
type: string;
|
|
334
|
-
name: string;
|
|
335
|
-
parent: Extension | null;
|
|
336
|
-
child: Extension | null;
|
|
337
|
-
options: Options;
|
|
338
|
-
storage: Storage;
|
|
339
|
-
config: ExtensionConfig;
|
|
340
|
-
constructor(config?: Partial<ExtensionConfig<Options, Storage>>);
|
|
341
|
-
static create<O = any, S = any>(config?: Partial<ExtensionConfig<O, S>>): Extension<O, S>;
|
|
342
|
-
configure(options?: Partial<Options>): Extension<Options, Storage>;
|
|
343
|
-
extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig?: Partial<ExtensionConfig<ExtendedOptions, ExtendedStorage>>): Extension<ExtendedOptions, ExtendedStorage>;
|
|
344
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Schema } from '@tiptap/pm/model';
|
|
2
|
-
import { Plugin } from '@tiptap/pm/state';
|
|
3
|
-
import type { Editor } from './Editor.js';
|
|
4
|
-
import { Extensions, RawCommands } from './types.js';
|
|
5
|
-
export declare class ExtensionManager {
|
|
6
|
-
editor: Editor;
|
|
7
|
-
schema: Schema;
|
|
8
|
-
extensions: Extensions;
|
|
9
|
-
splittableMarks: string[];
|
|
10
|
-
constructor(extensions: Extensions, editor: Editor);
|
|
11
|
-
/**
|
|
12
|
-
* Returns a flattened and sorted extension list while
|
|
13
|
-
* also checking for duplicated extensions and warns the user.
|
|
14
|
-
* @param extensions An array of Tiptap extensions
|
|
15
|
-
* @returns An flattened and sorted array of Tiptap extensions
|
|
16
|
-
*/
|
|
17
|
-
static resolve(extensions: Extensions): Extensions;
|
|
18
|
-
/**
|
|
19
|
-
* Create a flattened array of extensions by traversing the `addExtensions` field.
|
|
20
|
-
* @param extensions An array of Tiptap extensions
|
|
21
|
-
* @returns A flattened array of Tiptap extensions
|
|
22
|
-
*/
|
|
23
|
-
static flatten(extensions: Extensions): Extensions;
|
|
24
|
-
/**
|
|
25
|
-
* Sort extensions by priority.
|
|
26
|
-
* @param extensions An array of Tiptap extensions
|
|
27
|
-
* @returns A sorted array of Tiptap extensions by priority
|
|
28
|
-
*/
|
|
29
|
-
static sort(extensions: Extensions): Extensions;
|
|
30
|
-
/**
|
|
31
|
-
* Get all commands from the extensions.
|
|
32
|
-
* @returns An object with all commands where the key is the command name and the value is the command function
|
|
33
|
-
*/
|
|
34
|
-
get commands(): RawCommands;
|
|
35
|
-
/**
|
|
36
|
-
* Get all registered Prosemirror plugins from the extensions.
|
|
37
|
-
* @returns An array of Prosemirror plugins
|
|
38
|
-
*/
|
|
39
|
-
get plugins(): Plugin[];
|
|
40
|
-
/**
|
|
41
|
-
* Get all attributes from the extensions.
|
|
42
|
-
* @returns An array of attributes
|
|
43
|
-
*/
|
|
44
|
-
get attributes(): import("@tiptap/core").ExtensionAttribute[];
|
|
45
|
-
/**
|
|
46
|
-
* Get all node views from the extensions.
|
|
47
|
-
* @returns An object with all node views where the key is the node name and the value is the node view function
|
|
48
|
-
*/
|
|
49
|
-
get nodeViews(): any;
|
|
50
|
-
/**
|
|
51
|
-
* Go through all extensions, create extension storages & setup marks
|
|
52
|
-
* & bind editor event listener.
|
|
53
|
-
*/
|
|
54
|
-
private setupExtensions;
|
|
55
|
-
}
|