UNPKG

@atlaskit/editor-plugin-table

Version:

Table plugin for the @atlaskit/editor

54 lines 1.7 kB
import { tableMessages as messages } from '@atlaskit/editor-common/messages'; import { TableMap } from '@atlaskit/editor-tables/table-map'; import { findTable } from '@atlaskit/editor-tables/utils'; export const getMergedCellsPositions = tr => { const table = findTable(tr.selection); if (!table) { return []; } const map = TableMap.get(table.node); const cellPositions = new Set(); const mergedCells = []; map.map.forEach(value => { if (cellPositions.has(value)) { mergedCells.push(value); } else { cellPositions.add(value); } }); return mergedCells; }; export const getAssistiveMessage = (prevTableNode, currentTableNode, intl) => { const { formatMessage } = intl; const prevTableMap = TableMap.get(prevTableNode); const currentTableMap = TableMap.get(currentTableNode); if (currentTableMap.width !== prevTableMap.width) { const diff = Math.abs(currentTableMap.width - prevTableMap.width); if (currentTableMap.width > prevTableMap.width) { return formatMessage(messages.columnsAreInserted, { count: diff }); } if (currentTableMap.width < prevTableMap.width) { return formatMessage(messages.columnsAreRemoved, { count: diff }); } } if (currentTableMap.height !== prevTableMap.height) { const diff = Math.abs(currentTableMap.height - prevTableMap.height); if (currentTableMap.height > prevTableMap.height) { return formatMessage(messages.rowsAreInserted, { count: diff }); } if (currentTableMap.height < prevTableMap.height) { return formatMessage(messages.rowsAreRemoved, { count: diff }); } } return ''; };