mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-24 01:17:50 +08:00
52 lines
966 B
TypeScript
52 lines
966 B
TypeScript
|
import { Node, mergeAttributes } from '@tiptap/core'
|
||
|
|
||
|
export interface TableHeaderOptions {
|
||
|
HTMLAttributes: {
|
||
|
[key: string]: any
|
||
|
},
|
||
|
}
|
||
|
export const TableHeader = Node.create({
|
||
|
name: 'table_header',
|
||
|
|
||
|
defaultOptions: <TableHeaderOptions>{
|
||
|
HTMLAttributes: {},
|
||
|
},
|
||
|
|
||
|
content: 'block+',
|
||
|
|
||
|
addAttributes() {
|
||
|
return {
|
||
|
colspan: {
|
||
|
default: 1,
|
||
|
},
|
||
|
rowspan: {
|
||
|
default: 1,
|
||
|
},
|
||
|
colwidth: {
|
||
|
default: null,
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
|
||
|
tableRole: 'header_cell',
|
||
|
|
||
|
isolating: true,
|
||
|
|
||
|
parseHTML() {
|
||
|
// return [{ tag: 'th', getAttrs: dom => getCellAttrs(dom, extraAttrs) }]
|
||
|
return [{ tag: 'th' }]
|
||
|
},
|
||
|
|
||
|
renderHTML({ HTMLAttributes }) {
|
||
|
// toDOM(node) { return ["th", setCellAttrs(node, extraAttrs), 0] }
|
||
|
return ['th', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0]
|
||
|
},
|
||
|
|
||
|
})
|
||
|
|
||
|
declare module '@tiptap/core' {
|
||
|
interface AllExtensions {
|
||
|
TableHeader: typeof TableHeader,
|
||
|
}
|
||
|
}
|