ice-render 1.0.3 → 1.0.5
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/LICENSE +0 -0
- package/README.md +229 -139
- package/dist/THIRD-PARTY-NOTICES.txt +32 -0
- package/dist/index.cjs +30 -0
- package/dist/index.mjs +30 -0
- package/dist/index.umd.js +6 -1
- package/dist/types/FrameManager.d.mts +26 -0
- package/dist/types/FrameManager.d.ts +26 -24
- package/dist/types/ICE.d.mts +369 -0
- package/dist/types/ICE.d.ts +369 -109
- package/dist/types/a11y/accessibility.d.mts +46 -0
- package/dist/types/a11y/accessibility.d.ts +46 -0
- package/dist/types/animation/AnimationManager.d.mts +96 -0
- package/dist/types/animation/AnimationManager.d.ts +96 -25
- package/dist/types/animation/Easing.d.mts +33 -0
- package/dist/types/animation/Easing.d.ts +33 -32
- package/dist/types/consts/BIG_ZINDEX_NUMBER.d.mts +14 -0
- package/dist/types/consts/BIG_ZINDEX_NUMBER.d.ts +14 -14
- package/dist/types/consts/COMPONENT_TYPE_MAPPING.d.mts +45 -0
- package/dist/types/consts/COMPONENT_TYPE_MAPPING.d.ts +45 -36
- package/dist/types/consts/DOM_EVENT_MAPPING_CONSTS.d.mts +37 -0
- package/dist/types/consts/DOM_EVENT_MAPPING_CONSTS.d.ts +37 -19
- package/dist/types/consts/ICE_EVENT_NAME_CONSTS.d.mts +27 -0
- package/dist/types/consts/ICE_EVENT_NAME_CONSTS.d.ts +27 -20
- package/dist/types/control-panel/AlignmentGuideManager.d.mts +92 -0
- package/dist/types/control-panel/AlignmentGuideManager.d.ts +92 -0
- package/dist/types/control-panel/ICEControlPanel.d.mts +37 -0
- package/dist/types/control-panel/ICEControlPanel.d.ts +37 -37
- package/dist/types/control-panel/ICEControlPanelManager.d.mts +25 -0
- package/dist/types/control-panel/ICEControlPanelManager.d.ts +25 -23
- package/dist/types/control-panel/link-controls/LineControlPanel.d.mts +39 -0
- package/dist/types/control-panel/link-controls/LineControlPanel.d.ts +39 -39
- package/dist/types/control-panel/transform-controls/ResizeControl.d.mts +38 -0
- package/dist/types/control-panel/transform-controls/ResizeControl.d.ts +38 -34
- package/dist/types/control-panel/transform-controls/RotateControl.d.mts +12 -0
- package/dist/types/control-panel/transform-controls/RotateControl.d.ts +12 -16
- package/dist/types/control-panel/transform-controls/TransformControlPanel.d.mts +83 -0
- package/dist/types/control-panel/transform-controls/TransformControlPanel.d.ts +83 -74
- package/dist/types/control-panel/transform-controls/constraints.d.mts +24 -0
- package/dist/types/control-panel/transform-controls/constraints.d.ts +24 -0
- package/dist/types/cross-platform/PolyfillPath2D.d.mts +31 -0
- package/dist/types/cross-platform/PolyfillPath2D.d.ts +31 -0
- package/dist/types/cross-platform/root.d.mts +7 -0
- package/dist/types/cross-platform/root.d.ts +7 -2
- package/dist/types/event/DOMEventDispatcher.d.mts +68 -0
- package/dist/types/event/DOMEventDispatcher.d.ts +68 -29
- package/dist/types/event/DOMEventInterceptor.d.mts +36 -0
- package/dist/types/event/DOMEventInterceptor.d.ts +36 -7
- package/dist/types/event/EventBus.d.mts +27 -0
- package/dist/types/event/EventBus.d.ts +27 -27
- package/dist/types/event/ICEEvent.d.mts +46 -0
- package/dist/types/event/ICEEvent.d.ts +46 -46
- package/dist/types/event/ICEEventTarget.d.mts +106 -0
- package/dist/types/event/ICEEventTarget.d.ts +106 -106
- package/dist/types/event/input-normalize.d.mts +75 -0
- package/dist/types/event/input-normalize.d.ts +75 -0
- package/dist/types/geometry/GeoLine.d.mts +24 -0
- package/dist/types/geometry/GeoLine.d.ts +24 -23
- package/dist/types/geometry/GeoPoint.d.mts +53 -0
- package/dist/types/geometry/GeoPoint.d.ts +53 -66
- package/dist/types/geometry/GeoUtil.d.mts +73 -0
- package/dist/types/geometry/GeoUtil.d.ts +73 -37
- package/dist/types/geometry/ICEBoundingBox.d.mts +81 -0
- package/dist/types/geometry/ICEBoundingBox.d.ts +81 -81
- package/dist/types/graphic/ICEComponent.d.mts +436 -0
- package/dist/types/graphic/ICEComponent.d.ts +436 -264
- package/dist/types/graphic/ICEDotPath.d.mts +99 -0
- package/dist/types/graphic/ICEDotPath.d.ts +99 -63
- package/dist/types/graphic/ICEImage.d.mts +17 -0
- package/dist/types/graphic/ICEImage.d.ts +17 -17
- package/dist/types/graphic/ICEPath.d.mts +39 -0
- package/dist/types/graphic/ICEPath.d.ts +39 -39
- package/dist/types/graphic/container/ICEGroup.d.mts +101 -0
- package/dist/types/graphic/container/ICEGroup.d.ts +101 -54
- package/dist/types/graphic/link/ICEBezier.d.mts +23 -0
- package/dist/types/graphic/link/ICEBezier.d.ts +23 -15
- package/dist/types/graphic/link/ICELinkHook.d.mts +52 -0
- package/dist/types/graphic/link/ICELinkHook.d.ts +52 -52
- package/dist/types/graphic/link/ICELinkSlot.d.mts +54 -0
- package/dist/types/graphic/link/ICELinkSlot.d.ts +54 -46
- package/dist/types/graphic/link/ICELinkSlotManager.d.mts +28 -0
- package/dist/types/graphic/link/ICELinkSlotManager.d.ts +28 -28
- package/dist/types/graphic/link/ICEPolyLine.d.mts +292 -0
- package/dist/types/graphic/link/ICEPolyLine.d.ts +292 -219
- package/dist/types/graphic/link/ICEVisioLink.d.mts +163 -0
- package/dist/types/graphic/link/ICEVisioLink.d.ts +163 -129
- package/dist/types/graphic/shape/ICECircle.d.mts +19 -0
- package/dist/types/graphic/shape/ICECircle.d.ts +19 -19
- package/dist/types/graphic/shape/ICEEllipse.d.mts +29 -0
- package/dist/types/graphic/shape/ICEEllipse.d.ts +29 -26
- package/dist/types/graphic/shape/ICEIsogon.d.mts +52 -0
- package/dist/types/graphic/shape/ICEIsogon.d.ts +52 -54
- package/dist/types/graphic/shape/ICERect.d.mts +10 -0
- package/dist/types/graphic/shape/ICERect.d.ts +10 -17
- package/dist/types/graphic/shape/ICERose.d.mts +41 -0
- package/dist/types/graphic/shape/ICERose.d.ts +41 -41
- package/dist/types/graphic/shape/ICEStar.d.mts +45 -0
- package/dist/types/graphic/shape/ICEStar.d.ts +45 -48
- package/dist/types/graphic/text/ICEText.d.mts +137 -0
- package/dist/types/graphic/text/ICEText.d.ts +137 -64
- package/dist/types/index.d.mts +55 -0
- package/dist/types/index.d.ts +55 -41
- package/dist/types/layout/ICEBorderLayout.d.mts +34 -0
- package/dist/types/layout/ICEBorderLayout.d.ts +34 -0
- package/dist/types/layout/ICEBoxLayout.d.mts +30 -0
- package/dist/types/layout/ICEBoxLayout.d.ts +30 -0
- package/dist/types/layout/ICECardLayout.d.mts +36 -0
- package/dist/types/layout/ICECardLayout.d.ts +36 -0
- package/dist/types/layout/ICEFlowLayout.d.mts +31 -0
- package/dist/types/layout/ICEFlowLayout.d.ts +31 -0
- package/dist/types/layout/ICEGridLayout.d.mts +33 -0
- package/dist/types/layout/ICEGridLayout.d.ts +33 -0
- package/dist/types/layout/ICELayeredLayout.d.mts +49 -0
- package/dist/types/layout/ICELayeredLayout.d.ts +49 -0
- package/dist/types/layout/ICELayoutManager.d.mts +33 -0
- package/dist/types/layout/ICELayoutManager.d.ts +33 -0
- package/dist/types/layout/ICEOverlayLayout.d.mts +25 -0
- package/dist/types/layout/ICEOverlayLayout.d.ts +25 -0
- package/dist/types/persistence/Deserializer.d.mts +43 -0
- package/dist/types/persistence/Deserializer.d.ts +43 -14
- package/dist/types/persistence/Serializer.d.mts +35 -0
- package/dist/types/persistence/Serializer.d.ts +35 -26
- package/dist/types/plugin/PluginHost.d.mts +86 -0
- package/dist/types/plugin/PluginHost.d.ts +86 -0
- package/dist/types/renderer/CanvasRenderer.d.mts +150 -0
- package/dist/types/renderer/CanvasRenderer.d.ts +150 -24
- package/dist/types/renderer/ObjectCache.d.mts +79 -0
- package/dist/types/renderer/ObjectCache.d.ts +79 -0
- package/dist/types/renderer/dirty-rect-util.d.mts +86 -0
- package/dist/types/renderer/dirty-rect-util.d.ts +86 -0
- package/dist/types/theme/ICETheme.d.mts +382 -0
- package/dist/types/theme/ICETheme.d.ts +382 -0
- package/dist/types/util/ImageCache.d.mts +19 -0
- package/dist/types/util/ImageCache.d.ts +19 -17
- package/dist/types/util/data-util.d.mts +43 -0
- package/dist/types/util/data-util.d.ts +43 -19
- package/dist/types/util/gl-matrix-skew.d.mts +14 -0
- package/dist/types/util/gl-matrix-skew.d.ts +14 -14
- package/dist/types/util/lang.d.mts +28 -0
- package/dist/types/util/lang.d.ts +28 -0
- package/dist/types/util/uuid.d.mts +1 -0
- package/dist/types/util/uuid.d.ts +1 -1
- package/package.json +119 -81
- package/dist/index.cjs.js +0 -25
- package/dist/index.js +0 -25
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 大漠穷秋.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 主题机制:三层 design token + 命名主题 + 优先级链。
|
|
10
|
+
*
|
|
11
|
+
* 分层(对齐设计 token 标准):
|
|
12
|
+
* ① base(基础)—— 原始值:色 ramp / spacing / radius / fontSize / fontFamily / fontWeight。
|
|
13
|
+
* ② semantic(语义)—— 用途:primary / danger / text / border / palette / motion,引用 base。
|
|
14
|
+
* ③ component(组件)—— STYLE_PRESETS 预设,引用 semantic + base。
|
|
15
|
+
*
|
|
16
|
+
* 优先级链(对齐 ECharts):用户 props > 组件 preset > 语义 theme > 基础 default。
|
|
17
|
+
*
|
|
18
|
+
* 命名主题:registerTheme(name, theme) 注册,setTheme('dark') 按名切换;内置 default + dark。
|
|
19
|
+
*
|
|
20
|
+
* @author 大漠穷秋<damoqiongqiu@126.com>
|
|
21
|
+
*/
|
|
22
|
+
export declare const baseTokens: {
|
|
23
|
+
color: {
|
|
24
|
+
blue: {
|
|
25
|
+
50: string;
|
|
26
|
+
100: string;
|
|
27
|
+
200: string;
|
|
28
|
+
300: string;
|
|
29
|
+
400: string;
|
|
30
|
+
500: string;
|
|
31
|
+
600: string;
|
|
32
|
+
700: string;
|
|
33
|
+
800: string;
|
|
34
|
+
900: string;
|
|
35
|
+
};
|
|
36
|
+
emerald: {
|
|
37
|
+
50: string;
|
|
38
|
+
100: string;
|
|
39
|
+
200: string;
|
|
40
|
+
300: string;
|
|
41
|
+
400: string;
|
|
42
|
+
500: string;
|
|
43
|
+
600: string;
|
|
44
|
+
700: string;
|
|
45
|
+
800: string;
|
|
46
|
+
900: string;
|
|
47
|
+
};
|
|
48
|
+
amber: {
|
|
49
|
+
50: string;
|
|
50
|
+
100: string;
|
|
51
|
+
200: string;
|
|
52
|
+
300: string;
|
|
53
|
+
400: string;
|
|
54
|
+
500: string;
|
|
55
|
+
600: string;
|
|
56
|
+
700: string;
|
|
57
|
+
800: string;
|
|
58
|
+
900: string;
|
|
59
|
+
};
|
|
60
|
+
red: {
|
|
61
|
+
50: string;
|
|
62
|
+
100: string;
|
|
63
|
+
200: string;
|
|
64
|
+
300: string;
|
|
65
|
+
400: string;
|
|
66
|
+
500: string;
|
|
67
|
+
600: string;
|
|
68
|
+
700: string;
|
|
69
|
+
800: string;
|
|
70
|
+
900: string;
|
|
71
|
+
};
|
|
72
|
+
gray: {
|
|
73
|
+
50: string;
|
|
74
|
+
100: string;
|
|
75
|
+
200: string;
|
|
76
|
+
300: string;
|
|
77
|
+
400: string;
|
|
78
|
+
500: string;
|
|
79
|
+
600: string;
|
|
80
|
+
700: string;
|
|
81
|
+
800: string;
|
|
82
|
+
900: string;
|
|
83
|
+
};
|
|
84
|
+
violet: {
|
|
85
|
+
50: string;
|
|
86
|
+
100: string;
|
|
87
|
+
200: string;
|
|
88
|
+
300: string;
|
|
89
|
+
400: string;
|
|
90
|
+
500: string;
|
|
91
|
+
600: string;
|
|
92
|
+
700: string;
|
|
93
|
+
800: string;
|
|
94
|
+
900: string;
|
|
95
|
+
};
|
|
96
|
+
teal: {
|
|
97
|
+
50: string;
|
|
98
|
+
100: string;
|
|
99
|
+
200: string;
|
|
100
|
+
300: string;
|
|
101
|
+
400: string;
|
|
102
|
+
500: string;
|
|
103
|
+
600: string;
|
|
104
|
+
700: string;
|
|
105
|
+
800: string;
|
|
106
|
+
900: string;
|
|
107
|
+
};
|
|
108
|
+
pink: {
|
|
109
|
+
50: string;
|
|
110
|
+
100: string;
|
|
111
|
+
200: string;
|
|
112
|
+
300: string;
|
|
113
|
+
400: string;
|
|
114
|
+
500: string;
|
|
115
|
+
600: string;
|
|
116
|
+
700: string;
|
|
117
|
+
800: string;
|
|
118
|
+
900: string;
|
|
119
|
+
};
|
|
120
|
+
indigo: {
|
|
121
|
+
50: string;
|
|
122
|
+
100: string;
|
|
123
|
+
200: string;
|
|
124
|
+
300: string;
|
|
125
|
+
400: string;
|
|
126
|
+
500: string;
|
|
127
|
+
600: string;
|
|
128
|
+
700: string;
|
|
129
|
+
800: string;
|
|
130
|
+
900: string;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
spacing: {
|
|
134
|
+
1: number;
|
|
135
|
+
2: number;
|
|
136
|
+
3: number;
|
|
137
|
+
4: number;
|
|
138
|
+
6: number;
|
|
139
|
+
8: number;
|
|
140
|
+
12: number;
|
|
141
|
+
16: number;
|
|
142
|
+
};
|
|
143
|
+
radius: {
|
|
144
|
+
sm: number;
|
|
145
|
+
md: number;
|
|
146
|
+
lg: number;
|
|
147
|
+
xl: number;
|
|
148
|
+
full: number;
|
|
149
|
+
};
|
|
150
|
+
fontSize: {
|
|
151
|
+
sm: number;
|
|
152
|
+
md: number;
|
|
153
|
+
lg: number;
|
|
154
|
+
xl: number;
|
|
155
|
+
'2xl': number;
|
|
156
|
+
'3xl': number;
|
|
157
|
+
'4xl': number;
|
|
158
|
+
};
|
|
159
|
+
fontFamily: {
|
|
160
|
+
base: string;
|
|
161
|
+
};
|
|
162
|
+
fontWeight: {
|
|
163
|
+
normal: number;
|
|
164
|
+
bold: number;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export interface ICESemanticTheme {
|
|
168
|
+
primary: string;
|
|
169
|
+
success: string;
|
|
170
|
+
warning: string;
|
|
171
|
+
danger: string;
|
|
172
|
+
info: string;
|
|
173
|
+
text: string;
|
|
174
|
+
muted: string;
|
|
175
|
+
hint: string;
|
|
176
|
+
border: string;
|
|
177
|
+
background: string;
|
|
178
|
+
palette: string[];
|
|
179
|
+
motion: {
|
|
180
|
+
duration: {
|
|
181
|
+
fast: number;
|
|
182
|
+
normal: number;
|
|
183
|
+
slow: number;
|
|
184
|
+
slower: number;
|
|
185
|
+
};
|
|
186
|
+
easing: {
|
|
187
|
+
linear: string;
|
|
188
|
+
out: string;
|
|
189
|
+
inOut: string;
|
|
190
|
+
outQuart: string;
|
|
191
|
+
spring: string;
|
|
192
|
+
springSoft: string;
|
|
193
|
+
springSnappy: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
export interface ICETheme {
|
|
198
|
+
base: typeof baseTokens;
|
|
199
|
+
semantic: ICESemanticTheme;
|
|
200
|
+
}
|
|
201
|
+
export declare const DEFAULT_THEME: ICETheme;
|
|
202
|
+
export declare const DARK_THEME: ICETheme;
|
|
203
|
+
/**
|
|
204
|
+
* 注册命名主题(运行时注入,如多品牌 / 多租户)。
|
|
205
|
+
*/
|
|
206
|
+
export declare function registerTheme(name: string, theme: ICETheme): void;
|
|
207
|
+
/**
|
|
208
|
+
* 解析主题但**不修改任何全局状态**:
|
|
209
|
+
* - string:按名查注册表(如 'dark');未注册时回退 DEFAULT_THEME。
|
|
210
|
+
* - object:浅合并到 `base` 的 semantic(兼容旧用法 `setTheme({ primary: ... })`)。
|
|
211
|
+
*
|
|
212
|
+
* 这是「实例级主题」的基础:`ICE` 用它把自己持有的主题解析出来,
|
|
213
|
+
* 不污染模块级当前主题(模块级只作为**默认值**)。
|
|
214
|
+
*/
|
|
215
|
+
export declare function resolveTheme(nameOrTheme: string | Partial<ICESemanticTheme>, base?: ICETheme): ICETheme;
|
|
216
|
+
/**
|
|
217
|
+
* 切换**模块级默认主题**(全局单例)。
|
|
218
|
+
*
|
|
219
|
+
* 注意:这是「本进程默认值」,会影响此后新建的 `ICE` 实例以及未显式设置主题的实例。
|
|
220
|
+
* 需要多实例/多品牌各自独立时,请用 `ice.setTheme()`(实例级,互不影响)。
|
|
221
|
+
*/
|
|
222
|
+
export declare function setTheme(nameOrTheme: string | Partial<ICESemanticTheme>): ICETheme;
|
|
223
|
+
export declare function getTheme(): ICETheme;
|
|
224
|
+
export declare const STYLE_PRESETS: {
|
|
225
|
+
[name: string]: (theme: ICETheme) => any;
|
|
226
|
+
};
|
|
227
|
+
declare const _default: {
|
|
228
|
+
baseTokens: {
|
|
229
|
+
color: {
|
|
230
|
+
blue: {
|
|
231
|
+
50: string;
|
|
232
|
+
100: string;
|
|
233
|
+
200: string;
|
|
234
|
+
300: string;
|
|
235
|
+
400: string;
|
|
236
|
+
500: string;
|
|
237
|
+
600: string;
|
|
238
|
+
700: string;
|
|
239
|
+
800: string;
|
|
240
|
+
900: string;
|
|
241
|
+
};
|
|
242
|
+
emerald: {
|
|
243
|
+
50: string;
|
|
244
|
+
100: string;
|
|
245
|
+
200: string;
|
|
246
|
+
300: string;
|
|
247
|
+
400: string;
|
|
248
|
+
500: string;
|
|
249
|
+
600: string;
|
|
250
|
+
700: string;
|
|
251
|
+
800: string;
|
|
252
|
+
900: string;
|
|
253
|
+
};
|
|
254
|
+
amber: {
|
|
255
|
+
50: string;
|
|
256
|
+
100: string;
|
|
257
|
+
200: string;
|
|
258
|
+
300: string;
|
|
259
|
+
400: string;
|
|
260
|
+
500: string;
|
|
261
|
+
600: string;
|
|
262
|
+
700: string;
|
|
263
|
+
800: string;
|
|
264
|
+
900: string;
|
|
265
|
+
};
|
|
266
|
+
red: {
|
|
267
|
+
50: string;
|
|
268
|
+
100: string;
|
|
269
|
+
200: string;
|
|
270
|
+
300: string;
|
|
271
|
+
400: string;
|
|
272
|
+
500: string;
|
|
273
|
+
600: string;
|
|
274
|
+
700: string;
|
|
275
|
+
800: string;
|
|
276
|
+
900: string;
|
|
277
|
+
};
|
|
278
|
+
gray: {
|
|
279
|
+
50: string;
|
|
280
|
+
100: string;
|
|
281
|
+
200: string;
|
|
282
|
+
300: string;
|
|
283
|
+
400: string;
|
|
284
|
+
500: string;
|
|
285
|
+
600: string;
|
|
286
|
+
700: string;
|
|
287
|
+
800: string;
|
|
288
|
+
900: string;
|
|
289
|
+
};
|
|
290
|
+
violet: {
|
|
291
|
+
50: string;
|
|
292
|
+
100: string;
|
|
293
|
+
200: string;
|
|
294
|
+
300: string;
|
|
295
|
+
400: string;
|
|
296
|
+
500: string;
|
|
297
|
+
600: string;
|
|
298
|
+
700: string;
|
|
299
|
+
800: string;
|
|
300
|
+
900: string;
|
|
301
|
+
};
|
|
302
|
+
teal: {
|
|
303
|
+
50: string;
|
|
304
|
+
100: string;
|
|
305
|
+
200: string;
|
|
306
|
+
300: string;
|
|
307
|
+
400: string;
|
|
308
|
+
500: string;
|
|
309
|
+
600: string;
|
|
310
|
+
700: string;
|
|
311
|
+
800: string;
|
|
312
|
+
900: string;
|
|
313
|
+
};
|
|
314
|
+
pink: {
|
|
315
|
+
50: string;
|
|
316
|
+
100: string;
|
|
317
|
+
200: string;
|
|
318
|
+
300: string;
|
|
319
|
+
400: string;
|
|
320
|
+
500: string;
|
|
321
|
+
600: string;
|
|
322
|
+
700: string;
|
|
323
|
+
800: string;
|
|
324
|
+
900: string;
|
|
325
|
+
};
|
|
326
|
+
indigo: {
|
|
327
|
+
50: string;
|
|
328
|
+
100: string;
|
|
329
|
+
200: string;
|
|
330
|
+
300: string;
|
|
331
|
+
400: string;
|
|
332
|
+
500: string;
|
|
333
|
+
600: string;
|
|
334
|
+
700: string;
|
|
335
|
+
800: string;
|
|
336
|
+
900: string;
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
spacing: {
|
|
340
|
+
1: number;
|
|
341
|
+
2: number;
|
|
342
|
+
3: number;
|
|
343
|
+
4: number;
|
|
344
|
+
6: number;
|
|
345
|
+
8: number;
|
|
346
|
+
12: number;
|
|
347
|
+
16: number;
|
|
348
|
+
};
|
|
349
|
+
radius: {
|
|
350
|
+
sm: number;
|
|
351
|
+
md: number;
|
|
352
|
+
lg: number;
|
|
353
|
+
xl: number;
|
|
354
|
+
full: number;
|
|
355
|
+
};
|
|
356
|
+
fontSize: {
|
|
357
|
+
sm: number;
|
|
358
|
+
md: number;
|
|
359
|
+
lg: number;
|
|
360
|
+
xl: number;
|
|
361
|
+
'2xl': number;
|
|
362
|
+
'3xl': number;
|
|
363
|
+
'4xl': number;
|
|
364
|
+
};
|
|
365
|
+
fontFamily: {
|
|
366
|
+
base: string;
|
|
367
|
+
};
|
|
368
|
+
fontWeight: {
|
|
369
|
+
normal: number;
|
|
370
|
+
bold: number;
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
DEFAULT_THEME: ICETheme;
|
|
374
|
+
DARK_THEME: ICETheme;
|
|
375
|
+
registerTheme: typeof registerTheme;
|
|
376
|
+
setTheme: typeof setTheme;
|
|
377
|
+
getTheme: typeof getTheme;
|
|
378
|
+
STYLE_PRESETS: {
|
|
379
|
+
[name: string]: (theme: ICETheme) => any;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
export default _default;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import ICE from '../ICE.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* @class ImageCache 图片缓存器
|
|
4
|
+
*
|
|
5
|
+
* 以图片的 url 作为 key,图片对象作为 value,缓存图片。
|
|
6
|
+
*
|
|
7
|
+
* @author 大漠穷秋<damoqiongqiu@126.com>
|
|
8
|
+
*/
|
|
9
|
+
export default class ImageCache {
|
|
10
|
+
private ice;
|
|
11
|
+
static readonly CACHE_SIZE = 100;
|
|
12
|
+
imageCache: Map<any, any>;
|
|
13
|
+
constructor(ice: ICE);
|
|
14
|
+
setImage(url: string): {
|
|
15
|
+
loaded: boolean;
|
|
16
|
+
image: any;
|
|
17
|
+
};
|
|
18
|
+
private loaded;
|
|
19
|
+
}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import ICE from '../ICE';
|
|
2
|
-
/**
|
|
3
|
-
* @class ImageCache
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
1
|
+
import ICE from '../ICE';
|
|
2
|
+
/**
|
|
3
|
+
* @class ImageCache 图片缓存器
|
|
4
|
+
*
|
|
5
|
+
* 以图片的 url 作为 key,图片对象作为 value,缓存图片。
|
|
6
|
+
*
|
|
7
|
+
* @author 大漠穷秋<damoqiongqiu@126.com>
|
|
8
|
+
*/
|
|
9
|
+
export default class ImageCache {
|
|
10
|
+
private ice;
|
|
11
|
+
static readonly CACHE_SIZE = 100;
|
|
12
|
+
imageCache: Map<any, any>;
|
|
13
|
+
constructor(ice: ICE);
|
|
14
|
+
setImage(url: string): {
|
|
15
|
+
loaded: boolean;
|
|
16
|
+
image: any;
|
|
17
|
+
};
|
|
18
|
+
private loaded;
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 按照指定的路径获取 Object 上的值
|
|
3
|
+
*/
|
|
4
|
+
export declare function getVal(object: any, path: string): any;
|
|
5
|
+
/** 使所有组件的可见性缓存失效。display 变化与树结构变化时必须调用。 */
|
|
6
|
+
export declare function bumpVisibilityEpoch(): void;
|
|
7
|
+
/** 当前可见性代际号(供 `ICEComponent` 做惰性缓存比对)。 */
|
|
8
|
+
export declare function getVisibilityEpoch(): number;
|
|
9
|
+
/**
|
|
10
|
+
* 组件是否「最终可见」:自身与**所有祖先**的 `display` 都为真。
|
|
11
|
+
*
|
|
12
|
+
* `state.display = false` 的语义是整棵子树都不渲染(见 `ICEComponent` 的 props 文档),
|
|
13
|
+
* 但渲染队列是把树拉平后逐个入队的,只看组件自身会让「隐藏父容器」失效。
|
|
14
|
+
*
|
|
15
|
+
* 优先走组件上的 `isEffectivelyVisible()`(含父链遍历,顶层走 O(1) 快路径);
|
|
16
|
+
* 传入的是外部轻量对象(无该方法)时退化为只看自身,与 `DOMEventDispatcher`
|
|
17
|
+
* 既有的鸭子类型契约(只需 `state` / `containsPoint`)保持一致。
|
|
18
|
+
*/
|
|
19
|
+
export declare function isEffectivelyVisible(component: any): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 拉平「组件层 + 工具层」,得到全部组件的平铺数组(z 序未排)。
|
|
22
|
+
*
|
|
23
|
+
* 命中检测、无障碍快照、主题热切换、按 id 找组件都需要这一份全集,集中在这里避免各处重复
|
|
24
|
+
* `flattenTree(childNodes).concat(flattenTree(toolNodes))`。
|
|
25
|
+
*
|
|
26
|
+
* 注意:**不**复用渲染器的 `componentQueue` 缓存 —— 它在「刚改结构、本帧尚未渲染」时是旧的
|
|
27
|
+
* (首帧之前更是空的),而命中必须立刻反映最新结构。一次 flatten 远比点错目标便宜。
|
|
28
|
+
*/
|
|
29
|
+
export declare function flattenAllComponents(ice: any, result?: any[]): any[];
|
|
30
|
+
/**
|
|
31
|
+
* 命中扫描:在**世界坐标** (wx, wy) 上找出最上层的可交互组件;无命中返回 null。
|
|
32
|
+
*
|
|
33
|
+
* 这是画布点击(`DOMEventDispatcher`)与应用层主动命中(`ICE.hitTest`)**唯一**的实现 ——
|
|
34
|
+
* 以前有两份几乎相同的代码各自演化,容易出现「点得到但 hitTest 找不到」这类不一致。
|
|
35
|
+
*
|
|
36
|
+
* 语义:
|
|
37
|
+
* - 按 zIndex 升序扫描、后者覆盖前者 → 命中 z 序最高的组件;
|
|
38
|
+
* - 跳过 `isControlPanel`(控制面板本体是覆盖层,不作为命中目标);
|
|
39
|
+
* - 跳过 `interactive:false` 与「最终不可见」(祖先 display:false)的组件;
|
|
40
|
+
* - 复用渲染快照的世界盒做 O(1) 预筛(含 paint pad 与容差);无快照时不预筛,正确性优先。
|
|
41
|
+
*/
|
|
42
|
+
export declare function hitTestComponents(ice: any, wx: number, wy: number, tolerance: number): any;
|
|
43
|
+
export declare function flattenTree(result?: any[], childNodes?: any[], level?: number, pid?: any): any[];
|
|
@@ -1,19 +1,43 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 按照指定的路径获取 Object 上的值
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export function
|
|
1
|
+
/**
|
|
2
|
+
* 按照指定的路径获取 Object 上的值
|
|
3
|
+
*/
|
|
4
|
+
export declare function getVal(object: any, path: string): any;
|
|
5
|
+
/** 使所有组件的可见性缓存失效。display 变化与树结构变化时必须调用。 */
|
|
6
|
+
export declare function bumpVisibilityEpoch(): void;
|
|
7
|
+
/** 当前可见性代际号(供 `ICEComponent` 做惰性缓存比对)。 */
|
|
8
|
+
export declare function getVisibilityEpoch(): number;
|
|
9
|
+
/**
|
|
10
|
+
* 组件是否「最终可见」:自身与**所有祖先**的 `display` 都为真。
|
|
11
|
+
*
|
|
12
|
+
* `state.display = false` 的语义是整棵子树都不渲染(见 `ICEComponent` 的 props 文档),
|
|
13
|
+
* 但渲染队列是把树拉平后逐个入队的,只看组件自身会让「隐藏父容器」失效。
|
|
14
|
+
*
|
|
15
|
+
* 优先走组件上的 `isEffectivelyVisible()`(含父链遍历,顶层走 O(1) 快路径);
|
|
16
|
+
* 传入的是外部轻量对象(无该方法)时退化为只看自身,与 `DOMEventDispatcher`
|
|
17
|
+
* 既有的鸭子类型契约(只需 `state` / `containsPoint`)保持一致。
|
|
18
|
+
*/
|
|
19
|
+
export declare function isEffectivelyVisible(component: any): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 拉平「组件层 + 工具层」,得到全部组件的平铺数组(z 序未排)。
|
|
22
|
+
*
|
|
23
|
+
* 命中检测、无障碍快照、主题热切换、按 id 找组件都需要这一份全集,集中在这里避免各处重复
|
|
24
|
+
* `flattenTree(childNodes).concat(flattenTree(toolNodes))`。
|
|
25
|
+
*
|
|
26
|
+
* 注意:**不**复用渲染器的 `componentQueue` 缓存 —— 它在「刚改结构、本帧尚未渲染」时是旧的
|
|
27
|
+
* (首帧之前更是空的),而命中必须立刻反映最新结构。一次 flatten 远比点错目标便宜。
|
|
28
|
+
*/
|
|
29
|
+
export declare function flattenAllComponents(ice: any, result?: any[]): any[];
|
|
30
|
+
/**
|
|
31
|
+
* 命中扫描:在**世界坐标** (wx, wy) 上找出最上层的可交互组件;无命中返回 null。
|
|
32
|
+
*
|
|
33
|
+
* 这是画布点击(`DOMEventDispatcher`)与应用层主动命中(`ICE.hitTest`)**唯一**的实现 ——
|
|
34
|
+
* 以前有两份几乎相同的代码各自演化,容易出现「点得到但 hitTest 找不到」这类不一致。
|
|
35
|
+
*
|
|
36
|
+
* 语义:
|
|
37
|
+
* - 按 zIndex 升序扫描、后者覆盖前者 → 命中 z 序最高的组件;
|
|
38
|
+
* - 跳过 `isControlPanel`(控制面板本体是覆盖层,不作为命中目标);
|
|
39
|
+
* - 跳过 `interactive:false` 与「最终不可见」(祖先 display:false)的组件;
|
|
40
|
+
* - 复用渲染快照的世界盒做 O(1) 预筛(含 paint pad 与容差);无快照时不预筛,正确性优先。
|
|
41
|
+
*/
|
|
42
|
+
export declare function hitTestComponents(ice: any, wx: number, wy: number, tolerance: number): any;
|
|
43
|
+
export declare function flattenTree(result?: any[], childNodes?: any[], level?: number, pid?: any): any[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* !gl-matrix 的当前版本中没有提供 skew 函数,需要手动合 https://github.com/toji/gl-matrix/pull/293
|
|
3
|
+
* @see https://github.com/talltyler/gl-matrix/commit/7c408d649073f6240f4694041ceb2af5f5284658
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Skew (shear) a mat2d by the given angle
|
|
7
|
+
*
|
|
8
|
+
* @param {mat2d} out the receiving matrix
|
|
9
|
+
* @param {mat2d} a the matrix to skew
|
|
10
|
+
* @param {Number} radX the angle to skew the matrix by (X axis)
|
|
11
|
+
* @param {Number} radY the angle to skew the matrix by (Y axis)
|
|
12
|
+
* @returns {mat2d} out
|
|
13
|
+
*/
|
|
14
|
+
export declare function skew(out: any, a: any, radX: number, radY: number): any;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* !gl-matrix 的当前版本中没有提供 skew 函数,需要手动合 https://github.com/toji/gl-matrix/pull/293
|
|
3
|
-
* @see https://github.com/talltyler/gl-matrix/commit/7c408d649073f6240f4694041ceb2af5f5284658
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Skew (shear) a mat2d by the given angle
|
|
7
|
-
*
|
|
8
|
-
* @param {mat2d} out the receiving matrix
|
|
9
|
-
* @param {mat2d} a the matrix to skew
|
|
10
|
-
* @param {Number}
|
|
11
|
-
* @param {Number}
|
|
12
|
-
* @returns {mat2d} out
|
|
13
|
-
*/
|
|
14
|
-
export function skew(out:
|
|
1
|
+
/**
|
|
2
|
+
* !gl-matrix 的当前版本中没有提供 skew 函数,需要手动合 https://github.com/toji/gl-matrix/pull/293
|
|
3
|
+
* @see https://github.com/talltyler/gl-matrix/commit/7c408d649073f6240f4694041ceb2af5f5284658
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Skew (shear) a mat2d by the given angle
|
|
7
|
+
*
|
|
8
|
+
* @param {mat2d} out the receiving matrix
|
|
9
|
+
* @param {mat2d} a the matrix to skew
|
|
10
|
+
* @param {Number} radX the angle to skew the matrix by (X axis)
|
|
11
|
+
* @param {Number} radY the angle to skew the matrix by (Y axis)
|
|
12
|
+
* @returns {mat2d} out
|
|
13
|
+
*/
|
|
14
|
+
export declare function skew(out: any, a: any, radX: number, radY: number): any;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 轻量工具集:替代 lodash 的 7 个函数(isNil/isString/isUndefined/isEmpty/round/merge/cloneDeep)。
|
|
3
|
+
*
|
|
4
|
+
* 引擎的 props/state 是纯 JSON 可序列化数据(plain object + array + 原始类型),
|
|
5
|
+
* 因此这里的 cloneDeep/merge 只需针对 plain-object/array 递归,语义与 lodash 对齐:
|
|
6
|
+
* - merge 递归合并嵌套对象、数组/原始类型直接覆盖、跳过 undefined 源值、原地修改 target。
|
|
7
|
+
* - cloneDeep 深拷贝 plain object/array。
|
|
8
|
+
*/
|
|
9
|
+
export declare function isNil(value: any): boolean;
|
|
10
|
+
export declare function isString(value: any): value is string;
|
|
11
|
+
export declare function isUndefined(value: any): value is undefined;
|
|
12
|
+
export declare function isEmpty(value: any): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* 四舍五入到指定小数位(与 lodash round 同款实现,用科学计数法规避浮点精度问题)。
|
|
15
|
+
*/
|
|
16
|
+
export declare function round(value: number, precision?: number): number;
|
|
17
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
18
|
+
/**
|
|
19
|
+
* 深合并(对齐 lodash merge):递归合并嵌套对象;数组/原始类型/null 直接覆盖;
|
|
20
|
+
* 跳过 undefined 源值;原地修改 target。支持多源:merge(target, ...sources)。
|
|
21
|
+
* 返回类型为 target 与所有 source 的交集(与 lodash 一致)。
|
|
22
|
+
*/
|
|
23
|
+
export declare function merge<T, S extends any[]>(target: T, ...sources: S): T & UnionToIntersection<S[number]>;
|
|
24
|
+
/**
|
|
25
|
+
* 深拷贝 plain object/array(对齐 lodash cloneDeep 对纯 JSON 数据的行为)。
|
|
26
|
+
*/
|
|
27
|
+
export declare function cloneDeep<T>(value: T): T;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 轻量工具集:替代 lodash 的 7 个函数(isNil/isString/isUndefined/isEmpty/round/merge/cloneDeep)。
|
|
3
|
+
*
|
|
4
|
+
* 引擎的 props/state 是纯 JSON 可序列化数据(plain object + array + 原始类型),
|
|
5
|
+
* 因此这里的 cloneDeep/merge 只需针对 plain-object/array 递归,语义与 lodash 对齐:
|
|
6
|
+
* - merge 递归合并嵌套对象、数组/原始类型直接覆盖、跳过 undefined 源值、原地修改 target。
|
|
7
|
+
* - cloneDeep 深拷贝 plain object/array。
|
|
8
|
+
*/
|
|
9
|
+
export declare function isNil(value: any): boolean;
|
|
10
|
+
export declare function isString(value: any): value is string;
|
|
11
|
+
export declare function isUndefined(value: any): value is undefined;
|
|
12
|
+
export declare function isEmpty(value: any): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* 四舍五入到指定小数位(与 lodash round 同款实现,用科学计数法规避浮点精度问题)。
|
|
15
|
+
*/
|
|
16
|
+
export declare function round(value: number, precision?: number): number;
|
|
17
|
+
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
18
|
+
/**
|
|
19
|
+
* 深合并(对齐 lodash merge):递归合并嵌套对象;数组/原始类型/null 直接覆盖;
|
|
20
|
+
* 跳过 undefined 源值;原地修改 target。支持多源:merge(target, ...sources)。
|
|
21
|
+
* 返回类型为 target 与所有 source 的交集(与 lodash 一致)。
|
|
22
|
+
*/
|
|
23
|
+
export declare function merge<T, S extends any[]>(target: T, ...sources: S): T & UnionToIntersection<S[number]>;
|
|
24
|
+
/**
|
|
25
|
+
* 深拷贝 plain object/array(对齐 lodash cloneDeep 对纯 JSON 数据的行为)。
|
|
26
|
+
*/
|
|
27
|
+
export declare function cloneDeep<T>(value: T): T;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function uuid(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export function uuid():
|
|
1
|
+
export declare function uuid(): string;
|