UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

73 lines (72 loc) 2.73 kB
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;