@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
73 lines (72 loc) • 2.73 kB
TypeScript
import { EditorState, EditorView, Plugin, PluginKey, NodeViewDesc, CellSelection, Node } from '../../prosemirror';
export declare type TableStateSubscriber = (state: TableState) => any;
export interface SelectedCell {
pos: number;
node: Node;
}
export interface PluginConfig {
isHeaderRowRequired?: boolean;
}
export declare class TableState {
keymapHandler: Function;
cellElement?: HTMLElement;
tableElement?: HTMLElement;
editorFocused: boolean;
tableNode?: Node;
cellSelection?: CellSelection;
toolbarFocused: boolean;
tableHidden: boolean;
tableDisabled: boolean;
tableActive: boolean;
domEvent: boolean;
hoveredCells: SelectedCell[];
private isHeaderRowRequired;
private view;
private changeHandlers;
constructor(state: EditorState<any>, pluginConfig?: PluginConfig);
insertColumn: (column: number) => void;
insertRow: (row: number) => void;
remove: () => void;
convertFirstRowToHeader: () => void;
subscribe(cb: TableStateSubscriber): void;
unsubscribe(cb: TableStateSubscriber): void;
updateEditorFocused(editorFocused: boolean): void;
updateToolbarFocused(toolbarFocused: boolean): void;
selectColumn: (column: number) => void;
selectRow: (row: number) => void;
selectTable: () => void;
hoverColumn: (column: number) => void;
hoverRow: (row: number) => void;
hoverTable: () => void;
resetHoverSelection: () => void;
isColumnSelected: (column: number) => boolean;
isRowSelected: (row: number) => boolean;
isHeaderRowSelected: () => boolean;
isTableSelected: () => boolean;
update(docView: NodeViewDesc, domEvent?: boolean): void;
setView(view: EditorView): void;
tableStartPos(): number | undefined;
closeFloatingToolbar(): void;
getCurrentCellStartPos(): number | undefined;
isRequiredToAddHeader: () => boolean;
addHeaderToTableNodes: (slice: Node, selectionStart: number) => void;
private getCurrentCell();
private createHoverSelection(from, to);
private getTableElement(docView);
private getFirstSelectedCellElement(docView);
private firstSelectedCellStartPos();
private getTableNode();
private triggerOnChange();
private createCellSelection(from, to);
private updateSelection();
private clearSelection();
private canInsertTable();
private emptySelectedCells();
private focusEditor();
private moveCursorInsideTableTo(pos);
private moveCursorTo(pos);
}
export declare const stateKey: PluginKey;
export declare const plugin: (pluginConfig?: PluginConfig | undefined) => Plugin;
declare const plugins: (pluginConfig?: PluginConfig | undefined) => Plugin[];
export default plugins;