import { Extension, Plugin } from 'tiptap'
// import { Slice, Fragment } from 'prosemirror-model'
export default class EventHandler extends Extension {
get name() {
return 'event_handler'
}
get plugins() {
return [
new Plugin({
props: {
transformPastedText(text) {
// console.log('#### transformPastedText', text)
return text.trim()
},
transformPastedHTML(html) {
html = html
.replace(/(
\s*){2,}/gim, '
')
.replace(
/<\/(p|div|th|tr)>\s*(
\s*)+\s*<(p|div|th|tr)>/gim,
'
'
)
.replace(
/<(p|div|th|tr)>\s*(
\s*)+\s*<\/(p|div|th|tr)>/gim,
''
)
.replace(/<(p|div|th|tr)>\s*/gim, '
') .replace(/\s*<\/(p|div|th|tr)>/gim, '
') // console.log('#### transformPastedHTML', html) return html } // transformPasted(slice) { // // console.log('#### transformPasted', slice.content) // let content = [] // let size = 0 // slice.content.forEach((node, offset, index) => { // // console.log(node) // // console.log('isBlock', node.type.isBlock) // // console.log('childCount', node.content.childCount) // // console.log('index', index) // if (node.content.childCount) { // content.push(node.content) // size += node.content.size // } // }) // console.log(content) // console.log(slice.content) // let fragment = Fragment.fromArray(content) // fragment.size = size // console.log('#fragment', fragment, slice.content) // console.log('----') // console.log('#1', slice) // // const newSlice = new Slice(fragment, slice.openStart, slice.openEnd) // slice.fragment = fragment // // slice.content.content = fragment.content // // slice.content.size = fragment.size // console.log('#2', slice) // // console.log(newSlice) // console.log('----') // return slice // // return newSlice // } } }) ] } }