@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
41 lines (40 loc) • 2.05 kB
TypeScript
import type { Node, ResolvedPos } from '@atlaskit/editor-prosemirror/model';
import type { EditorState, ReadonlyTransaction, Transaction } from '@atlaskit/editor-prosemirror/state';
type ChangedFn = (node: Node, pos: number, parent: Node | null, index: number) => boolean | void;
export declare const getStepRange: (transaction: Transaction | ReadonlyTransaction) => {
from: number;
to: number;
} | null;
export declare function hasDocAsParent($anchor: ResolvedPos): boolean;
/**
* Checks if a node looks like an empty document
*/
export declare function isEmptyDocument(node: Node): boolean;
export declare function bracketTyped(state: EditorState): boolean;
export declare function nodesBetweenChanged(tr: Transaction | ReadonlyTransaction, f: ChangedFn, startPos?: number): void;
/**
* Returns false if node contains only empty inline nodes and hardBreaks.
*/
export declare function hasVisibleContent(node: Node): boolean;
export declare const isSelectionEndOfParagraph: (state: EditorState) => boolean;
export declare function getChangedNodes(tr: ReadonlyTransaction | Transaction): {
node: Node;
pos: number;
}[];
export declare const isReplaceDocOperation: (transactions: readonly Transaction[], oldState: EditorState) => boolean;
/**
* Compares two ProseMirror documents for equality, ignoring attributes
* which don't affect the document structure.
*
* This is almost a copy of the .eq() PM function - tweaked to ignore attrs
*
* @param doc1 PMNode
* @param doc2 PMNode
* @param attributesToIgnore Specific array of attribute keys to ignore - defaults to ignoring all
* @param opts.ignoreMarkOrder If mark order should be ignored to still be equal (e.g. reversed annotation marks). When not provided, controlled by platform_editor_are_nodes_equal_ignore_mark_order feature gate (defaults to true when gate is on).
* @returns boolean
*/
export declare function areNodesEqualIgnoreAttrs(node1: Node, node2: Node, attributesToIgnore?: string[], opts?: {
ignoreMarkOrder?: boolean;
}): boolean;
export {};