@atlaskit/editor-plugin-alignment
Version:
Alignment plugin for @atlaskit/editor-core
17 lines • 926 B
JavaScript
import { findParentNodeOfType } from '@atlaskit/editor-prosemirror/utils';
import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
export const getActiveAlignment = state => {
if (state.selection instanceof CellSelection) {
const marks = [];
state.selection.forEachCell(cell => {
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const mark = cell.firstChild.marks.filter(mark => mark.type === state.schema.marks.alignment)[0];
marks.push(mark ? mark.attrs.align : 'start');
});
return marks.every(mark => mark === marks[0]) ? marks[0] : 'start';
}
const node = findParentNodeOfType([state.schema.nodes.paragraph, state.schema.nodes.heading])(state.selection);
const getMark = node && node.node.marks.filter(mark => mark.type === state.schema.marks.alignment)[0];
return getMark && getMark.attrs.align || 'start';
};