UNPKG

@atlaskit/editor-plugin-table

Version:

Table plugin for the @atlaskit/editor

68 lines (65 loc) 3.16 kB
// @ts-ignore -- ReadonlyTransaction is a local declaration and will cause a TS2305 error in CCFE typecheck import { CellSelection } from '@atlaskit/editor-tables/cell-selection'; import { findTable } from '@atlaskit/editor-tables/utils'; import { TableDecorations } from '../../../types'; import { createColumnControlsDecoration, createColumnSelectedDecoration, findColumnControlSelectedDecoration, findControlsHoverDecoration, updateDecorations } from '../../utils/decoration'; import { composeDecorations } from './compose-decorations'; var isColumnSelected = function isColumnSelected(tr) { return tr.selection instanceof CellSelection && tr.selection.isColSelection(); }; // @see: https://product-fabric.atlassian.net/browse/ED-3796 var removeControlsHoverDecoration = function removeControlsHoverDecoration(_ref) { var decorationSet = _ref.decorationSet; return decorationSet.remove(findControlsHoverDecoration(decorationSet)); }; var maybeUpdateColumnSelectedDecoration = function maybeUpdateColumnSelectedDecoration(_ref2) { var decorationSet = _ref2.decorationSet, tr = _ref2.tr; if (!isColumnSelected(tr)) { return decorationSet; } return updateDecorations(tr.doc, decorationSet, createColumnSelectedDecoration(tr), TableDecorations.COLUMN_SELECTED); }; var maybeUpdateColumnControlsDecoration = function maybeUpdateColumnControlsDecoration(_ref3) { var decorationSet = _ref3.decorationSet, tr = _ref3.tr; var table = findTable(tr.selection); if (!table) { return decorationSet; } return updateDecorations(tr.doc, decorationSet, createColumnControlsDecoration(tr.selection), TableDecorations.COLUMN_CONTROLS_DECORATIONS); }; // @see: https://product-fabric.atlassian.net/browse/ED-7304 var removeColumnControlsSelectedDecoration = function removeColumnControlsSelectedDecoration(_ref4) { var decorationSet = _ref4.decorationSet; return decorationSet.remove(findColumnControlSelectedDecoration(decorationSet)); }; var hasColumnSelectedDecorations = function hasColumnSelectedDecorations(decorationSet) { return !!findColumnControlSelectedDecoration(decorationSet).length; }; export var maybeUpdateColumnControlsSelectedDecoration = function maybeUpdateColumnControlsSelectedDecoration(_ref5) { var decorationSet = _ref5.decorationSet, tr = _ref5.tr; if (!hasColumnSelectedDecorations(decorationSet)) { return decorationSet; } return removeColumnControlsSelectedDecoration({ decorationSet: decorationSet, tr: tr }); }; export var buildColumnControlsDecorations = function buildColumnControlsDecorations(_ref6) { var decorationSet = _ref6.decorationSet, tr = _ref6.tr, options = _ref6.options; if (options.isDragAndDropEnabled) { return composeDecorations([removeColumnControlsSelectedDecoration, removeControlsHoverDecoration, maybeUpdateColumnSelectedDecoration])({ decorationSet: decorationSet, tr: tr }); } return composeDecorations([removeColumnControlsSelectedDecoration, removeControlsHoverDecoration, maybeUpdateColumnSelectedDecoration, maybeUpdateColumnControlsDecoration])({ decorationSet: decorationSet, tr: tr }); };