mind-elixir
Version:
Mind elixir is a free open source mind map core.
120 lines (119 loc) • 8.51 kB
TypeScript
import './index.less';
import './iconfont/iconfont.js';
import { LEFT, RIGHT, SIDE, DARK_THEME, THEME } from './const';
import { findEle } from './utils/dom';
import dragMoveHelper from './utils/dragMoveHelper';
import type { MindElixirData, MindElixirInstance, MindElixirMethods, Options } from './types/index';
declare function MindElixir(this: MindElixirInstance, { el, direction, locale, draggable, editable, contextMenu, contextMenuOption, toolBar, keypress, mouseSelectionButton, selectionContainer, before, newTopicName, allowUndo, generateMainBranch, generateSubBranch, overflowHidden, theme, alignment, }: Options): void;
declare namespace MindElixir {
export var prototype: {
init(this: MindElixirInstance, data: MindElixirData): Error | undefined;
destroy(this: Partial<MindElixirInstance>): void;
exportSvg: (this: MindElixirInstance, noForeignObject?: boolean, injectCss?: string) => Blob;
exportPng: (this: MindElixirInstance, noForeignObject?: boolean, injectCss?: string) => Promise<Blob | null>;
createSummary: (this: MindElixirInstance) => void;
createSummaryFrom: (this: MindElixirInstance, summary: Omit<import("./summary").Summary, "id">) => void;
removeSummary: (this: MindElixirInstance, id: string) => void;
selectSummary: (this: MindElixirInstance, el: import("./summary").SummarySvgGroup) => void;
unselectSummary: (this: MindElixirInstance) => void;
renderSummary: (this: MindElixirInstance) => void;
editSummary: (this: MindElixirInstance, el: import("./summary").SummarySvgGroup) => void;
renderArrow(this: MindElixirInstance): void;
editArrowLabel(this: MindElixirInstance, el: import("./types/dom").CustomSvg): void;
tidyArrow(this: MindElixirInstance): void;
createArrow: (this: MindElixirInstance, from: import("./types/dom").Topic, to: import("./types/dom").Topic, options?: import("./arrow").ArrowOptions) => void;
removeArrow: (this: MindElixirInstance, linkSvg?: import("./types/dom").CustomSvg) => void;
selectArrow: (this: MindElixirInstance, link: import("./types/dom").CustomSvg) => void;
unselectArrow: (this: MindElixirInstance) => void;
rmSubline: (this: MindElixirInstance, tpc: import("./types/dom").Topic) => Promise<void>;
reshapeNode: (this: MindElixirInstance, tpc: import("./types/dom").Topic, patchData: Partial<import("./types/index").NodeObj>) => Promise<void>;
insertSibling: (this: MindElixirInstance, type: "before" | "after", el?: import("./types/dom").Topic | undefined, node?: import("./types/index").NodeObj | undefined) => Promise<void>;
insertParent: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined, node?: import("./types/index").NodeObj | undefined) => Promise<void>;
addChild: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined, node?: import("./types/index").NodeObj | undefined) => Promise<void>;
copyNode: (this: MindElixirInstance, node: import("./types/dom").Topic, to: import("./types/dom").Topic) => Promise<void>;
copyNodes: (this: MindElixirInstance, tpcs: import("./types/dom").Topic[], to: import("./types/dom").Topic) => Promise<void>;
moveUpNode: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined) => Promise<void>;
moveDownNode: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined) => Promise<void>;
removeNode: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined) => Promise<void>;
removeNodes: (this: MindElixirInstance, tpcs: import("./types/dom").Topic[]) => Promise<void>;
moveNodeIn: (this: MindElixirInstance, from: import("./types/dom").Topic[], to: import("./types/dom").Topic) => Promise<void>;
moveNodeBefore: (this: MindElixirInstance, from: import("./types/dom").Topic[], to: import("./types/dom").Topic) => Promise<void>;
moveNodeAfter: (this: MindElixirInstance, from: import("./types/dom").Topic[], to: import("./types/dom").Topic) => Promise<void>;
beginEdit: (this: MindElixirInstance, el?: import("./types/dom").Topic | undefined) => Promise<void>;
setNodeTopic: (this: MindElixirInstance, el: import("./types/dom").Topic, topic: string) => Promise<void>;
selectNode: (this: MindElixirInstance, targetElement: import("./types/dom").Topic, isNewNode?: boolean, e?: MouseEvent) => void;
unselectNode: (this: MindElixirInstance) => void;
selectNodes: (this: MindElixirInstance, tpc: import("./types/dom").Topic[]) => void;
unselectNodes: (// record the direction before enter focus mode, must true in focus mode, reset to null after exit focus
this: MindElixirInstance) => void;
clearSelection: (this: MindElixirInstance) => void;
getDataString: (this: MindElixirInstance) => string;
getData: (this: MindElixirInstance) => MindElixirData;
getDataMd: (this: MindElixirInstance) => string;
enableEdit: (this: MindElixirInstance) => void;
disableEdit: (this: MindElixirInstance) => void;
scale: (this: MindElixirInstance, scaleVal: number) => void;
scaleFit: (this: MindElixirInstance) => void;
toCenter: (this: MindElixirInstance) => void;
install: (this: MindElixirInstance, plugin: (instance: MindElixirInstance) => void) => void;
focusNode: (this: MindElixirInstance, el: import("./types/dom").Topic) => void;
cancelFocus: (this: MindElixirInstance) => void;
initLeft: (this: MindElixirInstance) => void;
initRight: (this: MindElixirInstance) => void;
initSide: (this: MindElixirInstance) => void;
setLocale: (this: MindElixirInstance, locale: import("./i18n").Locale) => void;
expandNode: (this: MindElixirInstance, el: import("./types/dom").Topic, isExpand?: boolean) => void;
refresh: (this: MindElixirInstance, data?: MindElixirData) => void;
getObjById: (id: string, data: import("./types/index").NodeObj) => import("./types/index").NodeObj | null;
generateNewObj: (this: MindElixirInstance) => import("./types/index").NodeObjExport;
layout: (this: MindElixirInstance) => void;
linkDiv: (this: MindElixirInstance, mainNode?: import("./types/dom").Wrapper) => void;
editTopic: (this: MindElixirInstance, el: import("./types/dom").Topic) => void;
createWrapper: (this: MindElixirInstance, nodeObj: import("./types/index").NodeObj, omitChildren?: boolean) => {
grp: import("./types/dom").Wrapper;
top: import("./types/dom").Parent;
tpc: import("./types/dom").Topic;
};
createParent: (this: MindElixirInstance, nodeObj: import("./types/index").NodeObj) => {
p: import("./types/dom").Parent;
tpc: import("./types/dom").Topic;
};
createChildren: (this: MindElixirInstance, wrappers: import("./types/dom").Wrapper[]) => import("./types/dom").Children;
createTopic: (this: MindElixirInstance, nodeObj: import("./types/index").NodeObj) => import("./types/dom").Topic;
findEle: (id: string, instance?: MindElixirInstance) => import("./types/dom").Topic;
changeTheme: (this: MindElixirInstance, theme: import("./types/index").Theme, shouldRefresh?: boolean) => void;
};
export var LEFT: number;
export var RIGHT: number;
export var SIDE: number;
export var THEME: import("./types/index").Theme;
export var DARK_THEME: import("./types/index").Theme;
export var version: any;
export var E: (id: string, instance?: MindElixirInstance) => import("./types/dom").Topic;
var _a: (topic: string) => MindElixirData;
export var dragMoveHelper: {
moved: boolean;
mousedown: boolean;
onMove(e: MouseEvent, mind: MindElixirInstance): void;
clear(): void;
};
export { _a as new };
}
export interface MindElixirCtor {
new (options: Options): MindElixirInstance;
E: typeof findEle;
new: typeof MindElixir.new;
version: string;
LEFT: typeof LEFT;
RIGHT: typeof RIGHT;
SIDE: typeof SIDE;
THEME: typeof THEME;
DARK_THEME: typeof DARK_THEME;
prototype: MindElixirMethods;
dragMoveHelper: typeof dragMoveHelper;
}
declare const _default: MindElixirCtor;
export default _default;
export type * from './utils/pubsub';
export type * from './types/index';
export type * from './types/dom';