@lofcz/platejs-table 52.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["KeyboardHandler","Hotkeys","TableConfig","getCellTypes","KEY_SHIFT_EDGES","moveSelectionFromCell","onKeyDownTable","editor","event","defaultPrevented","compositeKeyCode","which","selection","api","isExpanded","tdEntries","Array","from","nodes","at","match","type","length","tf","collapse","edge","isKeyDown","isExtendDownward","isExtendBackward","isExtendForward","isExtendUpward","Object","keys","forEach","key","reverse","preventDefault","stopPropagation","toPlatePlugin","BaseTableCellHeaderPlugin","BaseTableCellPlugin","BaseTablePlugin","BaseTableRowPlugin","onKeyDownTable","TableRowPlugin","TableCellPlugin","TableCellHeaderPlugin","TablePlugin","handlers","onKeyDown","plugins","SlateEditor","TElement","TTableCellElement","BorderDirection","getCellIndices","getCellTypes","getColSpan","getLeftTableCell","getRowSpan","getSelectedCellsBorders","getSelectedCellsBoundingBox","getTopTableCell","isSelectedCellBorder","setBorderSize","setCellBorderSize","editor","cell","directions","size","at","api","findPath","border","dir","setSelectedCellsBorder","cells","length","none","allNone","newSize","cellPath","col","row","edges","push","cellAboveEntry","cellAbove","prevCellEntry","prevCell","outer","allOut","maxCol","maxRow","minCol","minRow","cSpan","rSpan","rr","cc","allSet","isFirstRow","isFirstCell","getOnSelectTableBorderFactory","selectedCells","block","match","type","cellElems","map","v","roundCellSizeToStep","size","step","Math","round","TElement","usePluginOption","TablePlugin","useIsCellSelected","element","$","_c","selectedCells","t0","includes","TTableElement","useEditorPlugin","useEditorSelector","useElement","usePluginOption","TableBorderStates","getSelectedCellsBorders","TablePlugin","getOnSelectTableBorderFactory","useTableBordersDropdownMenuContentState","t0","$","_c","t1","undefined","element","el","editor","selectedCells","t2","editor_0","t3","borderStates","t4","t5","bottom","left","none","outer","right","top","getOnSelectTableBorder","hasBottomBorder","hasLeftBorder","hasNoBorders","hasOuterBorders","hasRightBorder","hasTopBorder","React","TTableCellElement","useEditorPlugin","useElement","usePluginOption","computeCellIndices","TablePlugin","useCellIndices","$","_c","editor","element","cellIndices","id","t0","bb0","t1","cellNode","col","row","React","TTableCellElement","useEditorPlugin","useElement","getTableCellBorders","useCellIndices","TablePlugin","useTableCellBorders","t0","$","_c","t1","undefined","element","el","editor","cellIndices","t2","React","atom","createAtomStore","TableStoreSizeOverrides","TableProvider","tableStore","useTableSet","useTableState","useTableStore","useTableValue","colSizeOverrides","Map","marginLeftOverride","rowSizeOverrides","name","const","useOverrideSizeFactory","setOverrides","$","_c","t0","index","size","overrides","newOverrides","delete","set","useOverrideColSize","setColSizeOverrides","useOverrideRowSize","setRowSizeOverrides","useOverrideMarginLeft","React","useEditorPlugin","useEditorRef","useEditorSelection","usePluginOption","useReadOnly","useSelected","getTableGridAbove","TablePlugin","useSelectedCells","$","_c","readOnly","selected","editor","selection","setOption","selectedCells","t0","t1","useEffect","t2","tableEntries","format","cellEntries","length","cells","map","_temp","tables","_temp2","JSON","stringify","t3","entry","entry_0","KEYS","PathApi","useElementSelector","getTableOverriddenColSizes","useTableValue","useTableColSizes","t0","$","_c","t1","undefined","disableOverrides","t2","transformColSizes","colSizeOverrides","t3","t4","t5","tableNode","colSizes","Symbol","for","key","table","equalityFn","_temp","overriddenColSizes","a","b","equals","TTableElement","useEditorPlugin","useElement","usePluginOption","useTableValue","TablePlugin","useSelectedCells","useTableElement","$","_c","editor","getOptions","disableMarginLeft","element","selectedCells","marginLeftOverride","marginLeft","t0","t1","onMouseDown","tf","collapse","t2","isSelectingCell","props","React","NodeEntry","TTableCellElement","TTableRowElement","KEYS","useEditorPlugin","useElement","useElementSelector","useCellIndices","TablePlugin","useTableColSizes","useTableCellSize","t0","$","_c","t1","undefined","element","el","api","colSizes","cellIndices","t2","t3","Symbol","for","key","tr","rowSize","_temp","t4","table","getCellSize","node","size","React","TTableCellElement","useEditorPlugin","useElement","usePluginOption","BorderStylesDefault","useCellIndices","useTableValue","TablePlugin","useIsCellSelected","useTableCellBorders","useTableCellSize","TableCellElementState","borders","colIndex","colSpan","isSelectingCell","minHeight","rowIndex","selected","width","useTableCellElement","api","setOption","element","isCellSelected","selectedCells","useEffect","some","v","id","map","rowSizeOverrides","col","row","table","getColSpan","rowSpan","getRowSpan","endingRowIndex","endingColIndex","get","React","TTableElement","ResizeEvent","ResizeHandle","resizeLengthClampStatic","KEYS","useEditorPlugin","useElement","useElementSelector","TableCellElementState","setTableColSize","setTableMarginLeft","setTableRowSize","useOverrideColSize","useOverrideMarginLeft","useOverrideRowSize","TablePlugin","useTableColSizes","roundCellSizeToStep","TableCellElementResizableOptions","step","stepX","stepY","Pick","useTableCellElementResizable","t0","$","_c","colIndex","colSpan","rowIndex","t1","t2","undefined","editor","getOptions","element","t3","disableMarginLeft","minColumnWidth","t4","t5","t6","t7","node","colSizes","Symbol","for","key","table","initialWidth","t8","t9","marginLeft","_temp","t10","disableOverrides","colSizesWithoutOverrides","colSizesWithoutOverridesRef","useRef","t11","t12","current","useEffect","overrideColSize","overrideRowSize","overrideMarginLeft","t13","colIndex_0","width","at","setTimeout","setColSize","t14","rowIndex_0","height","setRowSize","t15","marginLeft_0","setMarginLeft","t16","t17","delta","finished","initialSize","currentInitial","nextInitial","complement","width_0","currentNew","max","min","nextNew","fn","handleResizeRight","event","newHeight","handleResizeBottom","t18","event_0","initial","complement_0","width_1","newMargin","newWidth","handleResizeLeft","hasLeftHandle","t19","options","direction","onResize","t20","t21","t22","t23","t24","t25","t26","bottomProps","hiddenLeft","leftProps","rightProps","node_0","TTableCellElement","KEYS","useEditorPlugin","useEditorSelector","usePluginOption","useReadOnly","getTableGridAbove","isTableRectangular","TablePlugin","useTableMergeState","api","getOptions","disableMerge","canMerge","canSplit","readOnly","someTable","editor","some","match","type","table","selectionExpanded","isExpanded","collapsed","selectedTables","selectedTable","selectedCellEntries","format","length","getColSpan","getRowSpan"],"sources":["../../src/react/onKeyDownTable.ts","../../src/react/TablePlugin.tsx","../../src/react/components/TableCellElement/getOnSelectTableBorderFactory.ts","../../src/react/components/TableCellElement/roundCellSizeToStep.ts","../../src/react/components/TableCellElement/useIsCellSelected.ts","../../src/react/components/TableCellElement/useTableBordersDropdownMenuContentState.ts","../../src/react/hooks/useCellIndices.ts","../../src/react/components/TableCellElement/useTableCellBorders.ts","../../src/react/stores/useTableStore.ts","../../src/react/components/TableElement/useSelectedCells.ts","../../src/react/components/TableElement/useTableColSizes.ts","../../src/react/components/TableElement/useTableElement.ts","../../src/react/components/TableCellElement/useTableCellSize.ts","../../src/react/components/TableCellElement/useTableCellElement.ts","../../src/react/components/TableCellElement/useTableCellElementResizable.ts","../../src/react/hooks/useTableMergeState.ts"],"sourcesContent":["import type { KeyboardHandler } from 'platejs/react';\n\nimport { Hotkeys } from 'platejs';\n\nimport {\n type TableConfig,\n getCellTypes,\n KEY_SHIFT_EDGES,\n moveSelectionFromCell,\n} from '../lib';\n\nexport const onKeyDownTable: KeyboardHandler<TableConfig> = ({\n editor,\n event,\n}) => {\n if (event.defaultPrevented) return;\n\n const compositeKeyCode = 229;\n\n if (\n // This exception only occurs when IME composition is triggered, and can be identified by this keycode\n event.which === compositeKeyCode &&\n editor.selection &&\n editor.api.isExpanded()\n ) {\n // fix the exception of inputting Chinese when selecting multiple cells\n const tdEntries = Array.from(\n editor.api.nodes({\n at: editor.selection,\n match: { type: getCellTypes(editor) },\n })\n );\n\n if (tdEntries.length > 1) {\n editor.tf.collapse({\n edge: 'end',\n });\n\n return;\n }\n }\n\n const isKeyDown: any = {\n 'shift+down': Hotkeys.isExtendDownward(event),\n 'shift+left': Hotkeys.isExtendBackward(event),\n 'shift+right': Hotkeys.isExtendForward(event),\n 'shift+up': Hotkeys.isExtendUpward(event),\n };\n\n Object.keys(isKeyDown).forEach((key) => {\n if (\n isKeyDown[key] && // if many cells are selected\n moveSelectionFromCell(editor, {\n edge: (KEY_SHIFT_EDGES as any)[key],\n reverse: key === 'shift+up',\n })\n ) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n};\n","import { toPlatePlugin } from 'platejs/react';\n\nimport {\n BaseTableCellHeaderPlugin,\n BaseTableCellPlugin,\n BaseTablePlugin,\n BaseTableRowPlugin,\n} from '../lib/BaseTablePlugin';\nimport { onKeyDownTable } from './onKeyDownTable';\n\nexport const TableRowPlugin = toPlatePlugin(BaseTableRowPlugin);\n\nexport const TableCellPlugin = toPlatePlugin(BaseTableCellPlugin);\n\nexport const TableCellHeaderPlugin = toPlatePlugin(BaseTableCellHeaderPlugin);\n\n/** Enables support for tables with React-specific features. */\nexport const TablePlugin = toPlatePlugin(BaseTablePlugin, {\n handlers: {\n onKeyDown: onKeyDownTable,\n },\n plugins: [TableRowPlugin, TableCellPlugin, TableCellHeaderPlugin],\n});\n","import type { SlateEditor, TElement, TTableCellElement } from 'platejs';\n\nimport {\n type BorderDirection,\n getCellIndices,\n getCellTypes,\n getColSpan,\n getLeftTableCell,\n getRowSpan,\n getSelectedCellsBorders,\n getSelectedCellsBoundingBox,\n getTopTableCell,\n isSelectedCellBorder,\n setBorderSize,\n} from '../../../lib';\n\n/** Helper: sets one cell's specific border(s) to `size`. */\nfunction setCellBorderSize(\n editor: SlateEditor,\n cell: TElement,\n directions: BorderDirection[] | 'all',\n size: number\n) {\n const at = editor.api.findPath(cell);\n\n if (!at) return;\n if (directions === 'all') {\n setBorderSize(editor, size, { at, border: 'all' });\n } else {\n for (const dir of directions) {\n setBorderSize(editor, size, { at, border: dir });\n }\n }\n}\n\n/**\n * Toggle logic for `'none'`, `'outer'`, `'top'|'bottom'|'left'|'right'`.\n * `'none'` toggles no borders ↔ all borders, `'outer'` toggles the bounding\n * rectangle's outer edges on/off, `'top'|'bottom'|'left'|'right'` toggles only\n * that side of the bounding rect.\n */\nexport function setSelectedCellsBorder(\n editor: SlateEditor,\n {\n border,\n cells,\n }: {\n border: BorderDirection | 'none' | 'outer';\n cells: TTableCellElement[];\n }\n) {\n if (cells.length === 0) return;\n // 1) none => toggle all edges vs none\n if (border === 'none') {\n const { none: allNone } = getSelectedCellsBorders(editor, cells);\n const newSize = allNone ? 1 : 0;\n\n for (const cell of cells) {\n const cellPath = editor.api.findPath(cell);\n\n if (!cellPath) continue;\n\n const { col, row } = getCellIndices(editor, cell);\n const edges: BorderDirection[] = [];\n\n // For first row or first column cells, we set their top/left borders\n if (row === 0) edges.push('top');\n if (col === 0) edges.push('left');\n\n // Always set bottom and right borders\n edges.push('bottom', 'right');\n\n // For non-first row/column cells, set borders on adjacent cells\n if (row > 0) {\n const cellAboveEntry = getTopTableCell(editor, { at: cellPath });\n\n if (cellAboveEntry) {\n const [cellAbove] = cellAboveEntry;\n setCellBorderSize(editor, cellAbove, ['bottom'], newSize);\n }\n }\n if (col > 0) {\n const prevCellEntry = getLeftTableCell(editor, { at: cellPath });\n\n if (prevCellEntry) {\n const [prevCell] = prevCellEntry;\n setCellBorderSize(editor, prevCell, ['right'], newSize);\n }\n }\n if (edges.length > 0) {\n setCellBorderSize(editor, cell, edges, newSize);\n }\n }\n\n return;\n }\n // 2) outer => bounding rectangle edges only\n if (border === 'outer') {\n const { outer: allOut } = getSelectedCellsBorders(editor, cells);\n const newSize = allOut ? 0 : 1;\n\n const { maxCol, maxRow, minCol, minRow } = getSelectedCellsBoundingBox(\n editor,\n cells\n );\n\n for (const cell of cells) {\n const { col, row } = getCellIndices(editor, cell);\n const cSpan = getColSpan(cell);\n const rSpan = getRowSpan(cell);\n\n for (let rr = row; rr < row + rSpan; rr++) {\n for (let cc = col; cc < col + cSpan; cc++) {\n const edges: BorderDirection[] = [];\n\n if (rr === minRow) edges.push('top');\n if (rr === maxRow) edges.push('bottom');\n if (cc === minCol) edges.push('left');\n if (cc === maxCol) edges.push('right');\n if (edges.length > 0) {\n setCellBorderSize(editor, cell, edges, newSize);\n }\n }\n }\n }\n\n return;\n }\n\n // 3) single side => bounding rectangle but only that side\n const allSet = isSelectedCellBorder(editor, cells, border);\n const newSize = allSet ? 0 : 1;\n\n // bounding box\n const { maxCol, maxRow, minCol, minRow } = getSelectedCellsBoundingBox(\n editor,\n cells\n );\n\n for (const cell of cells) {\n const { col, row } = getCellIndices(editor, cell);\n const cSpan = getColSpan(cell);\n const rSpan = getRowSpan(cell);\n const cellPath = editor.api.findPath(cell);\n\n if (!cellPath) continue;\n\n const edges: BorderDirection[] = [];\n\n if (border === 'top' && row === minRow) {\n const isFirstRow = row === 0;\n\n if (isFirstRow) {\n edges.push('top');\n } else {\n const cellAboveEntry = getTopTableCell(editor, { at: cellPath });\n\n if (cellAboveEntry) {\n const [cellAbove] = cellAboveEntry;\n setCellBorderSize(editor, cellAbove, ['bottom'], newSize);\n }\n }\n }\n if (border === 'bottom' && row + rSpan - 1 === maxRow) {\n edges.push('bottom');\n }\n if (border === 'left' && col === minCol) {\n const isFirstCell = col === 0;\n\n if (isFirstCell) {\n edges.push('left');\n } else {\n const prevCellEntry = getLeftTableCell(editor, { at: cellPath });\n\n if (prevCellEntry) {\n const [prevCell] = prevCellEntry;\n setCellBorderSize(editor, prevCell, ['right'], newSize);\n }\n }\n }\n if (border === 'right' && col + cSpan - 1 === maxCol) {\n edges.push('right');\n }\n if (edges.length > 0) {\n setCellBorderSize(editor, cell, edges, newSize);\n }\n }\n}\n\n/**\n * Returns a function that sets borders on the selection with toggling logic. If\n * selection has one or many cells, it's the same approach: we read the bounding\n * rectangle, then decide which edges to flip on/off.\n */\nexport const getOnSelectTableBorderFactory =\n (editor: SlateEditor, selectedCells: TElement[] | null) =>\n (border: BorderDirection | 'none' | 'outer') =>\n () => {\n let cells = selectedCells;\n\n if (!cells || cells.length === 0) {\n const cell = editor.api.block({ match: { type: getCellTypes(editor) } });\n\n if (cell) {\n cells = [cell[0]];\n } else {\n return;\n }\n }\n\n // Convert them to TTableCellElement\n const cellElems = cells.map((v) => v as TTableCellElement);\n setSelectedCellsBorder(editor, { border, cells: cellElems });\n };\n","/**\n * Rounds a cell size to the nearest step, or returns the size if the step is\n * not set.\n */\nexport const roundCellSizeToStep = (size: number, step?: number) =>\n step ? Math.round(size / step) * step : size;\n","import type { TElement } from 'platejs';\n\nimport { usePluginOption } from 'platejs/react';\n\nimport { TablePlugin } from '../../TablePlugin';\n\nexport const useIsCellSelected = (element: TElement) => {\n const selectedCells = usePluginOption(TablePlugin, 'selectedCells');\n\n return !!selectedCells?.includes(element);\n};\n","import type { TTableElement } from 'platejs';\n\nimport {\n useEditorPlugin,\n useEditorSelector,\n useElement,\n usePluginOption,\n} from 'platejs/react';\n\nimport {\n type TableBorderStates,\n getSelectedCellsBorders,\n} from '../../../lib/queries/getSelectedCellsBorders';\nimport { TablePlugin } from '../../TablePlugin';\nimport { getOnSelectTableBorderFactory } from './getOnSelectTableBorderFactory';\n\nexport const useTableBordersDropdownMenuContentState = ({\n element: el,\n}: {\n element?: TTableElement;\n} = {}) => {\n const { editor } = useEditorPlugin(TablePlugin);\n const element = useElement() ?? el;\n const selectedCells = usePluginOption(TablePlugin, 'selectedCells');\n const borderStates = useEditorSelector<TableBorderStates>(\n (editor) => getSelectedCellsBorders(editor, selectedCells),\n [selectedCells, element]\n );\n\n return {\n getOnSelectTableBorder: getOnSelectTableBorderFactory(\n editor,\n selectedCells\n ),\n hasBottomBorder: borderStates.bottom,\n hasLeftBorder: borderStates.left,\n hasNoBorders: borderStates.none,\n hasOuterBorders: borderStates.outer,\n hasRightBorder: borderStates.right,\n hasTopBorder: borderStates.top,\n };\n};\n","import React from 'react';\n\nimport type { TTableCellElement } from 'platejs';\n\nimport { useEditorPlugin, useElement, usePluginOption } from 'platejs/react';\n\nimport { computeCellIndices } from '../../lib';\nimport { TablePlugin } from '../TablePlugin';\n\nexport const useCellIndices = () => {\n const { editor } = useEditorPlugin(TablePlugin);\n const element = useElement<TTableCellElement>();\n const cellIndices = usePluginOption(TablePlugin, 'cellIndices', element.id!);\n\n return React.useMemo(() => {\n if (!cellIndices) {\n return (\n computeCellIndices(editor, {\n cellNode: element,\n }) ?? { col: 0, row: 0 }\n );\n }\n\n return cellIndices ?? { col: 0, row: 0 };\n }, [cellIndices, editor, element]);\n};\n","import React from 'react';\n\nimport type { TTableCellElement } from 'platejs';\n\nimport { useEditorPlugin, useElement } from 'platejs/react';\n\nimport { getTableCellBorders } from '../../../lib';\nimport { useCellIndices } from '../../hooks/useCellIndices';\nimport { TablePlugin } from '../../TablePlugin';\n\nexport function useTableCellBorders({\n element: el,\n}: {\n element?: TTableCellElement;\n} = {}) {\n const { editor } = useEditorPlugin(TablePlugin);\n const element = useElement<TTableCellElement>() ?? el;\n const cellIndices = useCellIndices();\n\n return React.useMemo(\n () => getTableCellBorders(editor, { cellIndices, element }),\n [editor, element, cellIndices]\n );\n}\n","import React from 'react';\n\nimport { atom, createAtomStore } from 'platejs/react';\n\nimport type { TableStoreSizeOverrides } from '../../lib';\n\nexport const {\n TableProvider,\n tableStore,\n useTableSet,\n useTableState,\n useTableStore,\n useTableValue,\n} = createAtomStore(\n {\n colSizeOverrides: atom(new Map() as TableStoreSizeOverrides),\n marginLeftOverride: null as number | null,\n rowSizeOverrides: atom(new Map() as TableStoreSizeOverrides),\n },\n { name: 'table' as const }\n) as any;\n\nconst useOverrideSizeFactory = (\n setOverrides: (\n fn: (overrides: TableStoreSizeOverrides) => TableStoreSizeOverrides\n ) => void\n) =>\n React.useCallback(\n (index: number, size: number | null) => {\n setOverrides((overrides) => {\n const newOverrides = new Map(overrides);\n\n if (size === null) {\n newOverrides.delete(index);\n } else {\n newOverrides.set(index, size);\n }\n\n return newOverrides;\n });\n },\n [setOverrides]\n );\n\nexport const useOverrideColSize = () => {\n const setColSizeOverrides = useTableSet('colSizeOverrides');\n\n return useOverrideSizeFactory(setColSizeOverrides);\n};\n\nexport const useOverrideRowSize = () => {\n const setRowSizeOverrides = useTableSet('rowSizeOverrides');\n\n return useOverrideSizeFactory(setRowSizeOverrides);\n};\n\nexport const useOverrideMarginLeft = () => useTableSet('marginLeftOverride');\n","import React from 'react';\n\nimport {\n useEditorPlugin,\n useEditorRef,\n useEditorSelection,\n usePluginOption,\n useReadOnly,\n useSelected,\n} from 'platejs/react';\n\nimport { getTableGridAbove } from '../../../lib';\nimport { TablePlugin } from '../../TablePlugin';\n\n/**\n * Many grid cells above and diff -> set No many grid cells above and diff ->\n * unset No selection -> unset\n */\nexport const useSelectedCells = () => {\n const readOnly = useReadOnly();\n const selected = useSelected();\n const editor = useEditorRef();\n const selection = useEditorSelection();\n\n const { setOption } = useEditorPlugin(TablePlugin);\n const selectedCells = usePluginOption(TablePlugin, 'selectedCells');\n\n React.useEffect(() => {\n if (!selected || readOnly) {\n setOption('selectedCells', null);\n setOption('selectedTables', null);\n }\n }, [selected, editor, readOnly, setOption]);\n\n React.useEffect(() => {\n if (readOnly) return;\n\n const tableEntries = getTableGridAbove(editor, { format: 'table' });\n const cellEntries = getTableGridAbove(editor, { format: 'cell' });\n\n if (cellEntries?.length > 1) {\n const cells = cellEntries.map((entry) => entry[0]);\n const tables = tableEntries.map((entry) => entry[0]);\n\n if (JSON.stringify(cells) !== JSON.stringify(selectedCells)) {\n setOption('selectedCells', cells);\n setOption('selectedTables', tables);\n }\n } else if (selectedCells) {\n setOption('selectedCells', null);\n setOption('selectedTables', null);\n }\n }, [editor, selection, readOnly, selectedCells, setOption]);\n};\n","import { KEYS, PathApi } from 'platejs';\nimport { useElementSelector } from 'platejs/react';\n\nimport { getTableOverriddenColSizes } from '../../../lib';\nimport { useTableValue } from '../../stores';\n\n/**\n * Returns colSizes with overrides applied. Unset node.colSizes if `colCount`\n * updates to 1.\n */\nexport const useTableColSizes = ({\n disableOverrides = false,\n transformColSizes,\n}: {\n disableOverrides?: boolean;\n transformColSizes?: (colSizes: number[]) => number[];\n} = {}): number[] => {\n const colSizeOverrides = useTableValue('colSizeOverrides');\n\n const overriddenColSizes = useElementSelector(\n ([tableNode]) => {\n const colSizes = getTableOverriddenColSizes(\n tableNode,\n disableOverrides ? undefined : colSizeOverrides\n );\n\n if (transformColSizes) {\n return transformColSizes(colSizes);\n }\n\n return colSizes;\n },\n [disableOverrides, colSizeOverrides, transformColSizes],\n {\n key: KEYS.table,\n equalityFn: (a, b) => !!a && !!b && PathApi.equals(a, b),\n }\n );\n\n return overriddenColSizes;\n};\n","import type { TTableElement } from 'platejs';\n\nimport { useEditorPlugin, useElement, usePluginOption } from 'platejs/react';\n\nimport { useTableValue } from '../../stores';\nimport { TablePlugin } from '../../TablePlugin';\nimport { useSelectedCells } from './useSelectedCells';\n\nexport const useTableElement = () => {\n const { editor, getOptions } = useEditorPlugin(TablePlugin);\n\n const { disableMarginLeft } = getOptions();\n\n const element = useElement<TTableElement>();\n const selectedCells = usePluginOption(TablePlugin, 'selectedCells');\n const marginLeftOverride = useTableValue('marginLeftOverride');\n\n const marginLeft = disableMarginLeft\n ? 0\n : (marginLeftOverride ?? element.marginLeft ?? 0);\n\n useSelectedCells();\n\n return {\n isSelectingCell: !!selectedCells,\n marginLeft,\n props: {\n onMouseDown: () => {\n // until cell dnd is supported, we collapse the selection on mouse down\n if (selectedCells) {\n editor.tf.collapse();\n }\n },\n },\n };\n};\n","import React from 'react';\n\nimport type { NodeEntry, TTableCellElement, TTableRowElement } from 'platejs';\n\nimport { KEYS } from 'platejs';\nimport { useEditorPlugin, useElement, useElementSelector } from 'platejs/react';\n\nimport { useCellIndices } from '../../hooks/useCellIndices';\nimport { TablePlugin } from '../../TablePlugin';\nimport { useTableColSizes } from '../TableElement';\n\nexport function useTableCellSize({\n element: el,\n}: {\n element?: TTableCellElement;\n} = {}) {\n const { api } = useEditorPlugin(TablePlugin);\n\n const element = useElement() ?? el;\n const colSizes = useTableColSizes();\n const cellIndices = useCellIndices();\n const rowSize = useElementSelector(\n ([node]: NodeEntry<TTableRowElement>) => node.size,\n [],\n {\n key: KEYS.tr,\n }\n );\n\n return React.useMemo(\n () => api.table.getCellSize({ cellIndices, colSizes, element, rowSize }),\n [api.table, cellIndices, colSizes, element, rowSize]\n );\n}\n","import React from 'react';\n\nimport type { TTableCellElement } from 'platejs';\n\nimport { useEditorPlugin, useElement, usePluginOption } from 'platejs/react';\n\nimport type { BorderStylesDefault } from '../../../lib';\n\nimport { useCellIndices } from '../../hooks/useCellIndices';\nimport { useTableValue } from '../../stores';\nimport { TablePlugin } from '../../TablePlugin';\nimport { useIsCellSelected } from './useIsCellSelected';\nimport { useTableCellBorders } from './useTableCellBorders';\nimport { useTableCellSize } from './useTableCellSize';\n\nexport type TableCellElementState = {\n borders: BorderStylesDefault;\n colIndex: number;\n colSpan: number;\n isSelectingCell: boolean;\n minHeight: number | undefined;\n rowIndex: number;\n selected: boolean;\n width: number | string;\n};\n\nexport const useTableCellElement = (): TableCellElementState => {\n const { api, setOption } = useEditorPlugin(TablePlugin);\n const element = useElement<TTableCellElement>();\n const isCellSelected = useIsCellSelected(element);\n const selectedCells = usePluginOption(TablePlugin, 'selectedCells');\n\n // Sync element transforms with selected cells\n React.useEffect(() => {\n if (selectedCells?.some((v) => v.id === element.id && element !== v)) {\n setOption(\n 'selectedCells',\n selectedCells.map((v) => (v.id === element.id ? element : v))\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [element]);\n\n const rowSizeOverrides = useTableValue('rowSizeOverrides');\n const { minHeight, width } = useTableCellSize({ element });\n const borders = useTableCellBorders({ element });\n\n /**\n * Row size: if rowSpan > 1, we might look up the rowSize for the bottom row\n * or you can do something simpler if row-spanning is unusual in your app.\n */\n const { col, row } = useCellIndices();\n const colSpan = api.table.getColSpan(element);\n const rowSpan = api.table.getRowSpan(element);\n const endingRowIndex = row + rowSpan - 1;\n const endingColIndex = col + colSpan - 1;\n\n return {\n borders,\n colIndex: endingColIndex,\n colSpan,\n isSelectingCell: !!selectedCells,\n minHeight: rowSizeOverrides.get?.(endingRowIndex) ?? minHeight,\n rowIndex: endingRowIndex,\n selected: isCellSelected,\n width,\n };\n};\n","import React from 'react';\n\nimport type { TTableElement } from 'platejs';\n\nimport {\n type ResizeEvent,\n type ResizeHandle,\n resizeLengthClampStatic,\n} from '@platejs/resizable';\nimport { KEYS } from 'platejs';\nimport { useEditorPlugin, useElement, useElementSelector } from 'platejs/react';\n\nimport type { TableCellElementState } from './useTableCellElement';\n\nimport {\n setTableColSize,\n setTableMarginLeft,\n setTableRowSize,\n} from '../../../lib';\nimport {\n useOverrideColSize,\n useOverrideMarginLeft,\n useOverrideRowSize,\n} from '../../stores';\nimport { TablePlugin } from '../../TablePlugin';\nimport { useTableColSizes } from '../TableElement/useTableColSizes';\nimport { roundCellSizeToStep } from './roundCellSizeToStep';\n\nexport type TableCellElementResizableOptions = {\n /** Resize by step instead of by pixel. */\n step?: number;\n /** Overrides for X and Y axes. */\n stepX?: number;\n stepY?: number;\n} & Pick<TableCellElementState, 'colIndex' | 'colSpan' | 'rowIndex'>;\n\nexport const useTableCellElementResizable = ({\n colIndex,\n colSpan,\n rowIndex,\n step,\n stepX = step,\n stepY = step,\n}: TableCellElementResizableOptions): {\n bottomProps: React.ComponentPropsWithoutRef<typeof ResizeHandle>;\n hiddenLeft: boolean;\n leftProps: React.ComponentPropsWithoutRef<typeof ResizeHandle>;\n rightProps: React.ComponentPropsWithoutRef<typeof ResizeHandle>;\n} => {\n const { editor, getOptions } = useEditorPlugin(TablePlugin);\n const element = useElement();\n const { disableMarginLeft, minColumnWidth = 0 } = getOptions();\n\n const initialWidth = useElementSelector(\n ([node]) =>\n colSpan > 1 ? (node as TTableElement).colSizes?.[colIndex] : undefined,\n [colSpan, colIndex],\n { key: KEYS.table }\n );\n const marginLeft = useElementSelector(\n ([node]) => (node as TTableElement).marginLeft ?? 0,\n [],\n { key: KEYS.table }\n );\n\n const colSizesWithoutOverrides = useTableColSizes({ disableOverrides: true });\n const colSizesWithoutOverridesRef = React.useRef(colSizesWithoutOverrides);\n React.useEffect(() => {\n colSizesWithoutOverridesRef.current = colSizesWithoutOverrides;\n }, [colSizesWithoutOverrides]);\n\n const overrideColSize = useOverrideColSize();\n const overrideRowSize = useOverrideRowSize();\n const overrideMarginLeft = useOverrideMarginLeft();\n\n const setColSize = React.useCallback(\n (colIndex: number, width: number) => {\n setTableColSize(editor, { colIndex, width }, { at: element });\n\n // Prevent flickering\n setTimeout(() => overrideColSize(colIndex, null), 0);\n },\n [editor, element, overrideColSize]\n );\n\n const setRowSize = React.useCallback(\n (rowIndex: number, height: number) => {\n setTableRowSize(editor, { height, rowIndex }, { at: element });\n\n // Prevent flickering\n setTimeout(() => overrideRowSize(rowIndex, null), 0);\n },\n [editor, element, overrideRowSize]\n );\n\n const setMarginLeft = React.useCallback(\n (marginLeft: number) => {\n setTableMarginLeft(editor, { marginLeft }, { at: element });\n\n // Prevent flickering\n setTimeout(() => overrideMarginLeft(null), 0);\n },\n [editor, element, overrideMarginLeft]\n );\n\n const handleResizeRight = React.useCallback(\n ({ delta, finished, initialSize: currentInitial }: ResizeEvent) => {\n const nextInitial = colSizesWithoutOverridesRef.current[colIndex + 1];\n\n const complement = (width: number) =>\n currentInitial + nextInitial - width;\n\n const currentNew = roundCellSizeToStep(\n resizeLengthClampStatic(currentInitial + delta, {\n max: nextInitial ? complement(minColumnWidth) : undefined,\n min: minColumnWidth,\n }),\n stepX\n );\n\n const nextNew = nextInitial ? complement(currentNew) : undefined;\n\n const fn = finished ? setColSize : overrideColSize;\n fn(colIndex, currentNew);\n\n if (nextNew) fn(colIndex + 1, nextNew);\n },\n [colIndex, minColumnWidth, overrideColSize, setColSize, stepX]\n );\n\n const handleResizeBottom = React.useCallback(\n (event: ResizeEvent) => {\n const newHeight = roundCellSizeToStep(\n event.initialSize + event.delta,\n stepY\n );\n\n if (event.finished) {\n setRowSize(rowIndex, newHeight);\n } else {\n overrideRowSize(rowIndex, newHeight);\n }\n },\n [overrideRowSize, rowIndex, setRowSize, stepY]\n );\n\n const handleResizeLeft = React.useCallback(\n (event: ResizeEvent) => {\n const initial = colSizesWithoutOverridesRef.current[colIndex];\n\n const complement = (width: number) => initial + marginLeft - width;\n\n const newMargin = roundCellSizeToStep(\n resizeLengthClampStatic(marginLeft + event.delta, {\n max: complement(minColumnWidth),\n min: 0,\n }),\n stepX\n );\n\n const newWidth = complement(newMargin);\n\n if (event.finished) {\n setMarginLeft(newMargin);\n setColSize(colIndex, newWidth);\n } else {\n overrideMarginLeft(newMargin);\n overrideColSize(colIndex, newWidth);\n }\n },\n [\n colIndex,\n marginLeft,\n minColumnWidth,\n overrideColSize,\n overrideMarginLeft,\n setColSize,\n setMarginLeft,\n stepX,\n ]\n );\n\n const hasLeftHandle = colIndex === 0 && !disableMarginLeft;\n\n return {\n bottomProps: React.useMemo(\n () => ({\n options: {\n direction: 'bottom',\n onResize: handleResizeBottom,\n },\n }),\n [handleResizeBottom]\n ),\n hiddenLeft: !hasLeftHandle,\n leftProps: React.useMemo(\n () => ({\n options: {\n direction: 'left',\n onResize: handleResizeLeft,\n },\n }),\n [handleResizeLeft]\n ),\n rightProps: React.useMemo(\n () => ({\n options: {\n direction: 'right',\n initialSize: initialWidth,\n onResize: handleResizeRight,\n },\n }),\n [initialWidth, handleResizeRight]\n ),\n };\n};\n","/* eslint-disable react-hooks/rules-of-hooks */\nimport type { TTableCellElement } from 'platejs';\n\nimport { KEYS } from 'platejs';\nimport {\n useEditorPlugin,\n useEditorSelector,\n usePluginOption,\n useReadOnly,\n} from 'platejs/react';\n\nimport { getTableGridAbove, isTableRectangular } from '../../lib';\nimport { TablePlugin } from '../TablePlugin';\n\nexport const useTableMergeState = () => {\n const { api, getOptions } = useEditorPlugin(TablePlugin);\n\n const { disableMerge } = getOptions();\n\n if (disableMerge) return { canMerge: false, canSplit: false };\n\n const readOnly = useReadOnly();\n const someTable = useEditorSelector(\n (editor) => editor.api.some({ match: { type: KEYS.table } }),\n []\n );\n const selectionExpanded = useEditorSelector(\n (editor) => editor.api.isExpanded(),\n []\n );\n\n const collapsed = !readOnly && someTable && !selectionExpanded;\n const selectedTables = usePluginOption(TablePlugin, 'selectedTables');\n const selectedTable = selectedTables?.[0];\n\n const selectedCellEntries = useEditorSelector(\n (editor) =>\n getTableGridAbove(editor, {\n format: 'cell',\n }),\n []\n );\n\n if (!selectedCellEntries) return { canMerge: false, canSplit: false };\n\n const canMerge =\n !readOnly &&\n someTable &&\n selectionExpanded &&\n selectedCellEntries.length > 1 &&\n isTableRectangular(selectedTable);\n\n const canSplit =\n collapsed &&\n selectedCellEntries.length === 1 &&\n (api.table.getColSpan(selectedCellEntries[0][0] as TTableCellElement) > 1 ||\n api.table.getRowSpan(selectedCellEntries[0][0] as TTableCellElement) > 1);\n\n return { canMerge, canSplit };\n};\n"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@lofcz/platejs-table",
3
+ "version": "52.0.11",
4
+ "description": "Table plugin for Plate",
5
+ "keywords": [
6
+ "plate",
7
+ "plugin",
8
+ "slate"
9
+ ],
10
+ "homepage": "https://platejs.org",
11
+ "bugs": {
12
+ "url": "https://github.com/udecode/plate/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/lofcz/plate.git",
17
+ "directory": "packages/table"
18
+ },
19
+ "license": "MIT",
20
+ "sideEffects": false,
21
+ "exports": {
22
+ ".": "./dist/index.js",
23
+ "./react": "./dist/react/index.js",
24
+ "./package.json": "./package.json"
25
+ },
26
+ "main": "./dist/index.js",
27
+ "types": "./dist/index.d.ts",
28
+ "files": [
29
+ "dist/**/*"
30
+ ],
31
+ "dependencies": {
32
+ "lodash": "^4.17.21",
33
+ "react-compiler-runtime": "^1.0.0",
34
+ "@platejs/resizable": "npm:@lofcz/platejs-resizable@52.0.11"
35
+ },
36
+ "devDependencies": {
37
+ "mutative": "^1.1.0",
38
+ "@plate/scripts": "1.0.0"
39
+ },
40
+ "peerDependencies": {
41
+ "platejs": ">=52.0.11",
42
+ "react": ">=18.0.0",
43
+ "react-dom": ">=18.0.0"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ },
48
+ "type": "module",
49
+ "module": "./dist/index.js",
50
+ "scripts": {
51
+ "brl": "plate-pkg p:brl",
52
+ "build": "plate-pkg p:build",
53
+ "build:watch": "plate-pkg p:build:watch",
54
+ "clean": "plate-pkg p:clean",
55
+ "lint": "plate-pkg p:lint",
56
+ "lint:fix": "plate-pkg p:lint:fix",
57
+ "test": "plate-pkg p:test",
58
+ "test:watch": "plate-pkg p:test:watch",
59
+ "typecheck": "plate-pkg p:typecheck"
60
+ }
61
+ }