fix(types): add missing TypeScript declarations for v0.1.5-v0.1.7 APIs
- MarkdownEditorOptions: add lineNumbers, outline, autoBrackets - PluginObject: add version, depends, priority - EditorEventName: add themeChange, localeChange - MarkdownEditor: add unuse, registerShortcut, configureToolbar, toast, setLocale, getLocale, t - pluginUtils: add topologicalSort, validateConfig - i18nUtils: add full API surface (loadRemote, formatNumber, etc.) - Top-level exports: topologicalSort, validateConfig, createInstanceI18n, loadRemote, exportCSSVars, etc. - MeEditorAPI: add all missing properties
This commit is contained in:
Vendored
+89
-3
@@ -48,6 +48,12 @@ export interface MarkdownEditorOptions {
|
|||||||
readOnly?: boolean;
|
readOnly?: boolean;
|
||||||
/** 历史栈防抖延迟(ms),默认 400 */
|
/** 历史栈防抖延迟(ms),默认 400 */
|
||||||
historyDebounce?: number;
|
historyDebounce?: number;
|
||||||
|
/** 显示行号,默认 true(v0.1.7) */
|
||||||
|
lineNumbers?: boolean;
|
||||||
|
/** 显示大纲面板,默认 false(v0.1.7) */
|
||||||
|
outline?: boolean;
|
||||||
|
/** 自动括号闭合,默认 true(v0.1.7) */
|
||||||
|
autoBrackets?: boolean;
|
||||||
/** 主题,默认 'auto' */
|
/** 主题,默认 'auto' */
|
||||||
theme?: ThemeName;
|
theme?: ThemeName;
|
||||||
/** 国际化语言,默认 'zh-CN' */
|
/** 国际化语言,默认 'zh-CN' */
|
||||||
@@ -82,9 +88,12 @@ export interface MarkdownEditorOptions {
|
|||||||
/** 插件对象 */
|
/** 插件对象 */
|
||||||
export interface PluginObject {
|
export interface PluginObject {
|
||||||
name: string;
|
name: string;
|
||||||
|
version?: string;
|
||||||
description?: string;
|
description?: string;
|
||||||
|
depends?: string[];
|
||||||
|
priority?: number;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
install?: (editor: MarkdownEditor) => void;
|
install?: (editor: MarkdownEditor) => void | Promise<void>;
|
||||||
destroy?: (editor: MarkdownEditor) => void;
|
destroy?: (editor: MarkdownEditor) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,7 +134,8 @@ export interface EditorStatus {
|
|||||||
export type EditorEventName =
|
export type EditorEventName =
|
||||||
| 'input' | 'change' | 'focus' | 'blur' | 'save'
|
| 'input' | 'change' | 'focus' | 'blur' | 'save'
|
||||||
| 'modeChange' | 'fullscreen' | 'autosave' | 'destroy'
|
| 'modeChange' | 'fullscreen' | 'autosave' | 'destroy'
|
||||||
| 'beforeRender' | 'afterRender';
|
| 'beforeRender' | 'afterRender'
|
||||||
|
| 'themeChange' | 'localeChange';
|
||||||
|
|
||||||
/** 全局钩子名 */
|
/** 全局钩子名 */
|
||||||
export type HookName =
|
export type HookName =
|
||||||
@@ -218,9 +228,31 @@ export class MarkdownEditor {
|
|||||||
|
|
||||||
// 插件
|
// 插件
|
||||||
use(plugin: string | PluginObject, options?: object): this;
|
use(plugin: string | PluginObject, options?: object): this;
|
||||||
|
/** 卸载插件(v0.1.6) */
|
||||||
|
unuse(name: string): this;
|
||||||
getPlugins(): PluginObject[];
|
getPlugins(): PluginObject[];
|
||||||
addToolbarButton(config: ToolbarButtonConfig): this;
|
addToolbarButton(config: ToolbarButtonConfig): this;
|
||||||
|
|
||||||
|
// 快捷键(v0.1.6)
|
||||||
|
registerShortcut(combo: string, handler: Function | string, description?: string): this;
|
||||||
|
unregisterShortcut(combo: string): this;
|
||||||
|
getShortcuts(): Array<{ combo: string; handler: Function | string; description: string }>;
|
||||||
|
|
||||||
|
// 工具栏(v0.1.6)
|
||||||
|
configureToolbar(tools: ToolbarItem[]): this;
|
||||||
|
removeToolbarButton(action: string): this;
|
||||||
|
|
||||||
|
// 右键菜单(v0.1.6)
|
||||||
|
registerContextMenu(items: Array<{ label: string; action?: string; shortcut?: string; type?: string }>): this;
|
||||||
|
|
||||||
|
// Toast 通知(v0.1.6)
|
||||||
|
toast(message: string, opts?: { type?: 'success' | 'error' | 'warning' | 'info'; duration?: number; animation?: string }): this;
|
||||||
|
|
||||||
|
// 实例级 i18n(v0.1.6)
|
||||||
|
setLocale(locale: string): this;
|
||||||
|
getLocale(): string;
|
||||||
|
t(key: string, params?: object): string;
|
||||||
|
|
||||||
// 生命周期
|
// 生命周期
|
||||||
destroy(): void;
|
destroy(): void;
|
||||||
isDestroyed(): boolean;
|
isDestroyed(): boolean;
|
||||||
@@ -265,6 +297,30 @@ export function slugify(text: string): string;
|
|||||||
/** 清除渲染缓存(主题切换等场景) */
|
/** 清除渲染缓存(主题切换等场景) */
|
||||||
export function clearRenderCache(): void;
|
export function clearRenderCache(): void;
|
||||||
|
|
||||||
|
// ============ 插件工具(v0.1.6)============
|
||||||
|
/** 插件拓扑排序 */
|
||||||
|
export function topologicalSort(plugins: PluginObject[]): PluginObject[];
|
||||||
|
/** 插件配置校验 */
|
||||||
|
export function validateConfig(schema: object, config: object): { valid: boolean; errors: string[]; patched: object };
|
||||||
|
|
||||||
|
// ============ i18n 工具(v0.1.6)============
|
||||||
|
/** 创建实例级 i18n 上下文 */
|
||||||
|
export function createInstanceI18n(editor: object): object;
|
||||||
|
/** 远程加载翻译包 */
|
||||||
|
export function loadRemote(url: string, locale: string): Promise<boolean>;
|
||||||
|
|
||||||
|
// ============ 主题工具(v0.1.5)============
|
||||||
|
/** 导出 CSS 变量 */
|
||||||
|
export function exportCSSVars(el?: HTMLElement): Record<string, string>;
|
||||||
|
/** 获取单个 CSS 变量 */
|
||||||
|
export function getCSSVariable(name: string, el?: HTMLElement): string;
|
||||||
|
/** 外部主题跟随 */
|
||||||
|
export function followExternalTheme(opts: object, onChange: (theme: string) => void): () => void;
|
||||||
|
/** 从父容器继承主题 */
|
||||||
|
export function adoptFromParent(container: HTMLElement, onDetected: (theme: string) => void): () => void;
|
||||||
|
/** 创建实例级主题上下文 */
|
||||||
|
export function createInstanceTheme(editor: object): object;
|
||||||
|
|
||||||
// ============ 插件 ============
|
// ============ 插件 ============
|
||||||
/** 预设插件表 */
|
/** 预设插件表 */
|
||||||
export const presetPlugins: {
|
export const presetPlugins: {
|
||||||
@@ -290,6 +346,8 @@ export const pluginUtils: {
|
|||||||
getAllPresets(): { [key: string]: PluginObject };
|
getAllPresets(): { [key: string]: PluginObject };
|
||||||
createPlugin(config: object): PluginObject;
|
createPlugin(config: object): PluginObject;
|
||||||
validatePlugin(plugin: PluginObject): { valid: boolean; errors: string[] };
|
validatePlugin(plugin: PluginObject): { valid: boolean; errors: string[] };
|
||||||
|
topologicalSort(plugins: PluginObject[]): PluginObject[];
|
||||||
|
validateConfig(schema: object, config: object): { valid: boolean; errors: string[]; patched: object };
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 插件管理器 */
|
/** 插件管理器 */
|
||||||
@@ -348,10 +406,28 @@ export const i18nUtils: {
|
|||||||
t(key: string, params?: object): string;
|
t(key: string, params?: object): string;
|
||||||
getCurrentLocale(): string;
|
getCurrentLocale(): string;
|
||||||
setCurrentLocale(locale: string): void;
|
setCurrentLocale(locale: string): void;
|
||||||
loadLocale(locale: string, messages: object): void;
|
switchLocale(locale: string): void;
|
||||||
|
getFallbackLocale(): string;
|
||||||
|
setFallbackLocale(locale: string): void;
|
||||||
|
hasTranslation(key: string): boolean;
|
||||||
|
getTranslations(locale: string): object;
|
||||||
|
addTranslations(locale: string, translations: object): void;
|
||||||
|
loadRemote(url: string, locale: string): Promise<boolean>;
|
||||||
|
getSupportedLocales(): string[];
|
||||||
|
isLocaleSupported(locale: string): boolean;
|
||||||
|
getLocaleName(locale: string): string;
|
||||||
|
getLocaleDirection(locale: string): 'ltr' | 'rtl';
|
||||||
|
formatNumber(n: number, opts?: object): string;
|
||||||
|
formatCurrency(amount: number, currency?: string, opts?: object): string;
|
||||||
|
formatDate(date: Date | string, opts?: object): string;
|
||||||
addLocaleListener(fn: (locale: string) => void): () => void;
|
addLocaleListener(fn: (locale: string) => void): () => void;
|
||||||
removeLocaleListener(fn: (locale: string) => void): void;
|
removeLocaleListener(fn: (locale: string) => void): void;
|
||||||
clearLocaleListeners(): void;
|
clearLocaleListeners(): void;
|
||||||
|
initI18n(): void;
|
||||||
|
saveLocale(locale: string): void;
|
||||||
|
loadLocale(): string;
|
||||||
|
getDefaultLocale(): string;
|
||||||
|
createInstanceI18n(editor: object): object;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -377,6 +453,16 @@ export interface MeEditorAPI {
|
|||||||
parseMarkdown: typeof parseMarkdown;
|
parseMarkdown: typeof parseMarkdown;
|
||||||
safeUrl: typeof safeUrl;
|
safeUrl: typeof safeUrl;
|
||||||
slugify: typeof slugify;
|
slugify: typeof slugify;
|
||||||
|
clearRenderCache: typeof clearRenderCache;
|
||||||
|
topologicalSort: typeof topologicalSort;
|
||||||
|
validateConfig: typeof validateConfig;
|
||||||
|
createInstanceI18n: typeof createInstanceI18n;
|
||||||
|
loadRemote: typeof loadRemote;
|
||||||
|
exportCSSVars: typeof exportCSSVars;
|
||||||
|
getCSSVariable: typeof getCSSVariable;
|
||||||
|
followExternalTheme: typeof followExternalTheme;
|
||||||
|
adoptFromParent: typeof adoptFromParent;
|
||||||
|
createInstanceTheme: typeof createInstanceTheme;
|
||||||
themes: typeof themeUtils;
|
themes: typeof themeUtils;
|
||||||
i18n: typeof i18nUtils;
|
i18n: typeof i18nUtils;
|
||||||
animations: typeof animationUtils;
|
animations: typeof animationUtils;
|
||||||
|
|||||||
Reference in New Issue
Block a user