@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
52 lines • 1.75 kB
JavaScript
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 var getMergedCellsPositions = function getMergedCellsPositions(tr) {
var table = findTable(tr.selection);
if (!table) {
return [];
}
var map = TableMap.get(table.node);
var cellPositions = new Set();
var mergedCells = [];
map.map.forEach(function (value) {
if (cellPositions.has(value)) {
mergedCells.push(value);
} else {
cellPositions.add(value);
}
});
return mergedCells;
};
export var getAssistiveMessage = function getAssistiveMessage(prevTableNode, currentTableNode, intl) {
var formatMessage = intl.formatMessage;
var prevTableMap = TableMap.get(prevTableNode);
var currentTableMap = TableMap.get(currentTableNode);
if (currentTableMap.width !== prevTableMap.width) {
var 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) {
var _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 '';
};