添加测试信息

This commit is contained in:
yuding
2025-12-08 10:02:24 +08:00
parent 244891ceec
commit c112c87dad
21 changed files with 3355 additions and 2192 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

99
dist/index.d.ts vendored
View File

@@ -12,8 +12,11 @@ export declare class BimButtonGroup implements IBimComponent {
private customColors;
private unsubscribeLocale;
private unsubscribeTheme;
protected engine: BimEngine | null;
private readonly DEFAULT_ICON;
constructor(options: ButtonGroupOptions);
setEngine(engine: BimEngine): void;
protected emit<K extends keyof EngineEvents>(event: K, payload: EngineEvents[K]): void;
private initContainer;
private updatePosition;
/**
@@ -55,6 +58,21 @@ export declare class BimButtonGroup implements IBimComponent {
destroy(): void;
}
declare abstract class BimComponent {
protected engine: BimEngine;
constructor(engine: BimEngine);
/**
* Helper to send events easily
*/
protected emit<K extends keyof EngineEvents>(event: K, payload: EngineEvents[K]): void;
/**
* Helper to listen to events easily
* Returns an unsubscribe function
*/
protected on<K extends keyof EngineEvents>(event: K, listener: (payload: EngineEvents[K]) => void): () => void;
abstract destroy(): void;
}
/**
* 通用弹窗组件类
* 支持拖拽、缩放、自定义内容和位置。
@@ -120,7 +138,7 @@ declare class BimDialog implements IBimComponent {
destroy(): void;
}
export declare class BimEngine {
export declare class BimEngine extends EventEmitter {
private container;
private wrapper;
private topLeftGroup;
@@ -134,6 +152,8 @@ export declare class BimEngine {
locale?: LocaleType;
theme?: ThemeType;
});
emit<K extends keyof EngineEvents>(event: K, payload: EngineEvents[K]): void;
on<K extends keyof EngineEvents>(event: K, listener: (payload: EngineEvents[K]) => void): () => void;
setLocale(locale: LocaleType): void;
getLocale(): LocaleType;
setTheme(theme: 'dark' | 'light'): void;
@@ -189,19 +209,16 @@ declare interface ButtonGroupColors {
}
/**
* 通用按钮组管理器
* 负责创建和管理除底部工具栏以外的其他按钮组。
* 通用按钮组管理器 (ButtonGroupManager)
* 负责创建和管理通用的按钮组实例
*/
declare class ButtonGroupManager {
private activeGroups;
declare class ButtonGroupManager extends BimComponent {
private groups;
private container;
constructor(container: HTMLElement);
/**
* 创建一个新的按钮组
*/
create(options: Omit<ButtonGroupOptions, 'container'>): BimButtonGroup;
constructor(engine: BimEngine, container: HTMLElement);
create(id: string, options: Omit<ButtonGroupOptions, 'container'>): BimButtonGroup;
get(id: string): BimButtonGroup | undefined;
updateTheme(theme: ThemeConfig): void;
refresh(): void;
destroy(): void;
}
@@ -232,11 +249,11 @@ export declare function createEngine(r) {
const e = r.version || "v1";
switch (e) {
case "v2":
return new Uc(r);
return new Nc(r);
case "v1":
return new L_(r);
return new I_(r);
:
return console.warn(`Version '${e}' not found. Falling back to v2.`), new Uc(r);
return console.warn(`Version '${e}' not found. Falling back to v2.`), new Nc(r);
}
}
@@ -260,16 +277,17 @@ declare interface DialogColors {
* 弹窗管理器
* 负责创建和管理应用中的各类弹窗。
*/
declare class DialogManager {
declare class DialogManager extends BimComponent {
/** 弹窗挂载的父容器 */
private container;
/** 活跃的弹窗实例列表 */
private activeDialogs;
/**
* 构造函数
* @param engine 引擎实例
* @param container 弹窗挂载的目标容器
*/
constructor(container: HTMLElement);
constructor(engine: BimEngine, container: HTMLElement);
/**
* 创建一个通用弹窗
* @param options 弹窗配置选项(不需要传 container自动使用管理器绑定的容器
@@ -286,6 +304,7 @@ declare class DialogManager {
* @param theme 全局主题配置
*/
updateTheme(theme: ThemeConfig): void;
destroy(): void;
}
/**
@@ -330,21 +349,49 @@ declare type DialogPosition = 'center' | 'top-left' | 'top-center' | 'top-right'
y: number;
};
declare interface EngineEvents {
'ui:open-dialog': {
id: string;
data?: any;
};
'ui:close-dialog': {
id: string;
};
'engine:model-loaded': {
url: string;
};
'engine:object-clicked': {
objectId: string;
position: {
x: number;
y: number;
z: number;
};
};
'sys:theme-changed': {
theme: string;
};
'sys:locale-changed': {
locale: string;
};
}
/**
* 3D 引擎管理器
* 负责连接 Engine 组件和 BimEngine向外部暴露简化的 API
* 采用延迟初始化模式,用户需主动调用 initialize() 方法
*/
declare class EngineManager {
declare class EngineManager extends BimComponent {
/** 3D 引擎挂载的父容器 */
private container;
/** 3D 引擎组件实例 */
private engine;
private engineInstance;
/**
* 构造函数
* @param engine 引擎实例
* @param container 3D 引擎挂载的目标容器
*/
constructor(container: HTMLElement);
constructor(engine: BimEngine, container: HTMLElement);
/**
* 初始化 3D 引擎
* @param options 引擎配置选项(可选,如果不提供则使用默认配置)
@@ -389,6 +436,14 @@ export declare interface EngineOptions {
showViewCube?: boolean;
}
declare class EventEmitter {
private events;
on(event: string, listener: Listener): () => void;
off(event: string, listener: Listener): void;
emit(event: string, payload?: any): void;
clear(): void;
}
/** 二级菜单展开方向 */
declare type ExpandDirection = 'up' | 'down' | 'left' | 'right';
@@ -428,6 +483,8 @@ declare interface IBimComponent {
destroy(): void;
}
declare type Listener<T = any> = (payload: T) => void;
declare type LocaleChangeListener = (locale: LocaleType) => void;
/**
@@ -568,11 +625,11 @@ export declare class Toolbar extends BimButtonGroup {
* 底部工具栏管理器 (ToolbarManager)
* 仅负责管理底部工具栏实例。
*/
declare class ToolbarManager {
declare class ToolbarManager extends BimComponent {
private toolbar;
private toolbarContainer;
private container;
constructor(container: HTMLElement);
constructor(engine: BimEngine, container: HTMLElement);
private init;
updateTheme(theme: ThemeConfig): void;
refresh(): void;