@vvfx/sdk 0.1.19-alpha.9 → 0.2.0

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.
Files changed (102) hide show
  1. package/LICENSE +22 -0
  2. package/dist/index.js +96633 -14
  3. package/dist/index.js.map +1 -0
  4. package/dist/index.mjs +96736 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/dist/src/config.d.ts +855 -0
  7. package/dist/src/exporter/config.d.ts +18 -0
  8. package/dist/src/exporter/const.d.ts +71 -0
  9. package/dist/src/exporter/export-media.d.ts +68 -0
  10. package/dist/src/exporter/exporter.d.ts +22 -0
  11. package/dist/src/exporter/index.d.ts +2 -0
  12. package/dist/src/exporter/types.d.ts +194 -0
  13. package/dist/src/exporter/utils.d.ts +22 -0
  14. package/dist/src/exporter/wav-audio.d.ts +27 -0
  15. package/dist/src/gesture-handler/gizmo/adsorption-gizmo.d.ts +68 -0
  16. package/dist/src/gesture-handler/gizmo/control-gizmo.d.ts +67 -0
  17. package/dist/src/gesture-handler/gizmo/gizmo.d.ts +59 -0
  18. package/dist/src/gesture-handler/gizmo/icon-gizmo.d.ts +44 -0
  19. package/dist/src/gesture-handler/gizmo/index.d.ts +6 -0
  20. package/dist/src/gesture-handler/gizmo/item-create-gizmo.d.ts +43 -0
  21. package/dist/src/gesture-handler/gizmo/loading-gizmo.d.ts +48 -0
  22. package/dist/src/gesture-handler/gizmo/mask-gizmo.d.ts +113 -0
  23. package/dist/src/gesture-handler/gizmo/picture-cut-gizmo.d.ts +94 -0
  24. package/dist/src/gesture-handler/gizmo/picture-expand-gizmo.d.ts +57 -0
  25. package/dist/src/gesture-handler/gizmo/preference-gizmo.d.ts +32 -0
  26. package/dist/src/gesture-handler/gizmo/selector-gizmo.d.ts +101 -0
  27. package/dist/src/gesture-handler/gizmo/sprite-text-edit-gizmo.d.ts +36 -0
  28. package/dist/src/gesture-handler/gizmo/text-gizmo.d.ts +128 -0
  29. package/dist/src/gesture-handler/gizmo/transform-gizmo.d.ts +233 -0
  30. package/dist/src/gesture-handler/gizmo/type.d.ts +402 -0
  31. package/dist/src/gesture-handler/index.d.ts +3 -0
  32. package/dist/src/gesture-handler/src/gesture-handler.d.ts +143 -0
  33. package/dist/src/gesture-handler/src/icons.d.ts +7 -0
  34. package/dist/src/gesture-handler/utils.d.ts +2 -0
  35. package/dist/src/html-overlay/auto-height-runtime.d.ts +13 -0
  36. package/dist/src/html-overlay/document-runtime.d.ts +4 -0
  37. package/dist/src/html-overlay/document-transform.d.ts +7 -0
  38. package/dist/src/html-overlay/dom-order.d.ts +1 -0
  39. package/dist/src/html-overlay/host-message-runtime.d.ts +3 -0
  40. package/dist/src/html-overlay/html-viewport-style.d.ts +1 -0
  41. package/dist/src/html-overlay/index.d.ts +1 -0
  42. package/dist/src/html-overlay/manager.d.ts +77 -0
  43. package/dist/src/html-overlay/mime-utils.d.ts +2 -0
  44. package/dist/src/html-overlay/overlay-transform.d.ts +13 -0
  45. package/dist/src/html-overlay/path-utils.d.ts +8 -0
  46. package/dist/src/html-overlay/shell-runtime.d.ts +6 -0
  47. package/dist/src/index.d.ts +14 -0
  48. package/dist/src/math/box2.d.ts +166 -0
  49. package/dist/src/math/circle.d.ts +82 -0
  50. package/dist/src/math/euler.d.ts +20 -0
  51. package/dist/src/math/index.d.ts +13 -0
  52. package/dist/src/math/line2.d.ts +93 -0
  53. package/dist/src/math/line3.d.ts +17 -0
  54. package/dist/src/math/matrix4.d.ts +28 -0
  55. package/dist/src/math/plane.d.ts +14 -0
  56. package/dist/src/math/quaternion.d.ts +3 -0
  57. package/dist/src/math/ray-caster.d.ts +10 -0
  58. package/dist/src/math/ray.d.ts +18 -0
  59. package/dist/src/math/type.d.ts +32 -0
  60. package/dist/src/math/utils.d.ts +19 -0
  61. package/dist/src/math/vector2.d.ts +30 -0
  62. package/dist/src/math/vector3.d.ts +29 -0
  63. package/dist/src/screen-shot/index.d.ts +1 -0
  64. package/dist/src/screen-shot/screen-shot.d.ts +35 -0
  65. package/dist/src/sdk-item/base-item.d.ts +126 -0
  66. package/dist/src/sdk-item/card-item.d.ts +67 -0
  67. package/dist/src/sdk-item/effects-item.d.ts +70 -0
  68. package/dist/src/sdk-item/frame-item.d.ts +112 -0
  69. package/dist/src/sdk-item/generator-item.d.ts +86 -0
  70. package/dist/src/sdk-item/group-item.d.ts +57 -0
  71. package/dist/src/sdk-item/index.d.ts +36 -0
  72. package/dist/src/sdk-item/sprite-item.d.ts +67 -0
  73. package/dist/src/sdk-item/text-item.d.ts +107 -0
  74. package/dist/src/sdk-item/types.d.ts +153 -0
  75. package/dist/src/sdk-item/video-item.d.ts +87 -0
  76. package/dist/src/sdk.d.ts +589 -0
  77. package/dist/src/service/UndoRedo.d.ts +48 -0
  78. package/dist/src/shared/index.d.ts +1 -0
  79. package/dist/src/shared/player.d.ts +9 -0
  80. package/dist/src/size-adapte/index.d.ts +1 -0
  81. package/dist/src/size-adapte/size-adapt.d.ts +28 -0
  82. package/dist/src/types.d.ts +1298 -0
  83. package/dist/src/utils/background-manager.d.ts +72 -0
  84. package/dist/src/utils/common-utils.d.ts +28 -0
  85. package/dist/src/utils/index.d.ts +8 -0
  86. package/dist/src/utils/interaction-utils.d.ts +60 -0
  87. package/dist/src/utils/json-data-utils.d.ts +165 -0
  88. package/dist/src/utils/layout-utils.d.ts +219 -0
  89. package/dist/src/utils/page-data-utils.d.ts +372 -0
  90. package/dist/src/utils/player-data-utils.d.ts +11 -0
  91. package/dist/src/utils/types.d.ts +114 -0
  92. package/dist/src/wireframe/common/box.d.ts +1 -0
  93. package/dist/src/wireframe/common/dashed-line.d.ts +1 -0
  94. package/dist/src/wireframe/common/line.d.ts +1 -0
  95. package/dist/src/wireframe/common/pixi-ext.d.ts +11 -0
  96. package/dist/src/wireframe/common/pixi.d.ts +18 -0
  97. package/dist/src/wireframe/index.d.ts +4 -0
  98. package/package.json +42 -22
  99. package/dist/index.cjs +0 -14
  100. package/dist/index.d.cts +0 -3555
  101. package/dist/index.d.ts +0 -3555
  102. package/dist/index.global.js +0 -333
@@ -0,0 +1,589 @@
1
+ import { Player, spec } from './shared';
2
+ import type { SDKInputParam, PageConfig, PageData, SetItemPropertyParam, ViewProperty, ViewParam, ExportParam, SDKBackgroundType, SpriteCreateInfo, GroupCreateInfo, ItemCreateInfo, TextCreateInfo, ViewportFitShiftParam, SceneCreaetInfo, VideoCreateInfo, GeneratorCreateInfo, GeneratorResource, VideoGeneratorResource, SpriteGeneratorResource, EffectsCreateInfo, FrameCreateInfo, CardCreateInfo, CardItemTransformInfo, PageAutoLayoutParam } from './types';
3
+ import { SDKItemType } from './sdk-item/types';
4
+ import type { CardTypeConfig } from './config';
5
+ import { ItemOrderAction } from './types';
6
+ import type { ExportItemParams, ExportParams, ExportMediaItemDownloadInfo, FileBuffer, Buffers, Extras } from './exporter';
7
+ import { BackgroundManager } from './utils';
8
+ import { SDKConfig, ExportConfig, SDKMode, MaskGizmoConfig } from './config';
9
+ import { Box2, Vector2 } from './math';
10
+ import { GizmoOperation, Operation, UndoRedo } from './service/UndoRedo';
11
+ import { GestureHandlerInteractType, GizmoType, ItemCreateType, SpriteTextInitParam } from './gesture-handler/gizmo';
12
+ import { AlignType, DistributeType } from './utils/types';
13
+ import { SDKItem } from './sdk-item';
14
+ import type { LoadingGizmoItemOptions, LoadingGizmoTip } from './gesture-handler/gizmo/loading-gizmo';
15
+ import type { MaskUndoRedoData } from './gesture-handler/gizmo/mask-gizmo';
16
+ import type { PictureCutUndoRedoData } from './gesture-handler/gizmo/picture-cut-gizmo';
17
+ export type SDKEvents = {
18
+ 'loadingItemChange': [id: string[]];
19
+ 'selectedItemChange': [id: string[]];
20
+ 'preSelectedItemChange': [id: string | undefined];
21
+ 'selectedViewChange': [id: number];
22
+ 'pageDataChange': [pageData: PageData];
23
+ 'zoomChange': [zoom: number];
24
+ 'progress': [{
25
+ duration: number;
26
+ time: number;
27
+ end: boolean;
28
+ paused: boolean;
29
+ }];
30
+ 'itemPropertyChange': [{
31
+ id: string;
32
+ propertyKeys: string[];
33
+ }];
34
+ 'exportProgress': [progress?: number];
35
+ 'exportDone': [item: ExportItemParams | undefined, success: boolean, buffer?: FileBuffer];
36
+ 'exportComplete': [success: boolean, taskInfos: ExportParams, buffers: Buffers, extras: Extras];
37
+ 'sdkConfigChange': [preSDKConfig: SDKConfig, curSDKConfig: SDKConfig];
38
+ 'cutBoxChange': [box: Box2];
39
+ 'expandBoxChange': [box: Box2];
40
+ 'textInput': [{
41
+ itemId: string;
42
+ text: string;
43
+ fontFamily: string;
44
+ }];
45
+ 'undoRedoChange': [Operation];
46
+ 'maskGizmoUndoRedoChange': [GizmoOperation<MaskUndoRedoData>];
47
+ 'pictureCutGizmoUndoRedoChange': [GizmoOperation<PictureCutUndoRedoData>];
48
+ 'viewportTransform': [{
49
+ zoom: number;
50
+ translation: [number, number];
51
+ }];
52
+ 'itemOnDragStart': [type: GizmoType];
53
+ 'itemOnDrag': [type: GizmoType];
54
+ 'itemOnDragEnd': [type: GizmoType];
55
+ 'spriteTextClick': [{
56
+ id: string;
57
+ index: number;
58
+ text: string;
59
+ } | undefined];
60
+ 'videoPlay': [{
61
+ id: string;
62
+ time: number;
63
+ }];
64
+ 'itemCreate': [{
65
+ type: ItemCreateType;
66
+ position: spec.vec2;
67
+ id: string;
68
+ }];
69
+ 'cardItemTransformChange': [CardItemTransformInfo[]];
70
+ 'viewLost': [];
71
+ 'viewRebuildFinish': [];
72
+ };
73
+ export declare class SDK {
74
+ static config: SDKConfig;
75
+ private _eventEmitter;
76
+ private _pageData;
77
+ private _screenShot;
78
+ private _exporter?;
79
+ private _htmlOverlayManager?;
80
+ private _pageDataUtils;
81
+ private _sizeAdapt;
82
+ private _gestureHandler;
83
+ private disposables;
84
+ private _isSwitchScene;
85
+ private _undoRedo;
86
+ private _backgroundManager;
87
+ player: Player;
88
+ _container: HTMLElement;
89
+ private _playerContainer;
90
+ constructor(container: HTMLElement, mode?: SDKMode);
91
+ get backgroundManager(): BackgroundManager;
92
+ get container(): HTMLElement;
93
+ get pageData(): PageData | undefined;
94
+ private get initExporterEnabled();
95
+ get exportStatus(): string | undefined;
96
+ get undoRedo(): UndoRedo;
97
+ private get exportOptions();
98
+ dispose(): void;
99
+ on: <E extends "progress" | "loadingItemChange" | "selectedItemChange" | "preSelectedItemChange" | "selectedViewChange" | "pageDataChange" | "zoomChange" | "itemPropertyChange" | "exportProgress" | "exportDone" | "exportComplete" | "sdkConfigChange" | "cutBoxChange" | "expandBoxChange" | "textInput" | "undoRedoChange" | "maskGizmoUndoRedoChange" | "pictureCutGizmoUndoRedoChange" | "viewportTransform" | "itemOnDragStart" | "itemOnDrag" | "itemOnDragEnd" | "spriteTextClick" | "videoPlay" | "itemCreate" | "cardItemTransformChange" | "viewLost" | "viewRebuildFinish">(eventName: E, listener: import("@galacean/effects").EventEmitterListener<SDKEvents[E]>, options?: import("@galacean/effects").EventEmitterOptions) => () => void;
100
+ initPlayer(mode: SDKMode): void;
101
+ setSDKMode(mode: SDKMode): void;
102
+ private getInitParam;
103
+ private initExporter;
104
+ private initSDK;
105
+ run(param: SDKInputParam): Promise<void>;
106
+ getActiveItems(): string[];
107
+ setPreSelectedItem(id: string): void;
108
+ getPreSelectedItem(): string;
109
+ setSelectedItems(itemIds: string[]): void;
110
+ /**
111
+ * @description 设置元素属性(支持单个元素的单/多属性设置)
112
+ * @param param 设置参数,支持两种场景:
113
+ * 1. 单个元素单个属性: { itemId, type, propertyName, propertyValue }
114
+ * 2. 单个元素多个属性: { itemId, type, property }
115
+ */
116
+ setItemProperty<T extends SDKItemType>(param: SetItemPropertyParam<T>): Promise<void>;
117
+ generateScreenShot(id: number, size?: [number, number], tick?: number, backgroundColor?: spec.vec4): Promise<string | undefined>;
118
+ /**
119
+ * @description 切换场景
120
+ * @param index 场景索引
121
+ */
122
+ switchScene(index: number): Promise<void>;
123
+ /**
124
+ * @description 获取页面的 safeAreaPreview、zoom、adsorption、translation 值
125
+ * @returns 页面的 safeAreaPreview、zoom、adsorption、translation 值
126
+ */
127
+ getPageConfig(): PageConfig;
128
+ /**
129
+ * 设置页面的 safeAreaPreview、zoom、adsorption 值
130
+ * @param pageProperty 设置
131
+ */
132
+ setPageConfig(pageConfig: PageConfig): void;
133
+ /**
134
+ * @description 设置播放进度
135
+ * @param progress 播放进度 0-100
136
+ */
137
+ setPlayProgress(progress: number): Promise<void>;
138
+ /**
139
+ * @description 获取元素
140
+ * @param id 元素ID
141
+ * @returns 元素
142
+ * */
143
+ getSDKItem(id: string): SDKItem | undefined;
144
+ /**
145
+ * @description 获取元素数组
146
+ * @param id 元素ID数组
147
+ * @returns 元素数组
148
+ * */
149
+ getSDKItems(ids?: string[]): SDKItem[];
150
+ setPlayState(playState: 'play' | 'pause'): Promise<void>;
151
+ /**
152
+ * @description 获取场景预览图
153
+ * @returns 视图预览图
154
+ */
155
+ getViewThumbnail(): Promise<{
156
+ id: number;
157
+ thumbnail: string | undefined;
158
+ }>[];
159
+ /**
160
+ * @description 获取视图JSON产物
161
+ * @returns 当前所有视图JSON产物
162
+ */
163
+ getViewScene(): {
164
+ id: number;
165
+ thumbnail: spec.JSONScene;
166
+ }[];
167
+ private destroyCompositions;
168
+ /**
169
+ * @description 以媒体格式 buffer 下载
170
+ */
171
+ downloadByMediaBuffersOfExporter(params: ExportMediaItemDownloadInfo[], buffers: Buffers, extras: Extras): void;
172
+ /**
173
+ * @description 导出
174
+ * 支持导出媒体或其他,如MP4,未来支持 JSON 等;
175
+ */
176
+ onExport(): void;
177
+ /**
178
+ * @description 取消导出
179
+ */
180
+ cancelExport(): void;
181
+ loadPageData(data: PageData): Promise<void>;
182
+ runByPageData(data: PageData): Promise<void>;
183
+ reloadPageDataByScene(scene: string | spec.JSONScene): Promise<void>;
184
+ /**
185
+ * @description 新增视图数据
186
+ * @param viewParams 视图参数
187
+ * @param scene 场景数据 - 无输入时为默认场景数据
188
+ */
189
+ addViewParams(viewParams: ViewParam[], scene?: spec.JSONScene): Promise<void>;
190
+ deleteViewParams(ids: number[]): Promise<void>;
191
+ setExportParam(exportParam: Partial<ExportParam>, id?: number): void;
192
+ /**
193
+ * @description 设置视图缩放
194
+ * @param zoom 缩放值
195
+ * @param center 缩放中心
196
+ * @param ignoreClamp 是否忽视约束
197
+ */
198
+ setPageZoom(zoom: number, center?: Vector2, ignoreClamp?: boolean): void;
199
+ /**
200
+ * @description 设置元素移动
201
+ * @param targetTranslation 目标移动值
202
+ */
203
+ setPageMove(targetTranslation: Vector2): void;
204
+ /**
205
+ * @description 设置静态预览功能开关
206
+ * @param enabled 功能开关
207
+ */
208
+ setStaticPreviewEnabled(enabled: boolean): void;
209
+ /**
210
+ * @description 设置静态预览视图名称
211
+ * @param name 视图名称
212
+ */
213
+ setStaticPreviewName(name: string): void;
214
+ /**
215
+ * @description 设置同步修改功能开关
216
+ * @param enabled 功能开关
217
+ */
218
+ setAsyncEnabled(enabled: boolean): void;
219
+ /**
220
+ * @description 设置 成组显影 开关
221
+ */
222
+ setGroupVisibleEnabled(enabled: boolean): void;
223
+ /**
224
+ * @description 新增过滤元素名称
225
+ * @param itemNames 过滤元素名称
226
+ */
227
+ addFilterItemNames(itemNames: string[] | string): void;
228
+ /**
229
+ * @description 设置预览辅助层颜色
230
+ * @param color 色值
231
+ */
232
+ setPreferenceBackgroundColor(color: [number, number, number, number]): void;
233
+ /**
234
+ * @description 设置出血区颜色
235
+ * @param color 色值
236
+ */
237
+ setSafeAreaColor(color: [number, number, number, number]): void;
238
+ /**
239
+ * @description 设置 尺寸自适应拓展 功能开关
240
+ * @param enabled 功能开关
241
+ */
242
+ setSizeAdaptEnabled(enabled: boolean): void;
243
+ /**
244
+ * @description 设置 截图 功能开关
245
+ * @param enabled 功能开关
246
+ */
247
+ setScreenShotEnabled(enabled: boolean): void;
248
+ /**
249
+ * @description 设置导出功能初始化配置
250
+ * @param exportConfig
251
+ */
252
+ setExportConfig(exportConfig: Partial<ExportConfig>): void;
253
+ /**
254
+ * @description 设置预选框参数
255
+ * @param preSelectedColor 预选框颜色
256
+ * @param preSelectedWidth 预选框线框宽度
257
+ */
258
+ setSelectorGizmoPreSelectConfig(preSelectedColor?: number, preSelectedWidth?: number): void;
259
+ /**
260
+ * @description 设置 变换控制器 交互框参数
261
+ * @param config 参数
262
+ */
263
+ setTranformGizmoWireframeConfig(config: {
264
+ wireframeColor?: number;
265
+ wireframeAlpha?: number;
266
+ wireframeWidth?: number;
267
+ }): void;
268
+ /**
269
+ * @description 获取 SDK 配置参数
270
+ * @returns SDK 配置参数
271
+ */
272
+ getSDKConfig(): SDKConfig;
273
+ /**
274
+ * @description 设置 SDK 配置参数
275
+ * @param config SDK 配置参数
276
+ */
277
+ setSDKConfig(config: SDKConfig): void;
278
+ /**
279
+ * @description 设置SDK背景
280
+ * @param type 背景类型
281
+ * @param value 值
282
+ */
283
+ setSDKBackground(type: SDKBackgroundType, value?: string): void;
284
+ /**
285
+ * @description 创建图层元素
286
+ * @param spriteInfo 图层元素信息
287
+ */
288
+ addSpriteItem(spriteInfo: SpriteCreateInfo, scene?: spec.JSONScene): Promise<string>;
289
+ addVideoItem(videoInfo: VideoCreateInfo, scene?: spec.JSONScene): Promise<string>;
290
+ openPictureCutGizmo(): void;
291
+ closePictureCutGizmo(): void;
292
+ getCutInfo(): {
293
+ cutBox: Box2;
294
+ itemBox: Box2;
295
+ } | undefined;
296
+ setCutBox(min: Vector2, max: Vector2): Box2 | undefined;
297
+ openPictureExpandGizmo(): void;
298
+ closePictureExpandGizmo(): void;
299
+ getExpandInfo(): {
300
+ expandBox: Box2;
301
+ itemBox: Box2;
302
+ } | undefined;
303
+ setExpandBox(min: Vector2, max: Vector2): Box2 | undefined;
304
+ openMaskGizmo(brushSize: number): void;
305
+ clearMaskGizmo(): void;
306
+ closeMaskGizmo(): void;
307
+ getMask(): string | null | undefined;
308
+ setMaskGizmoConfig(config: Partial<MaskGizmoConfig>): void;
309
+ /**
310
+ * @description 设置蒙版工具模式
311
+ * @param mode 模式类型:'paint' 表示涂抹,'erase' 表示擦除
312
+ */
313
+ setMaskGizmoMode(mode: 'paint' | 'erase'): void;
314
+ /**
315
+ * 撤销蒙版操作
316
+ * @returns 是否成功撤销
317
+ */
318
+ undoMaskGizmo(): boolean;
319
+ /**
320
+ * 重做蒙版操作
321
+ * @returns 是否成功重做
322
+ */
323
+ redoMaskGizmo(): boolean;
324
+ /**
325
+ * 检查蒙版是否可以撤销
326
+ */
327
+ get canUndoMaskGizmo(): boolean;
328
+ /**
329
+ * 检查蒙版是否可以重做
330
+ */
331
+ get canRedoMaskGizmo(): boolean;
332
+ /**
333
+ * 清空蒙版 undoRedo 历史
334
+ */
335
+ clearMaskGizmoUndoRedo(): void;
336
+ /**
337
+ * 撤销图片裁切操作
338
+ * @returns 是否成功撤销
339
+ */
340
+ undoPictureCutGizmo(): boolean;
341
+ /**
342
+ * 重做图片裁切操作
343
+ * @returns 是否成功重做
344
+ */
345
+ redoPictureCutGizmo(): boolean;
346
+ /**
347
+ * 检查图片裁切是否可以撤销
348
+ */
349
+ get canUndoPictureCutGizmo(): boolean;
350
+ /**
351
+ * 检查图片裁切是否可以重做
352
+ */
353
+ get canRedoPictureCutGizmo(): boolean;
354
+ /**
355
+ * 清空图片裁切 undoRedo 历史
356
+ */
357
+ clearPictureCutGizmoUndoRedo(): void;
358
+ openLoadingGizmo(id: string, options?: LoadingGizmoItemOptions): void;
359
+ updateLoadingGizmo(id: string, options: {
360
+ tip?: LoadingGizmoTip;
361
+ }): void;
362
+ closeLoadingGizmo(id: string): void;
363
+ /**
364
+ * @description 元素打组
365
+ * @param children 子元素ID
366
+ */
367
+ groupItems(groupInfo: GroupCreateInfo, scene?: spec.JSONScene): string | undefined;
368
+ setItemParent(id: string, parentId: string): void;
369
+ deleteItemParent(id: string, parentId: string): void;
370
+ addTextItem(textInfo: TextCreateInfo, scene?: spec.JSONScene): Promise<string | undefined>;
371
+ addItemByCreateInfos(createInfos: ItemCreateInfo[], asyncMode?: boolean): Promise<string[]>;
372
+ deleteItems(idInfo: string | string[]): void;
373
+ getItemCreateInfo(id: string): ItemCreateInfo | undefined;
374
+ getItemCreateInfos(ids?: string[]): ItemCreateInfo[];
375
+ createScreenShotSceneByIds(idInfo: string | string[], time?: number): Promise<string | undefined>;
376
+ createScreenShotByFrame(id: string): Promise<string | undefined>;
377
+ createScreenShotByEffects(id: string): Promise<string | undefined>;
378
+ getChildrenIds(id: string): string[];
379
+ /**
380
+ * @description 更新元素在图层中的顺序
381
+ * @param id 元素ID
382
+ * @param action 排序操作:BringToFront(置于顶层)、SendToBack(置于底层)、BringForward(上移一层)、SendBackward(下移一层)
383
+ */
384
+ updateItemOrder(id: string, action: ItemOrderAction): void;
385
+ /**
386
+ * @description 导出JSON
387
+ * @param idInfo 视图序号信息
388
+ * @returns JSON数组
389
+ */
390
+ exportJSON(idInfo?: number | number[]): spec.JSONScene[];
391
+ getViewBoxById(id: string): Box2;
392
+ /**
393
+ * @description 批量设置元素扩展属性
394
+ * @param id 元素ID
395
+ * @param extensions 扩展属性对象(支持同时设置多个)
396
+ * @returns 是否设置成功
397
+ */
398
+ setItemExtension(id: string, extension: Record<string, any>): boolean;
399
+ /**
400
+ * @description 批量获取元素扩展属性
401
+ * @param id 元素ID
402
+ * @param keys 扩展属性名称列表(不传则返回所有扩展属性)
403
+ * @returns 扩展属性对象
404
+ */
405
+ getItemExtension(id: string, keys?: string[]): Record<string, any> | undefined;
406
+ /**
407
+ * @description 删除元素扩展属性(支持批量删除)
408
+ * @param id 元素ID
409
+ * @param keys 扩展属性名称列表
410
+ * @returns 是否删除成功
411
+ */
412
+ deleteItemExtensions(id: string, keys: string[]): boolean;
413
+ /**
414
+ * @description 检查元素是否有指定扩展属性
415
+ * @param id 元素ID
416
+ * @param key 扩展属性名称
417
+ * @returns 是否存在
418
+ */
419
+ hasItemExtension(id: string, key: string): boolean;
420
+ /**
421
+ * @description 获取元素所有扩展属性的键名列表
422
+ * @param id 元素ID
423
+ * @returns 键名数组
424
+ */
425
+ getItemExtensionKeys(id: string): string[] | undefined;
426
+ getViewProperty(id: number): ViewProperty | undefined;
427
+ pageMove(shift: [number, number]): void;
428
+ pageZoom(shift: number, center?: [number, number]): void;
429
+ /**
430
+ * @description 设置视图缩放工具锁定缩放比例开关
431
+ * @param state 缩放比例开关
432
+ */
433
+ setPictureCutGizmoLockScale(state: boolean): void;
434
+ /**
435
+ * @description 设置视图扩展工具锁定缩放比例开关
436
+ * @param state 缩放比例开关
437
+ */
438
+ setPictureExpandGizmoLockScale(state: boolean): void;
439
+ /**
440
+ * @description 视图缩放函数
441
+ * @param shiftParam 视图偏移值
442
+ */
443
+ viewportFit(shiftParam?: ViewportFitShiftParam, box?: Box2): void;
444
+ /**
445
+ * @description 获取元素包围盒
446
+ * @param idInfo 元素Id
447
+ * @returns 元素包围盒
448
+ */
449
+ getItemBoxById(idInfo: string): Box2;
450
+ /**
451
+ * @description 设置元素字体
452
+ * @param id 元素Id
453
+ * @param fontFamilyName 字体名称
454
+ * @param url 字体地址
455
+ */
456
+ setItemFontFamily(id: string, fontFamilyName: string, url: string): Promise<void>;
457
+ createSceneByCreateInfos(createInfos: ItemCreateInfo[], sceneInfo: SceneCreaetInfo): spec.JSONScene;
458
+ setSpriteSize(id: string, size: spec.vec2): void;
459
+ setItemPropertyByCreateInfo(createInfo: ItemCreateInfo | ItemCreateInfo[]): Promise<void>;
460
+ setTransformGizmoLockScale(state: boolean): void;
461
+ getViewBoxByBox(box: Box2): Box2;
462
+ openSpriteTextEditGizmo(initParam: SpriteTextInitParam[]): void;
463
+ closeSpriteTextEditGizmo(): void;
464
+ setSpriteTextSelectedIndex(id: string, index: number): void;
465
+ setSpriteTextSelectedText(id: string, index: number, text: string): void;
466
+ getBoundingBoxByItemCreateInfo(createInfo: ItemCreateInfo): Box2;
467
+ getBoundingBoxByItemCreateInfos(createInfos: ItemCreateInfo[]): Box2;
468
+ setSpriteTextChangedState(id: string, index: number, hasChanged: boolean): void;
469
+ setSpriteTextEditState(id: string, index: number, isEditing: boolean): void;
470
+ getVideoItemPlayTime(id: string): number;
471
+ setVideoItemPlayTime(id: string, time: number): void;
472
+ getEffectsItemPlayTime(id: string): number | undefined;
473
+ setEffectsItemPlayTime(id: string, time: number): void;
474
+ setEffectsResource(id: string, effects: string): void;
475
+ getPixelPositionByViewPosition(viewPosition: Vector2): Vector2;
476
+ hitTest(x: number, y: number): string[] | undefined;
477
+ setInteractType(type: GestureHandlerInteractType): void;
478
+ getInteractType(): GestureHandlerInteractType;
479
+ makeItemAlign(type: AlignType, ids?: string[]): void;
480
+ makeItemDistribute(type: DistributeType, ids?: string[]): void;
481
+ /**
482
+ * @description 注册新的卡片类型
483
+ * @param cardTypeConfig 卡片类型配置(type、label、iconUrl)
484
+ * @returns 是否注册成功(type 已存在时返回 false)
485
+ */
486
+ registerCardType(cardTypeConfig: CardTypeConfig): boolean;
487
+ /**
488
+ * @description 批量注册卡片类型
489
+ * @param configs 卡片类型配置数组
490
+ * @returns 成功注册的类型数量
491
+ */
492
+ registerCardTypes(configs: CardTypeConfig[]): number;
493
+ /**
494
+ * @description 注销卡片类型
495
+ * @param type 卡片类型标识
496
+ * @returns 是否注销成功(type 不存在时返回 false)
497
+ */
498
+ unregisterCardType(type: string): boolean;
499
+ /**
500
+ * @description 获取所有已注册的卡片类型
501
+ * @returns 卡片类型配置数组(只读副本)
502
+ */
503
+ getRegisteredCardTypes(): CardTypeConfig[];
504
+ /**
505
+ * @description 判断卡片类型是否已注册
506
+ * @param type 卡片类型标识
507
+ * @returns 是否已注册
508
+ */
509
+ isCardTypeRegistered(type: string): boolean;
510
+ /**
511
+ * @description 创建卡片元素
512
+ * @description 底层以透明 SpriteItem 形式渲染,支持 cardType 属性
513
+ * @param createInfo 卡片创建信息
514
+ * @returns 卡片元素ID
515
+ */
516
+ addCardItem(createInfo: CardCreateInfo): string | undefined;
517
+ /**
518
+ * @description 创建生成器元素
519
+ * @param createInfo 生成器创建信息
520
+ * @returns 生成器元素ID
521
+ */
522
+ addGeneratorItem(createInfo: GeneratorCreateInfo): string;
523
+ /**
524
+ * @description 创建动效元素
525
+ * @param effectsInfo 动效创建信息
526
+ */
527
+ addEffectsItem(effectsInfo: EffectsCreateInfo): Promise<string | undefined>;
528
+ /**
529
+ * @description 创建画板元素
530
+ * @param createInfo 画板创建信息
531
+ * @returns 画板元素ID
532
+ */
533
+ addFrameItem(createInfo: FrameCreateInfo): Promise<string>;
534
+ /**
535
+ * @description 将元素移动到 Frame 中
536
+ * @param itemIds 要移动的元素ID列表
537
+ * @param frameId 目标 Frame ID
538
+ */
539
+ moveItemsToFrame(itemIds: string[], frameId: string): void;
540
+ /**
541
+ * @description 将元素从 Frame 中移出到主场景
542
+ * @param itemIds 要移动的元素ID列表
543
+ * @param frameId 源 Frame ID(可选,如果不传则从元素的 parentId 推断)
544
+ */
545
+ moveItemsOutOfFrame(itemIds: string[]): void;
546
+ /**
547
+ * @description 设置生成器资源,将生成器转换为对应的元素
548
+ * @param id 生成器元素ID
549
+ * @param resourceUrl 资源地址
550
+ * @returns 新的元素ID
551
+ */
552
+ setGeneratorResource(id: string, resourceUrl: string): Promise<string>;
553
+ /**
554
+ * @description 设置生成器资源(使用 GeneratorResource 对象)
555
+ * @param resource 生成器资源信息
556
+ */
557
+ setGeneratorResourceFromObject(resource: GeneratorResource): void;
558
+ /**
559
+ * @description 设置视频生成器资源
560
+ * @param resource 视频生成器资源信息
561
+ */
562
+ setVideoGeneratorResource(resource: VideoGeneratorResource): Promise<string>;
563
+ /**
564
+ * @description 设置图层生成器资源
565
+ * @param resource 图层生成器资源信息
566
+ */
567
+ setSpriteGeneratorResource(resource: SpriteGeneratorResource): Promise<string>;
568
+ setItemLockState(id: string, state: boolean): void;
569
+ getItemLockState(id: string): boolean;
570
+ openItemCreateGizmo(type: ItemCreateType): void;
571
+ closeItemCreateGizmo(): void;
572
+ openTextGizmo(textItemId?: string, mode?: 'select' | 'focus'): void;
573
+ closeTextGizmo(): void;
574
+ setItemName(id: string, name: string): void;
575
+ setSafeAreaPreviewVisible(id: number, type: 'url' | 'color', visible: boolean): void;
576
+ /**
577
+ * @description 修改画板元素大小
578
+ * @param id 元素id
579
+ * @param size 目标大小 [width, height]
580
+ * @param translation 位置偏移补偿(可选,用于保持拖拽角点固定)
581
+ */
582
+ resizeFrameItem(id: string, size: [number, number], translation?: [number, number]): void;
583
+ /**
584
+ * @description 对 FrameItem 执行自动布局(当 layoutMode 为 AUTO 时使用)
585
+ * @param frameId Frame 元素 ID
586
+ */
587
+ applyFrameAutoLayout(frameId: string): void;
588
+ autoLayoutPage(param?: PageAutoLayoutParam): Promise<void>;
589
+ }
@@ -0,0 +1,48 @@
1
+ import { ItemCreateInfo } from '../types';
2
+ export type CreateOperation = {
3
+ type: 'create';
4
+ newData: ItemCreateInfo[];
5
+ };
6
+ export type DeleteOperation = {
7
+ type: 'delete';
8
+ oldData: ItemCreateInfo[];
9
+ };
10
+ export type UpdateOperation = {
11
+ type: 'update';
12
+ newData: ItemCreateInfo[];
13
+ oldData: ItemCreateInfo[];
14
+ };
15
+ export type Operation = CreateOperation | UpdateOperation | DeleteOperation;
16
+ export type UndoRedoEvents = Record<string, [Operation]>;
17
+ /**
18
+ * 通用撤销重做操作类型
19
+ */
20
+ export type GizmoOperation<T> = {
21
+ type: 'update';
22
+ newData: T;
23
+ oldData: T;
24
+ };
25
+ /**
26
+ * 通用撤销重做类,支持任意数据类型
27
+ */
28
+ export declare class GizmoUndoRedo<T> {
29
+ private index;
30
+ private operations;
31
+ get canUndo(): boolean;
32
+ get canRedo(): boolean;
33
+ push(operation: GizmoOperation<T>): void;
34
+ undo(): GizmoOperation<T> | undefined;
35
+ redo(): GizmoOperation<T> | undefined;
36
+ clear(): void;
37
+ }
38
+ export declare class UndoRedo {
39
+ private index;
40
+ private operations;
41
+ get canUndo(): boolean;
42
+ get canRedo(): boolean;
43
+ oldData?: ItemCreateInfo[];
44
+ push(operation: Operation): void;
45
+ undo(): Operation | undefined;
46
+ redo(): Operation | undefined;
47
+ clear(): void;
48
+ }
@@ -0,0 +1 @@
1
+ export * from './player';
@@ -0,0 +1,9 @@
1
+ import '@galacean/effects';
2
+ export { spec, VFXItem, Player, math, Composition, type Region, EventEmitter, assertExist, SpriteComponent, TextComponent, Texture, generateGUID, version as PlayerVersion } from '@galacean/effects';
3
+ import '@galacean/effects-plugin-rich-text';
4
+ export { RichTextComponent } from '@galacean/effects-plugin-rich-text';
5
+ import '@galacean/effects-plugin-model';
6
+ import '@galacean/effects-plugin-multimedia';
7
+ export { VideoComponent } from '@galacean/effects-plugin-multimedia';
8
+ import '@galacean/effects-plugin-spine';
9
+ import '@galacean/effects-plugin-ffd';
@@ -0,0 +1 @@
1
+ export * from './size-adapt';
@@ -0,0 +1,28 @@
1
+ import { Box2, Vector2, Vector3 } from '../math';
2
+ import { Composition, spec, VFXItem } from '../shared';
3
+ export type SizeAdaptDirection = 'x' | 'y';
4
+ /**
5
+ * @description 尺寸适配工具
6
+ */
7
+ export declare class SizeAdapt {
8
+ /**
9
+ * @description 尺寸适配播放器
10
+ */
11
+ private _player;
12
+ /**
13
+ * @description 尺寸播放器容器
14
+ */
15
+ private _container;
16
+ /**
17
+ * @description 视图大小
18
+ */
19
+ size: spec.vec2;
20
+ constructor();
21
+ adjustment(scene: spec.JSONScene, tick: number, originSize: spec.vec2, viewSize: spec.vec2, safeArea?: spec.vec4, direction?: SizeAdaptDirection): Promise<spec.JSONScene>;
22
+ keepDistribute(scene: spec.JSONScene, composition: Composition, ratio: number, viewSize: spec.vec2): void;
23
+ keepAdsorption(type: 'centerAdsorption' | 'topAdsorption' | 'bottomAdsorption' | 'leftAdsorption' | 'rightAdsorption', scene: spec.JSONScene, composition: Composition, translation: spec.vec2, originViewBox: Box2, resultViewBox: Box2, adsorptionDirection: SizeAdaptDirection): void;
24
+ keepDoubleAdsorption(type: 'bottomCenterAdsorption', scene: spec.JSONScene, composition: Composition, translation: spec.vec2, originViewBox: Box2, resultViewBox: Box2, adsorptionDirection: SizeAdaptDirection): void;
25
+ getViewBoxByHeadlessPlayerItem(targetItem: VFXItem, childrenItem: VFXItem[], projectPoint: (point: Vector3) => Vector2): Box2;
26
+ transformSceneItem(scene: spec.JSONScene, itemId: string, propertyName: string, propertyValue: any): void;
27
+ dispose(): void;
28
+ }