You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
23 KiB

{"version":3,"file":"tiptap-extension-table.cjs","sources":["../src/TableView.ts","../src/utilities/createCell.ts","../src/utilities/getTableNodeTypes.ts","../src/utilities/createTable.ts","../src/utilities/isCellSelection.ts","../src/utilities/deleteTableWhenAllCellsSelected.ts","../src/table.ts"],"sourcesContent":["// @ts-nocheck\nimport { Node as ProseMirrorNode } from 'prosemirror-model'\nimport { NodeView } from 'prosemirror-view'\n\nexport function updateColumns(node: ProseMirrorNode, colgroup: Element, table: Element, cellMinWidth: number, overrideCol?: number, overrideValue?: any) {\n let totalWidth = 0\n let fixedWidth = true\n let nextDOM = colgroup.firstChild\n const row = node.firstChild\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j]\n const cssWidth = hasWidth ? `${hasWidth}px` : ''\n\n totalWidth += hasWidth || cellMinWidth\n\n if (!hasWidth) {\n fixedWidth = false\n }\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement('col')).style.width = cssWidth\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth\n }\n\n nextDOM = nextDOM.nextSibling\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling\n\n nextDOM.parentNode.removeChild(nextDOM)\n nextDOM = after\n }\n\n if (fixedWidth) {\n table.style.width = `${totalWidth}px`\n table.style.minWidth = ''\n } else {\n table.style.width = ''\n table.style.minWidth = `${totalWidth}px`\n }\n}\n\nexport class TableView implements NodeView {\n\n node: ProseMirrorNode\n\n cellMinWidth: number\n\n dom: Element\n\n table: Element\n\n colgroup: Element\n\n contentDOM: Element\n\n constructor(node: ProseMirrorNode, cellMinWidth: number) {\n this.node = node\n this.cellMinWidth = cellMinWidth\n this.dom = document.createElement('div')\n this.dom.className = 'tableWrapper'\n this.table = this.dom.appendChild(document.createElement('table'))\n this.colgroup = this.table.appendChild(document.createElement('colgroup'))\n updateColumns(node, this.colgroup, this.table, cellMinWidth)\n this.contentDOM = this.table.appendChild(document.createElement('tbody'))\n }\n\n update(node: ProseMirrorNode) {\n if (node.type !== this.node.type) {\n return false\n }\n\n this.node = node\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth)\n\n return true\n }\n\n ignoreMutation(mutation: MutationRecord | { type: 'selection'; target: Element }) {\n return mutation.type === 'attributes' && (mutation.target === this.table || this.colgroup.contains(mutation.target))\n }\n}\n","import { Fragment, Node as ProsemirrorNode, NodeType } from 'prosemirror-model'\n\nexport function createCell(cellType: NodeType, cellContent?: Fragment | ProsemirrorNode | Array<ProsemirrorNode>): ProsemirrorNode | null | undefined {\n if (cellContent) {\n return cellType.createChecked(null, cellContent)\n }\n\n return cellType.createAndFill()\n}\n","import { NodeType, Schema } from 'prosemirror-model'\n\nexport function getTableNodeTypes(schema: Schema): { [key: string]: NodeType } {\n if (schema.cached.tableNodeTypes) {\n return schema.cached.tableNodeTypes\n }\n\n const roles: { [key: string]: NodeType } = {}\n\n Object.keys(schema.nodes).forEach(type => {\n const nodeType = schema.nodes[type]\n\n if (nodeType.spec.tableRole) {\n roles[nodeType.spec.tableRole] = nodeType\n }\n })\n\n schema.cached.tableNodeTypes = roles\n\n return roles\n}\n","import { Fragment, Node as ProsemirrorNode, Schema } from 'prosemirror-model'\n\nimport { createCell } from './createCell'\nimport { getTableNodeTypes } from './getTableNodeTypes'\n\nexport function createTable(schema: Schema, rowsCount: number, colsCount: number, withHeaderRow: boolean, cellContent?: Fragment | ProsemirrorNode | Array<ProsemirrorNode>): ProsemirrorNode {\n const types = getTableNodeTypes(schema)\n const headerCells: ProsemirrorNode[] = []\n const cells: ProsemirrorNode[] = []\n\n for (let index = 0; index < colsCount; index += 1) {\n const cell = createCell(types.cell, cellContent)\n\n if (cell) {\n cells.push(cell)\n }\n\n if (withHeaderRow) {\n const headerCell = createCell(types.header_cell, cellContent)\n\n if (headerCell) {\n headerCells.push(headerCell)\n }\n }\n }\n\n const rows: ProsemirrorNode[] = []\n\n for (let index = 0; index < rowsCount; index += 1) {\n rows.push(types.row.createChecked(null, withHeaderRow && index === 0 ? headerCells : cells))\n }\n\n return types.table.createChecked(null, rows)\n}\n","import { CellSelection } from '@tiptap/prosemirror-tables'\n\nexport function isCellSelection(value: unknown): value is CellSelection {\n return value instanceof CellSelection\n}\n","import { findParentNodeClosestToPos, KeyboardShortcutCommand } from '@tiptap/core'\n\nimport { isCellSelection } from './isCellSelection'\n\nexport const deleteTableWhenAllCellsSelected: KeyboardShortcutCommand = ({ editor }) => {\n const { selection } = editor.state\n\n if (!isCellSelection(selection)) {\n return false\n }\n\n let cellCount = 0\n const table = findParentNodeClosestToPos(selection.ranges[0].$from, node => {\n return node.type.name === 'table'\n })\n\n table?.node.descendants(node => {\n if (node.type.name === 'table') {\n return false\n }\n\n if (['tableCell', 'tableHeader'].includes(node.type.name)) {\n cellCount += 1\n }\n })\n\n const allCellsSelected = cellCount === selection.ranges.length\n\n if (!allCellsSelected) {\n return false\n }\n\n editor.commands.deleteTable()\n\n return true\n}\n","import {\n callOrReturn,\n getExtensionField,\n mergeAttributes,\n Node,\n ParentConfig,\n} from '@tiptap/core'\nimport {\n addColumnAfter,\n addColumnBefore,\n addRowAfter,\n addRowBefore,\n CellSelection,\n columnResizing,\n deleteColumn,\n deleteRow,\n deleteTable,\n fixTables,\n goToNextCell,\n mergeCells,\n setCellAttr,\n splitCell,\n tableEditing,\n toggleHeader,\n toggleHeaderCell,\n} from '@tiptap/prosemirror-tables'\nimport { TextSelection } from 'prosemirror-state'\nimport { NodeView } from 'prosemirror-view'\n\nimport { TableView } from './TableView'\nimport { createTable } from './utilities/createTable'\nimport { deleteTableWhenAllCellsSelected } from './utilities/deleteTableWhenAllCellsSelected'\n\nexport interface TableOptions {\n HTMLAttributes: Record<string, any>,\n resizable: boolean,\n handleWidth: number,\n cellMinWidth: number,\n View: NodeView,\n lastColumnResizable: boolean,\n allowTableNodeSelection: boolean,\n}\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n table: {\n insertTable: (options?: { rows?: number, cols?: number, withHeaderRow?: boolean }) => ReturnType,\n addColumnBefore: () => ReturnType,\n addColumnAfter: () => ReturnType,\n deleteColumn: () => ReturnType,\n addRowBefore: () => ReturnType,\n addRowAfter: () => ReturnType,\n deleteRow: () => ReturnType,\n deleteTable: () => ReturnType,\n mergeCells: () => ReturnType,\n splitCell: () => ReturnType,\n toggleHeaderColumn: () => ReturnType,\n toggleHeaderRow: () => ReturnType,\n toggleHeaderCell: () => ReturnType,\n mergeOrSplit: () => ReturnType,\n setCellAttribute: (name: string, value: any) => ReturnType,\n goToNextCell: () => ReturnType,\n goToPreviousCell: () => ReturnType,\n fixTables: () => ReturnType,\n setCellSelection: (position: { anchorCell: number, headCell?: number }) => ReturnType,\n }\n }\n\n interface NodeConfig<Options, Storage> {\n /**\n * Table Role\n */\n tableRole?: string | ((this: {\n name: string,\n options: Options,\n storage: Storage,\n parent: ParentConfig<NodeConfig<Options>>['tableRole'],\n }) => string),\n }\n}\n\nexport const Table = Node.create<TableOptions>({\n name: 'table',\n\n // @ts-ignore\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: false,\n handleWidth: 5,\n cellMinWidth: 25,\n // TODO: fix\n View: TableView,\n lastColumnResizable: true,\n allowTableNodeSelection: false,\n }\n },\n\n content: 'tableRow+',\n\n tableRole: 'table',\n\n isolating: true,\n\n group: 'block',\n\n parseHTML() {\n return [\n { tag: 'table' },\n ]\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['table', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), ['tbody', 0]]\n },\n\n addCommands() {\n return {\n insertTable: ({ rows = 3, cols = 3, withHeaderRow = true } = {}) => ({ tr, dispatch, editor }) => {\n const node = createTable(editor.schema, rows, cols, withHeaderRow)\n\n if (dispatch) {\n const offset = tr.selection.anchor + 1\n\n tr.replaceSelectionWith(node)\n .scrollIntoView()\n .setSelection(TextSelection.near(tr.doc.resolve(offset)))\n }\n\n return true\n },\n addColumnBefore: () => ({ state, dispatch }) => {\n return addColumnBefore(state, dispatch)\n },\n addColumnAfter: () => ({ state, dispatch }) => {\n return addColumnAfter(state, dispatch)\n },\n deleteColumn: () => ({ state, dispatch }) => {\n return deleteColumn(state, dispatch)\n },\n addRowBefore: () => ({ state, dispatch }) => {\n return addRowBefore(state, dispatch)\n },\n addRowAfter: () => ({ state, dispatch }) => {\n return addRowAfter(state, dispatch)\n },\n deleteRow: () => ({ state, dispatch }) => {\n return deleteRow(state, dispatch)\n },\n deleteTable: () => ({ state, dispatch }) => {\n return deleteTable(state, dispatch)\n },\n mergeCells: () => ({ state, dispatch }) => {\n return mergeCells(state, dispatch)\n },\n splitCell: () => ({ state, dispatch }) => {\n return splitCell(state, dispatch)\n },\n toggleHeaderColumn: () => ({ state, dispatch }) => {\n return toggleHeader('column')(state, dispatch)\n },\n toggleHeaderRow: () => ({ state, dispatch }) => {\n return toggleHeader('row')(state, dispatch)\n },\n toggleHeaderCell: () => ({ state, dispatch }) => {\n return toggleHeaderCell(state, dispatch)\n },\n mergeOrSplit: () => ({ state, dispatch }) => {\n if (mergeCells(state, dispatch)) {\n return true\n }\n\n return splitCell(state, dispatch)\n },\n setCellAttribute: (name, value) => ({ state, dispatch }) => {\n return setCellAttr(name, value)(state, dispatch)\n },\n goToNextCell: () => ({ state, dispatch }) => {\n return goToNextCell(1)(state, dispatch)\n },\n goToPreviousCell: () => ({ state, dispatch }) => {\n return goToNextCell(-1)(state, dispatch)\n },\n fixTables: () => ({ state, dispatch }) => {\n if (dispatch) {\n fixTables(state)\n }\n\n return true\n },\n setCellSelection: position => ({ tr, dispatch }) => {\n if (dispatch) {\n const selection = CellSelection.create(tr.doc, position.anchorCell, position.headCell)\n\n // @ts-ignore\n tr.setSelection(selection)\n }\n\n return true\n },\n }\n },\n\n addKeyboardShortcuts() {\n return {\n Tab: () => {\n if (this.editor.commands.goToNextCell()) {\n return true\n }\n\n if (!this.editor.can().addRowAfter()) {\n return false\n }\n\n return this.editor\n .chain()\n .addRowAfter()\n .goToNextCell()\n .run()\n },\n 'Shift-Tab': () => this.editor.commands.goToPreviousCell(),\n Backspace: deleteTableWhenAllCellsSelected,\n 'Mod-Backspace': deleteTableWhenAllCellsSelected,\n Delete: deleteTableWhenAllCellsSelected,\n 'Mod-Delete': deleteTableWhenAllCellsSelected,\n }\n },\n\n addProseMirrorPlugins() {\n const isResizable = this.options.resizable && this.editor.isEditable\n\n return [\n ...(isResizable ? [columnResizing({\n handleWidth: this.options.handleWidth,\n cellMinWidth: this.options.cellMinWidth,\n View: this.options.View,\n // TODO: PR for @types/prosemirror-tables\n // @ts-ignore (incorrect type)\n lastColumnResizable: this.options.lastColumnResizable,\n })] : []),\n tableEditing({\n allowTableNodeSelection: this.options.allowTableNodeSelection,\n }),\n ]\n },\n\n extendNodeSchema(extension) {\n const context = {\n name: extension.name,\n options: extension.options,\n storage: extension.storage,\n }\n\n return {\n tableRole: callOrReturn(getExtensionField(extension, 'tableRole', context)),\n }\n },\n})\n"],"names":["CellSelection","findParentNodeClosestToPos","Node","mergeAttributes","TextSelection","addColumnBefore","addColumnAfter","deleteColumn","addRowBefore","addRowAfter","deleteRow","deleteTable","mergeCells","splitCell","toggleHeader","toggleHeaderCell","setCellAttr","goToNextCell","fixTables","columnResizing","tableEditing","callOrReturn","getExtensionField"],"mappings":"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"}