@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
69 lines (68 loc) • 2.25 kB
TypeScript
import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
import { type PluginInjectionAPI } from '../types';
import TableNodeView from './TableNodeViewBase';
export default class TableRow extends TableNodeView<HTMLTableRowElement> implements NodeView {
private nodeVisibilityObserverCleanupFn?;
cleanup: () => void;
constructor(node: PMNode, view: EditorView, getPos: () => number | undefined, eventDispatcher: EventDispatcher, api?: PluginInjectionAPI);
subscribeWhenRowVisible(): void;
/**
* Variables
*/
private isHeaderRow;
private isInNestedTable;
private isStickyHeaderEnabled;
private editorScrollableElement?;
private colControlsOffset;
private focused;
private topPosEditorElement;
private isSticky;
private intersectionObserver?;
private resizeObserver?;
private tableContainerObserver?;
private sentinels;
private sentinelData;
private stickyRowHeight?;
private listening;
private padding;
private top;
/**
* Methods: Nodeview Lifecycle
*/
update(node: PMNode, ..._args: any[]): boolean;
destroy(): void;
ignoreMutation(mutationRecord: MutationRecord | {
target: Node;
type: 'selection';
}): boolean;
/**
* Methods
*/
private headerRowMouseScrollEnd;
private headerRowMouseScroll;
private subscribe;
private unsubscribe;
private initObservers;
private createResizeObserver;
private createIntersectionObserver;
private refreshStickyState;
private shouldSticky;
private isHeaderSticky;
private onTablePluginState;
private updateStickyHeaderWidth;
/**
* Manually refire the intersection observers.
* Useful when the header may have detached from the table.
*/
private refireIntersectionObservers;
private makeHeaderRowSticky;
private makeRowHeaderNotSticky;
private getWrapperoffset;
private getWrapperRefTop;
private getScrolledTableTop;
private getCurrentTableTop;
private emitOn;
private emitOff;
}