iflow-engine 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/hdr/001.hdr +0 -0
- package/dist/assets/svg/rotate-orbit.svg +1 -0
- package/dist/assets/viewcube/cn_back.png +0 -0
- package/dist/assets/viewcube/cn_bottom.png +0 -0
- package/dist/assets/viewcube/cn_front.png +0 -0
- package/dist/assets/viewcube/cn_left.png +0 -0
- package/dist/assets/viewcube/cn_right.png +0 -0
- package/dist/assets/viewcube/cn_top.png +0 -0
- package/dist/assets/viewcube/home.png +0 -0
- package/dist/draco/DRACOLoader.js +739 -0
- package/dist/draco/draco_decoder.js +52 -0
- package/dist/draco/draco_decoder.wasm +0 -0
- package/dist/draco/draco_encoder.js +33 -0
- package/dist/draco/draco_wasm_wrapper.js +104 -0
- package/dist/engine/src/bim-engine.d.ts +51 -0
- package/dist/engine/src/components/ai-chat/index.d.ts +202 -0
- package/dist/engine/src/components/ai-chat/types.d.ts +133 -0
- package/dist/engine/src/components/button-group/index.d.ts +89 -0
- package/dist/engine/src/components/button-group/index.type.d.ts +84 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/ai-chat/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/fullscreen/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/home/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/info/icon.d.ts +1 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/info/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/map/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/measure/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/property/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/section/section-axis/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/section/section-box/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/section/section-menu/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/section/section-plane/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/setting/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/walk/walk-bird/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/walk/walk-menu/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/walk/walk-person/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/buttons/zoom-box/index.d.ts +2 -0
- package/dist/engine/src/components/button-group/toolbar/index.d.ts +4 -0
- package/dist/engine/src/components/collapse/index.d.ts +21 -0
- package/dist/engine/src/components/collapse/types.d.ts +34 -0
- package/dist/engine/src/components/description/index.d.ts +25 -0
- package/dist/engine/src/components/description/types.d.ts +43 -0
- package/dist/engine/src/components/dialog/index.d.ts +87 -0
- package/dist/engine/src/components/dialog/index.type.d.ts +57 -0
- package/dist/engine/src/components/engine/index.d.ts +436 -0
- package/dist/engine/src/components/engine/types.d.ts +31 -0
- package/dist/engine/src/components/measure-panel/index.d.ts +185 -0
- package/dist/engine/src/components/measure-panel/types.d.ts +87 -0
- package/dist/engine/src/components/menu/buttons/four.d.ts +2 -0
- package/dist/engine/src/components/menu/buttons/home.d.ts +2 -0
- package/dist/engine/src/components/menu/buttons/info.d.ts +2 -0
- package/dist/engine/src/components/menu/buttons/second.d.ts +2 -0
- package/dist/engine/src/components/menu/index.d.ts +57 -0
- package/dist/engine/src/components/menu/item.d.ts +12 -0
- package/dist/engine/src/components/menu/types.d.ts +34 -0
- package/dist/engine/src/components/right-key/index.d.ts +55 -0
- package/dist/engine/src/components/right-key/types.d.ts +20 -0
- package/dist/engine/src/components/section-axis-panel/index.d.ts +88 -0
- package/dist/engine/src/components/section-axis-panel/types.d.ts +31 -0
- package/dist/engine/src/components/section-box-panel/index.d.ts +53 -0
- package/dist/engine/src/components/section-box-panel/types.d.ts +60 -0
- package/dist/engine/src/components/section-plane-panel/index.d.ts +48 -0
- package/dist/engine/src/components/section-plane-panel/types.d.ts +22 -0
- package/dist/engine/src/components/tab/index.d.ts +64 -0
- package/dist/engine/src/components/tab/index.type.d.ts +35 -0
- package/dist/engine/src/components/tree/index.d.ts +71 -0
- package/dist/engine/src/components/tree/tree-node.d.ts +60 -0
- package/dist/engine/src/components/tree/types.d.ts +74 -0
- package/dist/engine/src/components/walk-control-panel/index.d.ts +46 -0
- package/dist/engine/src/components/walk-control-panel/types.d.ts +64 -0
- package/dist/engine/src/components/walk-path-panel/index.d.ts +102 -0
- package/dist/engine/src/components/walk-path-panel/types.d.ts +22 -0
- package/dist/engine/src/components/walk-plan-view-panel/index.d.ts +16 -0
- package/dist/engine/src/core/base-dialog-manager.d.ts +57 -0
- package/dist/engine/src/core/base-manager.d.ts +31 -0
- package/dist/engine/src/core/event-emitter.d.ts +36 -0
- package/dist/engine/src/core/manager-registry.d.ts +89 -0
- package/dist/engine/src/index.d.ts +10 -0
- package/dist/engine/src/locales/en-US.d.ts +2 -0
- package/dist/engine/src/locales/types.d.ts +236 -0
- package/dist/engine/src/locales/zh-CN.d.ts +2 -0
- package/dist/engine/src/managers/ai-chat-manager.d.ts +86 -0
- package/dist/engine/src/managers/button-group-manager.d.ts +35 -0
- package/dist/engine/src/managers/component-detail-manager.d.ts +24 -0
- package/dist/engine/src/managers/construct-tree-manager-btn.d.ts +89 -0
- package/dist/engine/src/managers/dialog-manager.d.ts +12 -0
- package/dist/engine/src/managers/engine-info-dialog-manager.d.ts +12 -0
- package/dist/engine/src/managers/engine-manager.d.ts +242 -0
- package/dist/engine/src/managers/measure-dialog-manager.d.ts +24 -0
- package/dist/engine/src/managers/right-key-manager.d.ts +34 -0
- package/dist/engine/src/managers/section-axis-dialog-manager.d.ts +55 -0
- package/dist/engine/src/managers/section-box-dialog-manager.d.ts +58 -0
- package/dist/engine/src/managers/section-plane-dialog-manager.d.ts +35 -0
- package/dist/engine/src/managers/toolbar-manager.d.ts +81 -0
- package/dist/engine/src/managers/walk-control-manager.d.ts +21 -0
- package/dist/engine/src/managers/walk-path-dialog-manager.d.ts +33 -0
- package/dist/engine/src/managers/walk-plan-view-dialog-manager.d.ts +33 -0
- package/dist/engine/src/services/locale.d.ts +35 -0
- package/dist/engine/src/services/theme.d.ts +35 -0
- package/dist/engine/src/themes/presets.d.ts +15 -0
- package/dist/engine/src/themes/types.d.ts +261 -0
- package/dist/engine/src/types/component.d.ts +27 -0
- package/dist/engine/src/types/events.d.ts +104 -0
- package/dist/engine/src/types/measure.d.ts +57 -0
- package/dist/engine/src/utils/icon-manager.d.ts +10 -0
- package/dist/iflow-engine.es.js +16816 -11998
- package/dist/iflow-engine.es.js.map +1 -1
- package/dist/iflow-engine.umd.js +2264 -173
- package/dist/iflow-engine.umd.js.map +1 -1
- package/package.json +3 -3
- package/dist/index.d.ts +0 -1963
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ThemeConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Tailwind CSS 调色板参考(维护者参考)
|
|
4
|
+
*
|
|
5
|
+
* Slate: #f8fafc #f1f5f9 #e2e8f0 #cbd5e1 #94a3b8 #64748b #475569 #334155 #1e293b #0f172a
|
|
6
|
+
* Blue: #eff6ff #dbeafe #bfdbfe #93c5fd #60a5fa #3b82f6 #2563eb #1d4ed8 #1e40af #1e3a8a
|
|
7
|
+
* Green: #f0fdf4 #dcfce7 #bbf7d0 #86efac #4ade80 #22c55e #16a34a #15803d #166534 #14532d
|
|
8
|
+
* Amber: #fffbeb #fef3c7 #fde68a #fcd34d #fbbf24 #f59e0b #d97706 #b45309 #92400e #78350f
|
|
9
|
+
* Red: #fef2f2 #fee2e2 #fecaca #fca5a5 #f87171 #ef4444 #dc2626 #b91c1c #991b1b #7f1d1d
|
|
10
|
+
* Cyan: #ecfeff #cffafe #a5f3fc #67e8f9 #22d3ee #06b6d4 #0891b2 #0e7490 #155e75 #164e63
|
|
11
|
+
*/
|
|
12
|
+
export declare const lightTheme: ThemeConfig;
|
|
13
|
+
export declare const darkTheme: ThemeConfig;
|
|
14
|
+
export declare function createThemeFromPartial(base: ThemeConfig, partial: Partial<ThemeConfig>): ThemeConfig;
|
|
15
|
+
export declare function getThemeByName(name: string): ThemeConfig;
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BIM Engine SDK - Unified Theme System
|
|
3
|
+
*
|
|
4
|
+
* Design Principles:
|
|
5
|
+
* 1. Semantic naming - colors describe PURPOSE, not appearance
|
|
6
|
+
* 2. Hierarchical structure - organized by category for scalability
|
|
7
|
+
* 3. Complete coverage - all UI states and component needs
|
|
8
|
+
* 4. Accessibility - ensures proper contrast ratios
|
|
9
|
+
* 5. Glassmorphism support - includes transparency and blur values
|
|
10
|
+
*
|
|
11
|
+
* Color Palette Reference: Tailwind CSS (slate, blue, red, green, amber)
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Semantic Color Token
|
|
15
|
+
* Represents a single color value with optional transparency
|
|
16
|
+
*/
|
|
17
|
+
type ColorToken = string;
|
|
18
|
+
/**
|
|
19
|
+
* Shadow Token
|
|
20
|
+
* CSS box-shadow value
|
|
21
|
+
*/
|
|
22
|
+
type ShadowToken = string;
|
|
23
|
+
/**
|
|
24
|
+
* Blur Token
|
|
25
|
+
* CSS backdrop-filter blur value (e.g., '24px')
|
|
26
|
+
*/
|
|
27
|
+
type BlurToken = string;
|
|
28
|
+
/**
|
|
29
|
+
* Complete Theme Configuration Interface
|
|
30
|
+
*
|
|
31
|
+
* All colors use semantic naming to describe their purpose.
|
|
32
|
+
* Components should map these to their internal CSS variables.
|
|
33
|
+
*/
|
|
34
|
+
export interface ThemeConfig {
|
|
35
|
+
/** Theme identifier: 'dark' | 'light' | custom name */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Primary brand color - used for key actions, links, active states */
|
|
38
|
+
primary: ColorToken;
|
|
39
|
+
/** Primary color on hover */
|
|
40
|
+
primaryHover: ColorToken;
|
|
41
|
+
/** Primary color when pressed/active */
|
|
42
|
+
primaryActive: ColorToken;
|
|
43
|
+
/** Subtle primary for backgrounds (e.g., selected row) */
|
|
44
|
+
primarySubtle: ColorToken;
|
|
45
|
+
/** Success color - confirmations, completed states */
|
|
46
|
+
success: ColorToken;
|
|
47
|
+
/** Success color on hover */
|
|
48
|
+
successHover: ColorToken;
|
|
49
|
+
/** Subtle success for backgrounds */
|
|
50
|
+
successSubtle: ColorToken;
|
|
51
|
+
/** Warning color - caution, pending states */
|
|
52
|
+
warning: ColorToken;
|
|
53
|
+
/** Warning color on hover */
|
|
54
|
+
warningHover: ColorToken;
|
|
55
|
+
/** Subtle warning for backgrounds */
|
|
56
|
+
warningSubtle: ColorToken;
|
|
57
|
+
/** Danger/Error color - destructive actions, errors */
|
|
58
|
+
danger: ColorToken;
|
|
59
|
+
/** Danger color on hover */
|
|
60
|
+
dangerHover: ColorToken;
|
|
61
|
+
/** Subtle danger for backgrounds */
|
|
62
|
+
dangerSubtle: ColorToken;
|
|
63
|
+
/** Info color - informational states */
|
|
64
|
+
info: ColorToken;
|
|
65
|
+
/** Info color on hover */
|
|
66
|
+
infoHover: ColorToken;
|
|
67
|
+
/** Subtle info for backgrounds */
|
|
68
|
+
infoSubtle: ColorToken;
|
|
69
|
+
/** Base/canvas background - the deepest layer (app background) */
|
|
70
|
+
bgBase: ColorToken;
|
|
71
|
+
/** Elevated surface - panels, cards, dialogs floating above base */
|
|
72
|
+
bgElevated: ColorToken;
|
|
73
|
+
/** Overlay background - modals, dropdowns, popovers */
|
|
74
|
+
bgOverlay: ColorToken;
|
|
75
|
+
/** Inset/recessed background - inputs, wells, sunken areas */
|
|
76
|
+
bgInset: ColorToken;
|
|
77
|
+
/**
|
|
78
|
+
* Glassmorphism surface - semi-transparent with blur
|
|
79
|
+
* Used for floating toolbars, modern panels
|
|
80
|
+
*/
|
|
81
|
+
bgGlass: ColorToken;
|
|
82
|
+
/** Glassmorphism blur amount */
|
|
83
|
+
bgGlassBlur: BlurToken;
|
|
84
|
+
/** Primary text - headings, body text, high emphasis */
|
|
85
|
+
textPrimary: ColorToken;
|
|
86
|
+
/** Secondary text - descriptions, labels, medium emphasis */
|
|
87
|
+
textSecondary: ColorToken;
|
|
88
|
+
/** Tertiary text - placeholders, hints, low emphasis */
|
|
89
|
+
textTertiary: ColorToken;
|
|
90
|
+
/** Disabled text - inactive elements */
|
|
91
|
+
textDisabled: ColorToken;
|
|
92
|
+
/** Inverted text - text on primary/dark backgrounds */
|
|
93
|
+
textInverse: ColorToken;
|
|
94
|
+
/** Link text color */
|
|
95
|
+
textLink: ColorToken;
|
|
96
|
+
/** Link text on hover */
|
|
97
|
+
textLinkHover: ColorToken;
|
|
98
|
+
/** Default icon color */
|
|
99
|
+
iconDefault: ColorToken;
|
|
100
|
+
/** Icon on hover */
|
|
101
|
+
iconHover: ColorToken;
|
|
102
|
+
/** Active/selected icon */
|
|
103
|
+
iconActive: ColorToken;
|
|
104
|
+
/** Disabled icon */
|
|
105
|
+
iconDisabled: ColorToken;
|
|
106
|
+
/** Inverted icon (on colored backgrounds) */
|
|
107
|
+
iconInverse: ColorToken;
|
|
108
|
+
/** Default border - inputs, cards, containers */
|
|
109
|
+
borderDefault: ColorToken;
|
|
110
|
+
/** Subtle border - dividers, separators */
|
|
111
|
+
borderSubtle: ColorToken;
|
|
112
|
+
/** Strong border - focus rings, emphasis */
|
|
113
|
+
borderStrong: ColorToken;
|
|
114
|
+
/** Disabled border */
|
|
115
|
+
borderDisabled: ColorToken;
|
|
116
|
+
/** Divider color - horizontal/vertical separators */
|
|
117
|
+
divider: ColorToken;
|
|
118
|
+
/**
|
|
119
|
+
* Component Background States
|
|
120
|
+
* Used for buttons, list items, interactive elements
|
|
121
|
+
*/
|
|
122
|
+
/** Default component background (often transparent) */
|
|
123
|
+
componentBg: ColorToken;
|
|
124
|
+
/** Component background on hover */
|
|
125
|
+
componentBgHover: ColorToken;
|
|
126
|
+
/** Component background when pressed */
|
|
127
|
+
componentBgActive: ColorToken;
|
|
128
|
+
/** Component background when selected */
|
|
129
|
+
componentBgSelected: ColorToken;
|
|
130
|
+
/** Disabled component background */
|
|
131
|
+
componentBgDisabled: ColorToken;
|
|
132
|
+
/** Focus ring color */
|
|
133
|
+
focusRing: ColorToken;
|
|
134
|
+
/** Focus ring offset color (for contrast) */
|
|
135
|
+
focusRingOffset: ColorToken;
|
|
136
|
+
/** Selection background (text selection, highlighted items) */
|
|
137
|
+
selectionBg: ColorToken;
|
|
138
|
+
/** Selection text color */
|
|
139
|
+
selectionText: ColorToken;
|
|
140
|
+
/** Small shadow - subtle elevation (buttons, small cards) */
|
|
141
|
+
shadowSm: ShadowToken;
|
|
142
|
+
/** Medium shadow - moderate elevation (dropdowns, popovers) */
|
|
143
|
+
shadowMd: ShadowToken;
|
|
144
|
+
/** Large shadow - high elevation (modals, dialogs) */
|
|
145
|
+
shadowLg: ShadowToken;
|
|
146
|
+
/** Extra large shadow - maximum elevation */
|
|
147
|
+
shadowXl: ShadowToken;
|
|
148
|
+
/** Glow shadow for active/highlighted elements */
|
|
149
|
+
shadowGlow: ShadowToken;
|
|
150
|
+
/** Scrollbar track background */
|
|
151
|
+
scrollbarTrack: ColorToken;
|
|
152
|
+
/** Scrollbar thumb */
|
|
153
|
+
scrollbarThumb: ColorToken;
|
|
154
|
+
/** Scrollbar thumb on hover */
|
|
155
|
+
scrollbarThumbHover: ColorToken;
|
|
156
|
+
/** 浮动容器背景 (支持 rgba 实现毛玻璃效果) */
|
|
157
|
+
floatingBg: ColorToken;
|
|
158
|
+
/** 浮动容器边框 */
|
|
159
|
+
floatingBorder: ColorToken;
|
|
160
|
+
/** 浮动容器阴影 */
|
|
161
|
+
floatingShadow: ShadowToken;
|
|
162
|
+
/** 浮动按钮背景 */
|
|
163
|
+
floatingBtnBg: ColorToken;
|
|
164
|
+
/** 浮动按钮边框 */
|
|
165
|
+
floatingBtnBorder: ColorToken;
|
|
166
|
+
/** 浮动按钮阴影 */
|
|
167
|
+
floatingBtnShadow: ShadowToken;
|
|
168
|
+
/** 浮动按钮悬停背景 */
|
|
169
|
+
floatingBtnBgHover: ColorToken;
|
|
170
|
+
/** 浮动按钮悬停阴影 */
|
|
171
|
+
floatingBtnShadowHover: ShadowToken;
|
|
172
|
+
/** 浮动组件图标颜色 */
|
|
173
|
+
floatingIconColor: ColorToken;
|
|
174
|
+
/** 浮动组件图标悬停颜色 */
|
|
175
|
+
floatingIconColorHover: ColorToken;
|
|
176
|
+
/** 面板背景 (支持毛玻璃) */
|
|
177
|
+
panelBg: ColorToken;
|
|
178
|
+
/** 面板边框 */
|
|
179
|
+
panelBorder: ColorToken;
|
|
180
|
+
/** 面板 Header 背景 */
|
|
181
|
+
panelHeaderBg: ColorToken;
|
|
182
|
+
/** 面板圆角 */
|
|
183
|
+
panelRadius: string;
|
|
184
|
+
/** Tab 容器背景 */
|
|
185
|
+
tabBg: ColorToken;
|
|
186
|
+
/** Tab 项背景 */
|
|
187
|
+
tabItemBg: ColorToken;
|
|
188
|
+
/** Tab 项悬停背景 */
|
|
189
|
+
tabItemBgHover: ColorToken;
|
|
190
|
+
/** Tab 激活项背景 */
|
|
191
|
+
tabItemBgActive: ColorToken;
|
|
192
|
+
/** Tab 激活项文字颜色 */
|
|
193
|
+
tabItemTextActive: ColorToken;
|
|
194
|
+
/**
|
|
195
|
+
* Component-specific overrides
|
|
196
|
+
* Only define these when absolutely necessary
|
|
197
|
+
*/
|
|
198
|
+
overrides?: {
|
|
199
|
+
/** Dialog specific colors */
|
|
200
|
+
dialog?: {
|
|
201
|
+
headerBg?: ColorToken;
|
|
202
|
+
footerBg?: ColorToken;
|
|
203
|
+
};
|
|
204
|
+
/** Toolbar specific colors */
|
|
205
|
+
toolbar?: {
|
|
206
|
+
bg?: ColorToken;
|
|
207
|
+
buttonBg?: ColorToken;
|
|
208
|
+
buttonBgHover?: ColorToken;
|
|
209
|
+
buttonBgActive?: ColorToken;
|
|
210
|
+
};
|
|
211
|
+
/** Input specific colors */
|
|
212
|
+
input?: {
|
|
213
|
+
bg?: ColorToken;
|
|
214
|
+
bgFocus?: ColorToken;
|
|
215
|
+
placeholder?: ColorToken;
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Partial theme config for customization
|
|
221
|
+
* Allows users to override only specific tokens
|
|
222
|
+
*/
|
|
223
|
+
export type PartialThemeConfig = Partial<ThemeConfig> & {
|
|
224
|
+
name: string;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Theme type definition
|
|
228
|
+
*/
|
|
229
|
+
export type ThemeType = 'dark' | 'light' | 'custom';
|
|
230
|
+
/**
|
|
231
|
+
* CSS Variable Name Mapping
|
|
232
|
+
*
|
|
233
|
+
* All CSS variables follow the pattern: --bim-{category}-{property}
|
|
234
|
+
*
|
|
235
|
+
* Categories:
|
|
236
|
+
* - primary, success, warning, danger, info (semantic colors)
|
|
237
|
+
* - bg (backgrounds)
|
|
238
|
+
* - text (typography)
|
|
239
|
+
* - icon (iconography)
|
|
240
|
+
* - border (borders)
|
|
241
|
+
* - component (interactive states)
|
|
242
|
+
* - shadow (elevation)
|
|
243
|
+
* - focus (focus states)
|
|
244
|
+
* - scrollbar (scrollbar styling)
|
|
245
|
+
*/
|
|
246
|
+
export declare const CSS_VAR_MAP: Record<keyof Omit<ThemeConfig, 'name' | 'overrides'>, string>;
|
|
247
|
+
/**
|
|
248
|
+
* Maps old ThemeConfig properties to new ones
|
|
249
|
+
* Used for backward compatibility during migration
|
|
250
|
+
*/
|
|
251
|
+
export interface LegacyThemeMapping {
|
|
252
|
+
/** Old property name -> New property name */
|
|
253
|
+
background: 'bgBase';
|
|
254
|
+
panelBackground: 'bgElevated';
|
|
255
|
+
border: 'borderDefault';
|
|
256
|
+
icon: 'iconDefault';
|
|
257
|
+
componentBackground: 'componentBg';
|
|
258
|
+
componentHover: 'componentBgHover';
|
|
259
|
+
componentActive: 'componentBgActive';
|
|
260
|
+
}
|
|
261
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ThemeConfig } from '../themes/types';
|
|
2
|
+
/**
|
|
3
|
+
* BIM 引擎组件通用接口
|
|
4
|
+
* 所有受引擎管理的 UI 组件都必须实现此接口
|
|
5
|
+
*/
|
|
6
|
+
export interface IBimComponent {
|
|
7
|
+
/**
|
|
8
|
+
* 初始化组件
|
|
9
|
+
* 用于创建 DOM、绑定事件、加载资源等
|
|
10
|
+
* 支持同步或异步操作
|
|
11
|
+
*/
|
|
12
|
+
init(): void | Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* 设置主题
|
|
15
|
+
* 组件应在此方法中将 ThemeConfig 映射为自身的 CSS 变量或样式
|
|
16
|
+
*/
|
|
17
|
+
setTheme(theme: ThemeConfig): void;
|
|
18
|
+
/**
|
|
19
|
+
* 设置语言
|
|
20
|
+
*/
|
|
21
|
+
setLocales(): void;
|
|
22
|
+
/**
|
|
23
|
+
* 销毁组件
|
|
24
|
+
* 清理 DOM 事件监听、定时器和引用
|
|
25
|
+
*/
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
export interface EngineEvents {
|
|
2
|
+
'ui:open-dialog': {
|
|
3
|
+
id: string;
|
|
4
|
+
data?: any;
|
|
5
|
+
};
|
|
6
|
+
'ui:close-dialog': {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
'engine:model-loaded': {
|
|
10
|
+
url: string;
|
|
11
|
+
};
|
|
12
|
+
'engine:object-clicked': {
|
|
13
|
+
objectId: string;
|
|
14
|
+
position: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
z: number;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
'ui:tree-node-check': {
|
|
21
|
+
id: string;
|
|
22
|
+
checked: boolean;
|
|
23
|
+
node: any;
|
|
24
|
+
};
|
|
25
|
+
'ui:tree-node-select': {
|
|
26
|
+
id: string;
|
|
27
|
+
selected: boolean;
|
|
28
|
+
node: any;
|
|
29
|
+
};
|
|
30
|
+
'ui:tree-node-expand': {
|
|
31
|
+
id: string;
|
|
32
|
+
expanded: boolean;
|
|
33
|
+
};
|
|
34
|
+
'ui:collapse-change': {
|
|
35
|
+
activeIds: string[];
|
|
36
|
+
};
|
|
37
|
+
'sys:theme-changed': {
|
|
38
|
+
theme: string;
|
|
39
|
+
};
|
|
40
|
+
'sys:locale-changed': {
|
|
41
|
+
locale: string;
|
|
42
|
+
};
|
|
43
|
+
'walk:path-mode-toggle': {
|
|
44
|
+
isActive: boolean;
|
|
45
|
+
};
|
|
46
|
+
'walk:walk-mode-toggle': {
|
|
47
|
+
isActive: boolean;
|
|
48
|
+
};
|
|
49
|
+
'walk:plan-view-toggle': {
|
|
50
|
+
isActive: boolean;
|
|
51
|
+
};
|
|
52
|
+
'walk:speed-change': {
|
|
53
|
+
speed: number;
|
|
54
|
+
};
|
|
55
|
+
'walk:gravity-toggle': {
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
};
|
|
58
|
+
'walk:collision-toggle': {
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
};
|
|
61
|
+
'component:selected': {
|
|
62
|
+
url: string;
|
|
63
|
+
id: string;
|
|
64
|
+
};
|
|
65
|
+
'component:deselected': {};
|
|
66
|
+
'menu:show-all': {};
|
|
67
|
+
'section:move': {
|
|
68
|
+
x?: {
|
|
69
|
+
min: number;
|
|
70
|
+
max: number;
|
|
71
|
+
};
|
|
72
|
+
y?: {
|
|
73
|
+
min: number;
|
|
74
|
+
max: number;
|
|
75
|
+
};
|
|
76
|
+
z?: {
|
|
77
|
+
min: number;
|
|
78
|
+
max: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
'measure:changed': {
|
|
82
|
+
type: string;
|
|
83
|
+
value: number;
|
|
84
|
+
unit: string;
|
|
85
|
+
points?: {
|
|
86
|
+
x: number;
|
|
87
|
+
y: number;
|
|
88
|
+
z: number;
|
|
89
|
+
}[];
|
|
90
|
+
};
|
|
91
|
+
'aiChat:opened': {};
|
|
92
|
+
'aiChat:closed': {};
|
|
93
|
+
'aiChat:message-sent': {
|
|
94
|
+
message: string;
|
|
95
|
+
};
|
|
96
|
+
'aiChat:question-answered': {
|
|
97
|
+
questionId: string;
|
|
98
|
+
optionId: string;
|
|
99
|
+
customAnswer?: string;
|
|
100
|
+
};
|
|
101
|
+
'aiChat:new-chat': {};
|
|
102
|
+
'aiChat:history-opened': {};
|
|
103
|
+
'aiChat:settings-opened': {};
|
|
104
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare const MEASURE_TYPES: {
|
|
2
|
+
readonly distance: {
|
|
3
|
+
readonly key: "distance";
|
|
4
|
+
readonly callBackType: "distance";
|
|
5
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><g transform=\"translate(0 4.197)\"><path fill=\"currentColor\" d=\"M29.692,3.03,27.55.919a.529.529,0,0,1-.014-.756A.549.549,0,0,1,28.3.15l.014.013,3.067,3.023a.529.529,0,0,1,0,.756L28.317,6.966a.549.549,0,0,1-.767.013.529.529,0,0,1-.014-.756l.014-.013L29.692,4.1H2.31L4.452,6.21a.528.528,0,0,1,.013.756.547.547,0,0,1-.766.013l-.014-.013L.616,3.942a.531.531,0,0,1,0-.756L3.685.163a.548.548,0,0,1,.767.014.528.528,0,0,1,0,.742L2.31,3.03ZM24.136,15.055H23.051V18H21.966v-2.94H20.882V18H19.8v-2.94H18.712V18H17.627v-2.94H16.543v5.078H15.458V15.055H14.373V18H13.288v-2.94H12.2V18H11.119v-2.94H10.034V18H8.949v-2.94H7.865V18H6.78v-2.94H5.7v5.078H4.61V15.055H1.9a.27.27,0,0,0-.272.268v6.413A.269.269,0,0,0,1.9,22H30.1a.268.268,0,0,0,.271-.267V15.323a.269.269,0,0,0-.271-.268H27.39v5.078H26.305V15.055H25.221V18H24.136Zm5.966-1.6A1.884,1.884,0,0,1,32,15.323v6.413a1.885,1.885,0,0,1-1.9,1.871H1.9A1.885,1.885,0,0,1,0,21.736V15.323a1.885,1.885,0,0,1,1.9-1.871Z\"/></g></svg>";
|
|
6
|
+
readonly order: 0;
|
|
7
|
+
};
|
|
8
|
+
readonly clearHeight: {
|
|
9
|
+
readonly key: "clearHeight";
|
|
10
|
+
readonly callBackType: "clear-height";
|
|
11
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><text x=\"16\" y=\"20\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"12\" font-family=\"system-ui, sans-serif\">净高</text></svg>";
|
|
12
|
+
readonly order: 1;
|
|
13
|
+
};
|
|
14
|
+
readonly clearDistance: {
|
|
15
|
+
readonly key: "clearDistance";
|
|
16
|
+
readonly callBackType: "clear-distance";
|
|
17
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><text x=\"16\" y=\"20\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"12\" font-family=\"system-ui, sans-serif\">净距</text></svg>";
|
|
18
|
+
readonly order: 2;
|
|
19
|
+
};
|
|
20
|
+
readonly elevation: {
|
|
21
|
+
readonly key: "elevation";
|
|
22
|
+
readonly callBackType: "elevation";
|
|
23
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M84.131,193.119a1.056,1.056,0,0,1,1.116.982v7.857a1.056,1.056,0,0,1-1.116.982H54.367a1.056,1.056,0,0,1-1.116-.982V194.1a1.056,1.056,0,0,1,1.116-.982Zm-1.116,1.964H55.483v5.893H83.015Zm1.116-13.749a1.064,1.064,0,0,1,1.114.935,1.032,1.032,0,0,1-1.007,1.025l-.107,0H71.2l-7.858,6.914a1.227,1.227,0,0,1-1.578,0l-8.185-7.2-.018-.016-.032-.031.049.047a1.107,1.107,0,0,1-.092-.092l-.011-.014a.869.869,0,0,1-.182-.857l0-.008L53.31,182l.012-.029.02-.045.019-.035a1.1,1.1,0,0,1,.891-.552h.007q.053,0,.107,0ZM68.043,183.3H57.06l5.492,4.831Z\" transform=\"translate(-53.247 -176.136)\"/></svg>";
|
|
24
|
+
readonly order: 3;
|
|
25
|
+
};
|
|
26
|
+
readonly point: {
|
|
27
|
+
readonly key: "point";
|
|
28
|
+
readonly callBackType: "point";
|
|
29
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><text x=\"16\" y=\"20\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"12\" font-family=\"system-ui, sans-serif\">坐标</text></svg>";
|
|
30
|
+
readonly order: 4;
|
|
31
|
+
};
|
|
32
|
+
readonly angle: {
|
|
33
|
+
readonly key: "angle";
|
|
34
|
+
readonly callBackType: "angle";
|
|
35
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M39.587,50.766h13.7a1,1,0,0,1,0,2H23.171a1,1,0,0,1,0-2h1.418l6.582-7.006v-.006a.517.517,0,0,1,.14-.357.456.456,0,0,1,.337-.144l12.1-12.876a.451.451,0,0,1,.665,0,.524.524,0,0,1,0,.708L32.883,43.355a8.3,8.3,0,0,1,6.7,7.411Zm-.949,0a7.254,7.254,0,0,0-6.611-6.5l-6.108,6.5Z\" transform=\"translate(-22.229 -26.489)\"/></svg>";
|
|
36
|
+
readonly order: 5;
|
|
37
|
+
};
|
|
38
|
+
readonly area: {
|
|
39
|
+
readonly key: "area";
|
|
40
|
+
readonly callBackType: "area";
|
|
41
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><text x=\"16\" y=\"20\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"12\" font-family=\"system-ui, sans-serif\">面积</text></svg>";
|
|
42
|
+
readonly order: 6;
|
|
43
|
+
};
|
|
44
|
+
readonly slope: {
|
|
45
|
+
readonly key: "slope";
|
|
46
|
+
readonly callBackType: "slope";
|
|
47
|
+
readonly icon: "<svg viewBox=\"0 0 32 32\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M202.1,188.337l2.629-2.191-8.447-3.106,1.533,8.871,2.629-2.194,9.341,11.209,1.656-1.379Zm-13.726-.435a1.075,1.075,0,0,0-1.07-.341,1.057,1.057,0,0,0-.5.277l-5.11,4.08a1.08,1.08,0,0,0-.406.84l-.007,17.386a1.079,1.079,0,0,0,1.077,1.077L205.7,211.2a1.078,1.078,0,0,0,.822-1.774Zm-4.934,21.164.007-15.788,3.968-3.171,15.974,18.941Z\" transform=\"translate(-180.36 -181.131)\"/></svg>";
|
|
48
|
+
readonly order: 7;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export type MeasureMode = keyof typeof MEASURE_TYPES;
|
|
52
|
+
export type CallBackType = typeof MEASURE_TYPES[MeasureMode]['callBackType'];
|
|
53
|
+
export type MeasureTypeConfig = typeof MEASURE_TYPES[MeasureMode];
|
|
54
|
+
export type MeasureValueType = 'length' | 'area' | 'angle' | 'percent' | 'point';
|
|
55
|
+
export declare const MEASURE_MODES_ORDERED: MeasureMode[];
|
|
56
|
+
export declare function getValueType(key: MeasureMode): MeasureValueType;
|
|
57
|
+
export declare function getModeBycallBackType(callBackType: CallBackType): MeasureMode | undefined;
|