@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
43 lines (42 loc) • 1.67 kB
TypeScript
import { EmojiId, EmojiProvider, EmojiSearchResult } from '@atlaskit/emoji';
import { EditorState, EditorView, Schema, Plugin } from '../../prosemirror';
import ProviderFactory from '../../providerFactory';
import stateKey from './plugin-key';
export { stateKey };
export declare type StateChangeHandler = (state: EmojiState) => any;
export declare type ProviderChangeHandler = (provider?: EmojiProvider) => any;
export interface Options {
emojiProvider: Promise<EmojiProvider>;
}
export declare class EmojiState {
emojiProvider?: EmojiProvider;
query?: string;
enabled: boolean;
queryActive: boolean;
anchorElement?: HTMLElement;
onSelectPrevious: () => boolean;
onSelectNext: () => boolean;
onSelectCurrent: () => boolean;
private changeHandlers;
private state;
private view;
private queryResult;
constructor(state: EditorState<any>, providerFactory: ProviderFactory);
subscribe(cb: StateChangeHandler): void;
unsubscribe(cb: StateChangeHandler): void;
update(state: EditorState<any>): void;
dismiss(): boolean;
isEnabled(): boolean;
private findEmojiQueryMark();
insertEmoji(emojiId?: EmojiId): void;
handleProvider: (name: string, provider: Promise<any>) => void;
trySelectCurrent: () => boolean;
private getEmojisCount;
private isEmptyQuery;
onSearchResult: (searchResults: EmojiSearchResult) => void;
private onProviderChange;
setView(view: EditorView): void;
}
export declare function createPlugin(providerFactory: ProviderFactory): Plugin;
declare const plugins: (schema: Schema<any, any>, providerFactory: any) => Plugin[];
export default plugins;