@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
57 lines (56 loc) • 1.87 kB
TypeScript
import { EditorCommand } from "./EditorCommand";
import { EditorMenuBar } from "./EditorMenuBar";
import { ToolbarProperties } from "./ToolbarProperties";
import { Tag } from "../Tags";
import { PromotedTagOptions } from "../PromotedTagOptions";
export interface HashTagCommand extends EditorCommand {
}
export interface EditorHashTagMenuBar extends EditorMenuBar<HashTagCommand> {
}
export interface HashTagToolbarProperties extends ToolbarProperties<HashTagCommand> {
menuHandler: (menubar: IHashTagMenuBarDefinition) => void;
selectTag: (tag: Tag) => void;
promotedTagOptions?: PromotedTagOptions;
}
export interface HashTagEditorExtensionConfiguration {
items: (query: string, virtualNode: any) => Promise<Tag[]>;
onEnter: ({ items, query, range, command, virtualNode }: {
items: any;
query: any;
range: any;
command: any;
virtualNode: any;
}) => any;
onChange: ({ items, query, range, virtualNode }: {
items: any;
query: any;
range: any;
virtualNode: any;
}) => any;
onExit: () => any;
onKeyDown: ({ event }: {
event: any;
}) => any;
onFilter: (items: any, query: any) => any;
onRemoveTag: (tag: Tag) => void;
onSelectTag: (tag: Tag) => void;
}
export interface HashTagMenuBar {
items: Array<Tag>;
showLoading: boolean;
showMenu: boolean;
offsetX: number;
offsetY: number;
index: number;
searchKeyword: string;
}
export interface IHashTagMenuBarDefinition {
SetItems: (items: Array<Tag>) => this;
SetLoading: (loading: boolean) => this;
SetShowMenu: (show: boolean) => this;
SetOffsetX: (offsetX: number) => this;
SetOffsetY: (offsetY: number) => this;
SetIndex: (idx: number) => this;
GetMenu(): HashTagMenuBar;
SetSearchKeyword: (searchKeyword: string) => this;
}