30 lines
549 B
JavaScript
30 lines
549 B
JavaScript
import { Node, mergeAttributes } from '@tiptap/core'
|
|
import { VueRenderer } from '@tiptap/vue'
|
|
import Component from './Component.vue'
|
|
|
|
export default Node.create({
|
|
name: 'draggableItem',
|
|
|
|
group: 'block',
|
|
|
|
content: 'block*',
|
|
|
|
draggable: true,
|
|
|
|
parseHTML() {
|
|
return [
|
|
{
|
|
tag: 'div[data-type="draggable-item"]',
|
|
},
|
|
]
|
|
},
|
|
|
|
renderHTML({ HTMLAttributes }) {
|
|
return ['div', mergeAttributes(HTMLAttributes, { 'data-type': 'draggable-item' }), 0]
|
|
},
|
|
|
|
addNodeView() {
|
|
return VueRenderer(Component)
|
|
},
|
|
})
|