UNPKG

@atlaskit/editor-plugin-table

Version:

Table plugin for the @atlaskit/editor

69 lines (68 loc) 2.25 kB
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; }