@atlaskit/editor-plugin-indentation
Version:
Indentation plugin for @atlaskit/editor-core
33 lines (32 loc) • 1.27 kB
TypeScript
import type { Command, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
import type { Node } from '@atlaskit/editor-prosemirror/model';
import type { IndentationInputMethod } from './editor-commands/utils';
type IndentationPluginSharedState = {
indentDisabled: boolean;
isIndentationAllowed: boolean;
outdentDisabled: boolean;
};
export type IndentationPluginDependencies = [
OptionalPlugin<AnalyticsPlugin>
];
export type IndentationPluginActions = {
indentParagraphOrHeading: (inputMethod: IndentationInputMethod) => Command;
outdentParagraphOrHeading: (inputMethod: IndentationInputMethod) => Command;
};
export type IndentationPlugin = NextEditorPlugin<'indentation', {
actions: IndentationPluginActions;
dependencies: IndentationPluginDependencies;
sharedState: IndentationPluginSharedState | undefined;
}>;
export interface GetAttrsChange<T, V> {
newAttrs: T | false | undefined;
node: Node;
options: V;
prevAttrs?: T;
}
export type GetAttrsWithChangesRecorder<T, V> = {
getAndResetAttrsChanges(): GetAttrsChange<T, V>[];
getAttrs(prevAttrs?: T | undefined, node?: Node): T | false | undefined;
};
export {};