diff --git a/docs/src/demos/Nodes/Table/index.vue b/docs/src/demos/Nodes/Table/index.vue index f22af0ed..5f0bda14 100644 --- a/docs/src/demos/Nodes/Table/index.vue +++ b/docs/src/demos/Nodes/Table/index.vue @@ -39,6 +39,15 @@ + + + @@ -71,7 +80,9 @@ export default { Document, Paragraph, Text, - Table, + Table.configure({ + resizable: true, + }), TableRow, TableHeader, TableCell, @@ -82,8 +93,7 @@ export default { Test - Test - Test + Test Test diff --git a/packages/extension-table/src/table.ts b/packages/extension-table/src/table.ts index 8bcda2b1..df3830cb 100644 --- a/packages/extension-table/src/table.ts +++ b/packages/extension-table/src/table.ts @@ -1,7 +1,7 @@ import { Command, Node, mergeAttributes } from '@tiptap/core' import { - // tableEditing, - // columnResizing, + tableEditing, + columnResizing, // goToNextCell, addColumnBefore, addColumnAfter, @@ -23,6 +23,7 @@ export interface TableOptions { HTMLAttributes: { [key: string]: any }, + resizable: boolean, } export const Table = Node.create({ @@ -30,6 +31,7 @@ export const Table = Node.create({ defaultOptions: { HTMLAttributes: {}, + resizable: false, }, content: 'table_row+', @@ -126,6 +128,13 @@ export const Table = Node.create({ // setCellAttr: ({ name, value }) => setCellAttr(name, value), } }, + + addProseMirrorPlugins() { + return [ + ...(this.options.resizable ? [columnResizing({})] : []), + tableEditing({}), + ] + }, }) declare module '@tiptap/core' {